vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest czwartek, 08 maja 2025 roku.
Ustaw jako stronę startową Ulubione Napisz
PowrótPowrót do serwisu  RegulaminRegulamin rssRSS

  tytuł wątku:
Wątki dyskusji

VBA wartość zmiennej jako nazwa innej zmiennej


otwartyotwarty rozpoczął: drzejb postów: 9



napisał: Trebor
postów: 1209


umieszczony:
19 listopada 2007
08:00

  
Prawoklik na nazwie arkusza, w którym znajdują się formanty ActiveX, wybierz Wyświetl kod i wklej:
Private Sub CheckBox2_Change()
wykonaj "CheckBox2"
End Sub

Sub wykonaj(nazwa As String)
   If OLEObjects(nazwa).Object.Value = True Then '--> sprawdzenie czy checkbox jest true
      MsgBox "Check2 = true"
End If
If OLEObjects(Left(nazwa, Len(nazwa) - 1) & "1").Object.Value = False Then MsgBox "Check1 = false"
End Sub



Hej
napisał: drzejb
postów: 4


umieszczony:
18 listopada 2007
21:09

  
Trebor
To jest to o co mi chodziło, tylko (zawsze jest jakieś ale :( ) problem polega, że ta funkcja jest dla formularzy a ja mam to wszystko na arkuszu usadowione
a ponieważ jest tego tak dużo to na 1000% zostanie to na arkuszu rozmieszczone

czy jest odpowiednik tej funkcji ?
napisał: LAnd
postów: 107


umieszczony:
18 listopada 2007
16:10

  
może sprawę rozwiąże Application.Run


Sub test1()
 MsgBox "wywołano Test1"
End Sub

Sub test2()
 MsgBox "wywołano Test2"
End Sub


Sub testTestow(Nr) 'w zależności od nr uruchamia odpowiednią funkcję
 If Nr >= 1 And Nr <= 2 Then
  Application.Run "test" & Nr
 End If
End Sub


Sub TestRun()  'to jest testowa głowna
 testTestow 1
 testTestow 2
End Sub

napisał: Trebor
postów: 1209


umieszczony:
18 listopada 2007
14:47

  
Założenia: jest userform i na nim checkbox1 i checkbox2
Private Sub CheckBox2_Change()
wykonaj "CheckBox2"
End Sub

Sub wykonaj(nazwa As String)
   If Controls(nazwa) = True Then '--> sprawdzenie czy checkbox jest true
      MsgBox "Check2 = true"
End If
If Controls(Left(nazwa, Len(nazwa) - 1) & "1") = False Then MsgBox "Check1 = false"
End Sub


Pozdrawiam
napisał: drzejb
postów: 4


umieszczony:
18 listopada 2007
13:55

  
tak wygląda przykładowa procedura

Private Sub CheckBox2_Change()
If czy_robic = 0 Then
    If Range("A2") <> "" Then
        If CheckBox2 = True Then

           .......
         
        Else:
            .....
        End If
    End If
End If
End Sub



a tak chcę żeby to wyglądało:

private sub CheckBox2_Cange()

wykonaj "CheckBox2"
end sub


public sub wykonaj (nazwa as string)
   ...
   if nazwa = true then --> sprawdzenie czy checkbox jest true
      .....
   end if
   nazwa & "1" = false --> zmiana wartości nazwa i ustawienie w zmienionym checkbox'ie wartości

end sub

napisał: drzejb
postów: 4


umieszczony:
18 listopada 2007
11:52

  
Cytat:
Controls


możesz jaśniej

ten zapis mi nie działa

może nie mam czegoś dodane do excela
napisał: Trebor
postów: 1209


umieszczony:
18 listopada 2007
10:48

  
Hej
Popróbuj z Controls, coś w rodzaju
Controls("Checkbox" & 2) = True



Pozdrawiam
napisał: drzejb
postów: 4


umieszczony:
18 listopada 2007
09:35

  
witam

drobny problem

przykład procedury:

sub test (nazwa as string)
   if (nazwa & "1") then --> nazwa jest tu użyta jako wartość zmiennej nazwa z dodaniem na końcu cyfry 1
      .....
   end if
 ....
nazwa --> nazwa jest tu użyta jako wywołanie procedury o nazwie która jest wartością zmiennej

end sub




czyli założenie jest takie że do funkcji jest podawana nazwa np: "checkbox" i dodawane są na końcu cyfry
a następnie sprawdzane wartości czy też uruchamiane procedury o określonej nazwie


<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z