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
Rys. 1.3. Wynik działania makra
Kolejne włączenie makra spowoduje wpisanie podanych danych do następnej wolnej komórki.