Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



If CheckBox1 checked na jiném sheetu

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: If CheckBox1 checked na jiném sheetu

Autor: Gábina

11:41:24 17.07.2009

Případně s vynecháním propojení
checkboxů s buňkami (bez LinkedCell)
plus pokus použití "CheckBox_" & i
a tipy na jejich procházení v cyklu:

[code]
Sub CheckBoxesAdd()
Dim i As Integer
Dim obj As Object
For i = 1 To 10
With Worksheets("List1")
.Cells(i, 1) = i
Set obj = .CheckBoxes.Add( _
.Cells(i, 2).Left, _
.Cells(i, 2).Top, _
.Cells(i, 2).Width, _
.Cells(i, 2).Height)
obj.Name = "CheckBox_" & i
.CheckBoxes(obj.Name).Height = .Rows(i).RowHeight
obj.Text = i
obj.OnAction = "OnCheckChanged"
End With
Next
End Sub
Sub OnCheckChanged()
Dim i As Integer
For i = 1 To 10
With Worksheets("List1")
.Cells(i, 1).Font.Bold = VBA.IIf(.CheckBoxes("CheckBox_" & i).Value = xlOn, True, False)
End With
Next
End Sub

Sub CheckChecker()
Dim i As Integer, j As Integer
For i = 1 To 10
With Worksheets("List1")
If .CheckBoxes("CheckBox_" & i).Value = xlOn Then
j = j + 1
End If
End With
Next
MsgBox "CountOfChecked: " & j & " ( " & Format(j / 10, "percent") & " )" _
& IIf(j = 10, vbCrLf & "All checked! Congratulations! :-)", "")
End Sub

Sub CheckBoxesLoopsSamples()
Dim i As Integer
For i = 1 To Worksheets("List1").CheckBoxes.Count
Debug.Print Worksheets("List1").CheckBoxes(i).Name
Next

Dim obj As Object
For Each obj In Worksheets("List1").CheckBoxes
Debug.Print obj.Name
Next
End Sub
[/code]

Citovat příspěvek

 

Re: If CheckBox1 checked na jiném sheetu

Autor: Gábina

12:08:14 16.07.2009

Deset checkboxů pro nastavení tučného písma
v prvním sloupci, vše je na listu List1...

Zkopírovat do modulu nejlépe v novém sešitu
a spustit CheckBoxesAdd:

[code]
Sub CheckBoxesAdd()
Dim i As Integer
Dim obj As Object
For i = 1 To 10
With Worksheets("List1")
.Cells(i, 1) = i
Set obj = .CheckBoxes.Add( _
.Cells(i, 2).Left, _
.Cells(i, 2).Top, _
.Cells(i, 2).Width, _
.Cells(i, 2).Height)
obj.Name = "CheckBox_" & i
.CheckBoxes(obj.Name).Height = .Rows(i).RowHeight
obj.LinkedCell = .Cells(i, 3).Address
obj.Text = i
obj.OnAction = "OnCheckChanged"
End With
Next
End Sub
Sub OnCheckChanged()
Dim i As Integer
For i = 1 To 10
With Worksheets("List1")
.Cells(i, 1).Font.Bold = .Cells(i, 3).Value
End With
Next
End Sub
[/code]

Pouze příklad, kde mi to 'bralo' :)
V tomhle vedru raději vychlazené točené!

Citovat příspěvek

 

Re: If CheckBox1 checked na jiném sheetu

Autor: mara66

12:12:10 15.07.2009

Tak už to funguje - děkuju, ještě mě snad napadá taková otázka na zlepšovák,
abych nemusel 10x psát tu samou věc pro CheckBox1, CheckBox2 až ChceckBox10, dám to do opakování, problém je ale jak dohodit to i do názvu Checkbox

For i = 1 To 10
If Worksheets("Enter_data").CheckBox(i) = True Then
...cokoliv
End If
Next i

Problém je jak tam dostat aby pokaždé to bralo jinej checkbox?
zkoušel jsem dát hned na druhou řádku tohle
CheckBox.name = "CheckBox" & i
ale to mi to taky nebralo?

