Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

EXCEL / VBA - dodawanie do listy poprzez UserForm

27 Paź 2014 00:56 2436 1
  • Poziom 6  
    Ostatnio zacząłem bawić się vba w excelu i niestety chwilowo utknąłem ;)
    mam dwa problemy:

    1)
    Mam userforma w którego wpisywane są dane i po zatwierdzeniu przyciskiem "zapisz" wszystko trafia do odpowiedniego akrusza w excelu.

    ww. userform wywoływany jest przez przycisk na w innym arkuszu (commandButton)

    Code:
    Private Sub cmbDodajDefekt_Click()
    
    DodajDefekt.Show
    End Sub


    Wszystko działa poprawnie, jeżeli userform zostanie wywołany z poziomu edytora vba w excelu (run sub(F5)), kolejne dane po wciśnięciu "zapisz" wpisywane są w kolenych wierszach.
    Jeżeli jednak userform zostanie wywołany przez przycisk, dane są zapisywane ale zawsze w tym samym wersie.

    2)
    sprawdzam czy wszystkie pola są wypełnione i działa to tylko w przypadku TextBoxów, niestety w przypadku ComboBox juz nie...

    Wynikiem pętli
    Code:
    If TypeName(ctrl) = "ComboBox" Then
    
            If ctrl.ListIndex < 1 Then
                IsValid = False
            End If
        End If

    Jest False - tylko dlaczego?

    Kod do przycisku 'Zapisz' w UserFormie poniżej:

    Code:
    Private Sub CmbZapisz_Click()
    

    IsValid = True
    For Each ctrl In DodajDefekt.Controls
        If TypeName(ctrl) = "TextBox" Then
            If ctrl.Text = "" Then
                IsValid = False
            End If
        End If
     
        If TypeName(ctrl) = "ComboBox" Then
            If ctrl.ListIndex < 1 Then
                IsValid = False
            End If
        End If
    Next ctrl
     
    If IsValid Then

    wiersz = Range("C" & Rows.Count).End(xlUp).Row + 1
    Worksheets("Defekty").Range("C" & wiersz).Value = TextBoxPojazd
    Worksheets("Defekty").Range("D" & wiersz).Value = TextBoxNrRejestracyjny
    Worksheets("Defekty").Range("E" & wiersz).Value = TextBoxMiejsce
    Worksheets("Defekty").Range("F" & wiersz).Value = ComboBoxRodzaj
    Worksheets("Defekty").Range("G" & wiersz).Value = ComboBoxPriorytet
    Worksheets("Defekty").Range("H" & wiersz).Value = TextBoxOpis
    Worksheets("Defekty").Range("I" & wiersz).Value = TextBoxZglaszajacy
    Worksheets("Defekty").Range("J" & wiersz).Value = TextBoxUwagi

    Else
       MsgBox "Nie wypełniono wszystkich wymaganych pól"
    End If
  • Poziom 6  
    Już znalazłem błędy - temat od zamknęcia