Dzięki, jeszcze nie sprawdzałem, ale faktycznie chyba o to chodzi. Kontrolki są inaczej numerowane na obu userformach dlatego nie mogę zastosować jednej pętli for. Diabeł zawsze tkwi w szczegółach.
napisał: Ojciec postów: 22
umieszczony: 1 maja 2007 23:10
Dzięki, dokładnie o to mi chodziło. Z tym, że u mnie najpierw pojawia się userform1 a potem userform2, ale to chyba nie ma znaczenia.
Podeślę Ci jutro mój plik z tym co spłodziłem.
Pozdrawiam
napisał: Rycho postów: 291
umieszczony: 1 maja 2007 19:08
Hej.
Jakoś nie mogę zrozumieć co właściwoe robisz :(
Niestety ale to nie to. Program się wywala w punkcie wywołania UserForm2.Show
Nie wiem czym to jest spowodowane. Wyświetla: Could not find the specified object.
Tak jakby coś się mu mieszało.
napisał: Ojciec postów: 22
umieszczony: 1 maja 2007 17:51
Niestety ale to nie to. Program się wywala w punkcie wywołania UserForm1.Show
Nie wiem czym to jest spowodowane. Wyświetla: Could not find the specified object.
Tak jakby coś się mu mieszało.
Ok poniżej kod.
UserForm2 wywoływany jest przez CommandButton w UserForm1 poleceniem UserForm2.Show
Następnie kod UserForm2:
PrivateSub UserForm_Initialize() If UserForm1.Visible = TrueThen
Me.Label3.Caption = UserForm1.NumerPZText.Value 'To działa poprawnie
Me.Label5.Caption = UserForm1.DataText.Value 'To też działa poprawnie Dim i AsInteger Dim MenuKod AsString For i = 14 To 31 'A ta pętla nie działa -
UF1Kod = ("UserForm1.NumerPZText" & i & ".Value")
Me.Controls("Label" & i).Caption = UF1Kod Next i
Hej.
A dlaczego nie próbowałeś konsekwentnie użyć kolekcji 'controls':
Me.Controls("Label" & i).Caption = UserForm1.controls("Kod" & i & "Text").Value
Pokaż więcej kodu.
napisał: Ojciec postów: 22
umieszczony: 30 kwietnia 2007 22:37
Ok, działa. Wrzuciłem to do UserForm_Initialize (w UserForm2) i jest tak jak chciałem.
Mam problem tylko z użyciem pętli.
Bo chciałbym do tego co mi podałeś dołożyć pętlę For, żeby dla każdego TextBoxa nie pisać osobnej linijki.
I jak dodam pętlę:
Dim i AsInteger For i = 14 To 31
Me.Controls("Label" & i).Caption = UserForm1("Kod" & i & "Text").Value Next i
To nie działa to dobrze. Bo przy wywołaniu UserForm2 do którego chcę przenieść te dane wyskakuje mi błąd: Could not find specify object.
I wskazuje na UserForm2.Show.
Jak wywalę pętlę For to wszystko chodzi ok.
W czym może być problem, bo ta pętla działa ok, jak odwołuje się do kontrolek w tym samym userformie?
napisał: Rycho postów: 291
umieszczony: 30 kwietnia 2007 17:28
Hej.
'procedura w module 'userform2' PrivateSub CommandButton1_Click()
Dzięki włąśnie o to mi chodziło. Ale teraz wyszedł jeszcze jeden problem. Mianowicie nie wiem jak przekazać wartości poszczególnych kontrolek między UserFormami. Mam 2 UserFormy i nie wiem jak np. z pola textowego w pierwszym userformie przekazac wartosc do pola textowego w drugim userformie?
napisał: Rycho postów: 291
umieszczony: 30 kwietnia 2007 15:11
Hej.
PrivateSub UserForm_Initialize() Dim k As Integer, i AsInteger
i = 0 ' nr combobox'a For k = 1 To 20 'liczba danych do list
i = i + 1: If i > 3 Then i = 1
Me.Controls("ComboBox" & i).AddItem "element" & k Next k
EndSub
napisał: Ojciec postów: 22
umieszczony: 30 kwietnia 2007 13:44
Witam
Mam problem z pętlą for. Mianowicie mam przykładowo 10 comboboxów i chcę w pętli for liczącej do 10 zrobić tak aby co krok odwoływała się do np. Combobox1.Additem, w kolejnym kroku do Combobox2.Additem.
I nie wiem jak połączyć "i" z Combobox. Próbowałem Combobox & i & .AddItem ale nie działa.
Z góry dziękuję za poradę.