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.

[vba-excel] dodawanie do kolejnych wierszy

06 Lut 2012 08:00 7620 20
  • Poziom 15  
    Witam
    Czy orientuje się ktoś jaka jest formuła na dopisanie danych do kolejnego wiersza w arkuszu. Narazie korzystam z range("a2").value ale ta formuła pozwala tylko na wpisanie w jeden wiersz.
  • Pomocny post
    Poziom 40  
    Kod: vb
    Zaloguj się, aby zobaczyć kod
  • Poziom 15  
    A jak będzie wyglądała formuła która będzie sprawdzała czy zostały wypełnione wszystkie pola textboxa i comboboxa
  • Poziom 40  
    wisnialdz napisał:
    A jak będzie wyglądała formuła która będzie sprawdzała czy zostały wypełnione wszystkie pola textboxa i comboboxa
    Tzn. ?
    Chodzi o coś w rodzaju walidacji formularza? Te kontrolki to zwykłe formanty czy ActiveX- a może są na formie?
  • Poziom 15  
    Chodzi o wyświetlenie jakiegoś komunikatu który będzie informował, o nieuzupełnieniu jakiegoś pola textbox, a w przypadku comboboxa jeżeli zostanie wybrany index 0. Nie pozwoli na utworzenie formularza jeżeli nie zostana wpisane wszystkie pola.
  • Poziom 40  
    Powracam do pytania - gdzie masz umieszczone te textboxy i comboboxy? Można je wstawić bezpośrednio do arkusza, można też na formę UserForm...
  • Poziom 15  
    Mam je wstawione na UserForm
  • Pomocny post
    Poziom 40  
    Wypróbuj coś takiego, ew. przerób do własnych potrzeb:
    Kod: vb
    Zaloguj się, aby zobaczyć kod
  • Poziom 15  
    W które miejsce to wstawić bo albo nie działa albo wywala błąd
  • Pomocny post
    Poziom 40  
    Tam, gdzie chcesz dokonać walidacji, np. przy kliknięciu przycisku na formie.
  • Poziom 15  
    Próbuje, ale ciagle mi błąd wywala
    taki jest mój kod wiersze od A - E to textboxy, a od F-G comboboxy


    Private Sub CommandButton1_Click()
    Range("A" & Range("A" & Rows.Count).End(xlUp).Row + 1).Value = marka
    Range("B" & Range("B" & Rows.Count).End(xlUp).Row + 1).Value = model
    Range("C" & Range("C" & Rows.Count).End(xlUp).Row + 1).Value = rokprodukcji
    Range("D" & Range("D" & Rows.Count).End(xlUp).Row + 1).Value = numervin
    Range("E" & Range("E" & Rows.Count).End(xlUp).Row + 1).Value = pojemnoscsilnika
    Range("F" & Range("F" & Rows.Count).End(xlUp).Row + 1).Value = typpojazdu
    Range("G" & Range("G" & Rows.Count).End(xlUp).Row + 1).Value = rodzajpaliwa

    End Sub

    Private Sub CommandButton2_Click()
    Unload Me
    End Sub

    Private Sub UserForm_Initialize()
    rodzajpaliwa.List = Array("wybierz rodzaj", "Olej napędowy", "Benzyna", "Benzyna + LPG", "Hybryda", "Wodór")
    typpojazdu.List = Array("wybierz typ", "Kabriolet", "Sedan", "Kombi", "Hatchback", "Terenowy", "Van", "SUV")
    rodzajpaliwa.ListIndex = 0
    typpojazdu.ListIndex = 0
    End Sub
  • Pomocny post
    Poziom 40  
    Możesz plik wrzucić z przykładem?
  • Poziom 40  
    No, to po kliknięciu przyciski Utwórz formularz:
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    Dodatkowo zmieniłem warunek na ctrl.ListIndex < 1, bo w wierszu zerowym comboboxów masz napis wybierz wartość, który też nie powinien być brany pod uwagę...
  • Poziom 15  
    wszystko ładnie działa tylko textboxy wpisują się od 5 wiersza zamiast od 2 comboboxy normalnie się ustawiają
  • Poziom 40  
    Bo "coś" masz w wierszu 3 i 4, być może śmieci z poprzednich prób. Jak je usuniesz to powinno śmigać. Swoją drogą, niepotrzebnie 7x ustalasz ostatni wiersz, wystarczy to zrobić raz na początku, a potem wykorzystać:
    Kod: vb
    Zaloguj się, aby zobaczyć kod
  • Poziom 15  
    Teraz działa wielkie dzięki za pomoc
  • Poziom 17  
    A co wprowadzić żeby te konkretne dane wpisywały się do określonego arkusza, np Arkusz2
  • Poziom 29  
    :) ? Nie lepiej było zacząć "własny temacik" ... niż "znęcać" się nad nieboszczykiem sprzed 6 lat ? :)

    Po nazwie kodowej arkusza właśnie, jak piszesz, tj. Arkusz2.Range("a1").Value = ""
    Po nazwie zakładki, tj. Sheets("Arkusz2").Range("a1").Value = ""
    Po nazwie zmiennej obiektowej, jeśli przypisana, tj. np. arkusz.Range("a1").Value = ""