piątek, 16 października 2015

[2] Excel VBA - Marko - Wpisywanie danych do pustej kolumny w tabeli

W tym poście przedstawię makro wyszukujące puste miejsce w tabeli i wprowadzające w nią podane przez użytkownika dane. Przy jego tworzeniu posłużę się makrem znalezionym przeze mnie jakiś czas temu w internecie, którego zadaniem było odnalezienie pustego miejsca w tabeli. I zaznaczenie tej kolumny.

Makro


Wszystkie ważniejsze linijki kodu zostały przeze mnie opisane w programie. 


Sub WpiszDaneDoPustej()
 
    Dim Zasieg, Zasieg2, Zasieg3 As Range
    Dim Szukana, Wpisz As String
 
    'ustawienie zakresu poszukiwanych komórek
    Set Zasieg = Range("B1:B200")
 
    'podanie wyszukanego znaku
    Szukana = ""
 
    'wykonanie rozkazów dla każdej komórki w zakresie
    For Each Zasieg2 In Zasieg
        'Jesli znaleziona zawartosc odpowiada szukanej wartosci
        If Zasieg2.Value Like Szukana Then
 
        'dla komórki spełniającej kryterium
        If Zasieg3 Is Nothing Then
 
            Set Zasieg3 = Zasieg2
        End If
 
    End If
 
    Next Zasieg2
 
    'sprawdzenie czy udało sie znalesc komórki spełniające kryterium
    If Not Zasieg3 Is Nothing Then
 
        'Wpisanie danych w oknie
        Wpisz = InputBox("Podaj wartosc jaka chcesz wpisac", Title:="Dana kolumna B")
        'Wpisanie wartości do komórki pustej
        Zasieg3 = Wpisz
 
        'Wpisanie drugiej danej i przesunięcie zakresu
        Wpisz = InputBox("Podaj wartosc jaka chcesz wpisac", Title:="Dana kolumna C")
        Zasieg3.Offset(0, 1) = Wpisz
 
        Wpisz = InputBox("Podaj wartosc jaka chcesz wpisac", Title:="Dana kolumna D")
        Zasieg3.Offset(0, 2) = Wpisz
 
        Wpisz = InputBox("Podaj wartosc jaka chcesz wpisac", Title:="Dana kolumna E")
        Zasieg3.Offset(0, 3) = Wpisz
    Else
 
        MsgBox ("Nie znaleziono danych spełniających kryterium")
 
    End If
End Sub

Na poniższym rysunku przedstawiłem okno przykładowego arkusza z zdefiniowanym przyciskiem wywołującym makro.

Rys. 1.1. Przykładowy arkusz

Rysunek 1.2. przedstawia pierwsze okno, którego wpisana wartość zostanie podana do pustej komórki w kolumnie B.
Rys. 1.2. Pierwsze okno makra

Następnie wyskoczą jeszcze trzy okna pytające o wprowadzenie odpowiedniej wartości. Po przejściu całego makra otrzyma się następujący rezultat.

Rys. 1.3. Wynik działania makra

Kolejne włączenie makra spowoduje wpisanie podanych danych do następnej wolnej komórki.