Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 70583 Skopiuj do schowka Dynamiczny UserForm
Autor Wiadomość
beret
ExcelGaduła 500+


Wersja: Win Office 2007
Pomógł: 13 razy
Posty: 784
Wysłany: 06-04-2021, 09:33   Dynamiczny UserForm

Spodobał mi się sposób podany przez Tajana, w załączonym pliku, na dynamiczną tabelę w UserForm.
Co zmienić w makrach, aby zamiast 10 TextBox'ów były np 2 CoboBox"y i 8 TextBox'ów ?

Dynamiczna tabela(tj3).xlsm
Pobierz Plik ściągnięto 7 raz(y) 31.62 KB

ID posta: 403225 Skopiuj do schowka
 
 
Tajan


Pomógł: 4767 razy
Posty: 10469
Wysłany: 06-04-2021, 10:48   

W module formularza dodaj funkcję:
Kod:
Private Function NewComboBox(nTop As Long, nLeft As Long) As MSForms.ComboBox
    Set NewComboBox = Controls.Add("Forms.ComboBox.1")
    With NewComboBox
        .Height = ctrlH
        .Width = tboxW
        .Left = nLeft
        .Top = nTop
    End With
End Function

a funkcję CreateNewLIne zmień na przykład w taki sposób:
Kod:
Function CreateNewLine() As Klasse1
    Dim btnClass As Klasse1
    Dim myTop As Long
    Dim myLeft As Long
    Dim i As Long
    Dim comboList1, comboList2
   
    myTop = ctrlTop
    myLeft = 5
   
    comboList1 = Array("item1", "item2", "item3", "item4")
    comboList2 = Array("item5", "item6", "item7")
           
    Set btnClass = New Klasse1
     
    With btnClass
     
        Set .CmdEventsDown = NewButton(Chr(118), myTop, myLeft): myLeft = myLeft + btnW + ctrlSpc
        Set .CmdEventsUp = NewButton(Chr(94), myTop, myLeft): myLeft = myLeft + btnW + ctrlSpc
        Set .CmdEventsAdd = NewButton("+", myTop, myLeft): myLeft = myLeft + btnW + ctrlSpc
        Set .CmdEventsDel = NewButton("-", myTop, myLeft): myLeft = myLeft + btnW + ctrlSpc
       
        For i = 1 To licz
          With .myTextBoxes
            Select Case i
                Case 1
                  .Add NewComboBox(myTop, myLeft)
                  .Item(.Count).List = comboList1
                Case 2
                  .Add NewComboBox(myTop, myLeft)
                  .Item(.Count).List = comboList2
                Case Else
                   .Add NewTextBox(myTop, myLeft)
              End Select
              myLeft = myLeft + tboxW
          End With
        Next i
   
    End With
   
    Set CreateNewLine = btnClass

End Function
ID posta: 403230 Skopiuj do schowka
 
 
beret
ExcelGaduła 500+


Wersja: Win Office 2007
Pomógł: 13 razy
Posty: 784
Wysłany: 06-04-2021, 11:52   

Wyrzuca błąd w tej linii:
Kod:
Case Else
                   .Add NewTextBox(myTop, myLeft)


UF Dynamiczna tabela2.xlsm
Pobierz Plik ściągnięto 7 raz(y) 26.04 KB

ID posta: 403233 Skopiuj do schowka
 
 
Artik 



Wersja: Win Office 365
Pomógł: 3139 razy
Posty: 10389
Wysłany: 06-04-2021, 12:10   

Brakuje ostatniego argumentu.
Wydaje się, że wystarczy
Kod:
.Add NewTextBox(myTop, myLeft, 0)

Artik
_________________
Persistence is a virtue in the world of programming.
ID posta: 403235 Skopiuj do schowka
 
 
Tajan


Pomógł: 4767 razy
Posty: 10469
Wysłany: 06-04-2021, 12:18   

beret, pomieszałeś pliki. W pierwszym pliku definicja funkcji AddTextBox wygląda tak:
Kod:
Private Function NewTextBox(nTop As Long, nLeft As Long) As MSForms.TextBox
czyli funkcja ma dwa argumenty i do tej wersji się odniosłem. Natomiast w drugim pliku masz defnicję funkcji z trzema argumentami:
Kod:
Private Function NewTextBox(nTop As Long, nLeft As Long, nWid As Long) As MSForms.TextBox
i stąd komunikat błędu o brakującym argumencie.
ID posta: 403236 Skopiuj do schowka
 
 
beret
ExcelGaduła 500+


Wersja: Win Office 2007
Pomógł: 13 razy
Posty: 784
Wysłany: 06-04-2021, 12:28   

Teraz jest super.
Wielkie dzięki.
ID posta: 403239 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.marketingNET.pl

Archiwum

Strona używa plików cookies.

Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przeglądarce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
Sprawdź, w jaki sposób przetwarzamy dane osobowe