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

  tytuł wątku:
Wątki dyskusji

Łączenie właściwości obiektu z numerem


otwartyotwarty rozpoczął: Ojciec postów: 15



napisał: Ojciec
postów: 22


umieszczony:
2 maja 2007
10:08

  
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 :(

Zobacz http://malyrycho.webpark.pl/excel/userforms.zip
może Ci pomoze a jak nie, to napisz do mnie maila (klik na nazwie użytkownika).
napisał: Ojciec
postów: 22


umieszczony:
1 maja 2007
17:51

  
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.
napisał: Rycho
postów: 291


umieszczony:
1 maja 2007
16:57

  
Hej.
Spróbuj
UF1Kod = UserForm1.Controls("NumerPZText" & i).Value

napisał: Ojciec
postów: 22


umieszczony:
1 maja 2007
16:08

  
Ok poniżej kod.
UserForm2 wywoływany jest przez CommandButton w UserForm1 poleceniem UserForm2.Show
Następnie kod UserForm2:

Private Sub UserForm_Initialize()
   If UserForm1.Visible = True Then
     Me.Label3.Caption = UserForm1.NumerPZText.Value 'To działa poprawnie
     Me.Label5.Caption = UserForm1.DataText.Value 'To też działa poprawnie
     Dim i As Integer
     Dim MenuKod As String
     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
     
     Else
     Me.Label3 = ""
   End If
End Sub

Private Sub WyjscieBtn_Click()
Unload UserForm2
End Sub

napisał: Rycho
postów: 291


umieszczony:
1 maja 2007
15:24

  
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 As Integer
     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'
Private Sub CommandButton1_Click()
    
  If UserForm1.Visible = True Then
    Me.TextBox1 = UserForm1.TextBox1
  Else
    Me.TextBox1 = "<brak>"
  End If

End Sub

napisał: Ojciec
postów: 22


umieszczony:
30 kwietnia 2007
15:44

  
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.

Private Sub UserForm_Initialize()
  Dim k As Integer, i As Integer

  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

End Sub

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ę.


<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z