Díky za radu a díky za předchozí rady

Citovat příspěvek

 

Re: If CheckBox1 checked na jiném sheetu

Autor: Gábina

9:49:07 15.07.2009

Snad napoví jedna z variant s příkladem přidání
prvku na list a zobrazením jeho hodnoty v msgboxu:

[code]
Sub OleObjCheckBoxAdd()
Dim obj As Object
Set obj = Worksheets("List1").OLEObjects.Add( _
ClassType:="Forms.CheckBox.1", _
Link:=False, DisplayAsIcon:=False, _
Left:=100, Top:=100, Width:=150, Height:=30)
MsgBox obj.Name & ": " & Worksheets("List1").OLEObjects(obj.Name).Object.Value
End Sub

Sub CheckBoxesAdd()
Dim obj As Object
Set obj = Worksheets("List1").CheckBoxes.Add(100, 50, 150, 30)
MsgBox obj.Name & ": " & Worksheets("List1").CheckBoxes(obj.Name).Value
If Worksheets("List1").CheckBoxes(obj.Name).Value = xlOff Then _
MsgBox "Off"
Worksheets("List1").CheckBoxes(obj.Name).Value = xlOn
If Worksheets("List1").CheckBoxes(1).Value = xlOn Then _
MsgBox "On"
End Sub
[/code]

Mnoho zdaru!

Citovat příspěvek

 

Re: If CheckBox1 checked na jiném sheetu

Autor: rleg

9:06:45 15.07.2009

[ital]If WorkSheets("List1").CheckBox1 = True Then
MsgBox "zapnuto"
Else
MsgBox "vypnuto"
End If[/ital]

takhle to funguje naprosto normálně. Je jedno jestli požiješ Worksheets() nebo jen Sheets().

Ovšem podle čísla chyby bych se spíš zeptal, jestli se ti tam opravdu vyskytuje Sheet s názvem "List1". Tuhle tvoji chybu "subscript out of range" jsem totiž dostal, když jsem List1 změnil na List8, který se nevyskytoval.

Citovat příspěvek

 

Re: If CheckBox1 checked na jiném sheetu

Autor: mara66

15:01:28 14.07.2009

bez toho to taky nejde - hází mí to
debug error 9
subscript out of range

Nevim jestli se to takhle dělá -???
Zkoušel jsem i
Sheets("List1").CheckBox1 = True Then
nebo jak se tedy ve VBA odkazuje na určitý objekt na jiném listu?
má být Worksheets("xxx") nebo Sheets("xxx") ???
a lze k tomu přidat (tečkou) CheckBox? ,

Není lepší udělat skript na sheet, kde ten checkbox je, kterej při každý změně checkboxu zapíše někam třeba buď 1 nebo 0 a odkazovat se pak na to?

Dík za rady zkušených...

Citovat příspěvek

 

Re: If CheckBox1 checked na jiném sheetu

Autor: vb_fanda

13:32:14 14.07.2009

Ja tedy osobně neznám vlastnost
CheckBox1.Checked

zkus to bez toho, tj

if Worksheets("List1").CheckBox1 = True ...

vb_fanda

Citovat příspěvek

 

If CheckBox1 checked na jiném sheetu

Autor: mara66

12:58:48 14.07.2009

Dobrý den,

nevíte někdo kde dělám chybu?
Mám na jednom listě buňky, na kterých chci aby se mi zbarvilo písmo, když na Listu1 budu mít zatržený checkbox.

Snažil jsem se takhle ale tu první řádku mi to nebere.

Private Sub Worksheet_Activate()

If Worksheets("List1").CheckBox1.Checked = True Then
Range("I5:I8").Select
Selection.FormatConditions(1).Font.ColorIndex = 0
Else
Range("I5:I8").Select
Selection.FormatConditions(1).Font.ColorIndex = 2
End If

End Sub


Nevíte někdo co s tím?
Díky za reakce

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: