Excel VBA Code-Sammlung
Visual Basic ist eine Programmiersprache von Microsoft. Über bestimmte Programme, wie etwa Excel, kann ein VBA-Editor geöffnet werden.
Grundsätzlich gibt es dadurch so gut wie nichts was mit Excel nicht machen kann. Es gibt im Internet bereist genug Webseiten die den Umgang mit Excel VBA erklären. Ich beschränke mir nur auf eine Sammlung an Codeschnipseln die ich selber im Laufe der Jahre immer mal wieder gebraucht habe. Also eine Art Nachschlagewerk für jemanden der bereits weiß wie es funktioniert.
Excel VBA Zelle mit Inhalt füllen
Worksheets("Blattname").Cells(Zeile, Spalte).Value = "Hallo"
Hallo ist der neue Inhalt von der Zelle.
Excel VBA Zeilen löschen
Worksheets("Blattname").Rows("2:1000").Delete
Worksheets("Suche").Range("A14:B2000").EntireRow.Delete
Alle Zeilen im Bereich werden gelöscht.
Excel VBA Bereich leeren
Worksheets("Blattname").Range("A2:D1000").ClearContents
Alle Zellen im Bereich A2 bis D1000 werden geleert. Unterschied zum Löschen ist, dass keine Formatierungen usw. entfernt werden.
Excel VBA Bereich leeren und Formatierungen entfernen
Worksheets("Blattname").Range("A2:D1000").Clear
Alle Zellen im Bereich A2 bis D1000 werden geleert und Formatierungen werden entfernt.
Excel VBA Bereich leeren unter Verwendung von Cells
Worksheets("Blattname").Range(Cells(Zeile, Spalte), Cells(Zeile, Spalte)).ClearContents
Range steht hier für einen Bereich. Die Variablen Zeile und Spalte defineren den Bereich. Ich nutze so etwas, wenn mit Variablen Bereiche greifen möchte.
Excel VBA Zeilenhöhe setzen
Worksheets("Blattname").Rows(I).RowHeight = 10
Setzt die Höhe der Zeile I auf 10.
Excel VBA Farbe auslesen
Farbe = Worksheets("Blattname").Cells(Y, X).Interior.ColorIndex
Speichern die Färbung der Zelle X,y in der Variable Farbe.
Excel VBA Farbe setzen
Worksheets("Blattname").Range(Cells(Y, X), Cells(Y, X + 17)).Interior.ColorIndex = Farbe
Setzt den Bereich X,Y bis X+17,Y auf den Wert Farbe
Excel VBA Zellen "entfärben"
Worksheets("Blattname").Range(Cells(14, 1), Cells(2000, 19)).Interior.ColorIndex = 0 ' Ergebnisliste entfärben
Entfernt die Farbe in angegebenen Bereich.
Alle oben genannten Farbe-Befehl funktionieren nur mit den Standard-Excelfarben. Bei anderen Farbe können Verfälschungen auftreten. Lösung siehe nächster Tipp.
Excel VBA Farbe auslesen
Farbe = Worksheets("Legende").Cells(1,1).Interior.Color
Liest die Farbe aus und speichert den Wert in der Variable Farbe.
Excel VBA Farbe auslesen
Rot = Farbe Mod 256
Farbe = (Farbe - Rot) / 256
Gruen = Farbe Mod 256
Farbe = (Farbe - Gruen) / 256
Blau = Farbe Mod 256
Worksheets(Blatt).Cells(2,2).Interior.Color = RGB(Rot, Gruen, Blau)
Nachdem die Farbe ausgelesen wurde und wie oben beschrieben in der Variable Farbe gespeichert wurde wird sie nun zurückgeschrieben.
Natürlich kann man mit dem Befehl des zurückschreibens auch einfach einen RGB Wert setzen. RGB(0,0,255) ist zum Beispiel blau.
Excel VBA Tabelle Scrollen
Worksheets("Blattname").Cells(Y, X).Select
ActiveWindow.ScrollRow = Y
ActiveWindow.ScrollColumn = X
Aktiviert eine Zelle und scrollt an den Bereich, damit die Zelle sichtbar ist. So kann man bei lang laufenden Makos "zuschauen", aber es dauert dafür auch ein bisschen länger.
Excel VBA Textinhalte ersetzen
Replace(Text," ","-")
Ersetzt in eine String ein Zeichen durch ein anderes. Das braucht man zum Beispiel, wenn man eine CSV erstellen will und Umlaute oder Kommas ersetzen will.
Excel VBA Abfrage und Auswertung
Speichern = MsgBox("Wollen wir weiter machen?", vbYesNo, "Frage")
If Speichern = vbYes Then
Rem Dieser Inhalt wird nur ausgeführt, wenn man auf Ja geklickt hat!
End If
Auf dem Bildschirm erscheint eine kleine Frage und man kann mit ja oder nein antworten.
Excel VBA Select Case Endselect
Select Case Monat
Case 1, 3, 5, 7, 8, 10, 12
Rem Der Monat hat 31 Tage
Case 4, 6, 9, 11
Rem Der Monat hat 30 Tage
Case 2
Rem Der Monat hat 28 Tage und heißt Februar ...
End Select
Mit Select Case kann man verschiedene Abfragen und Bedingungen darstellen. Das ist übersichtlicher als viele verschachtelte If Endif Bedinungen.
Excel VBA Anzahl der Tabellenblätter in Variable schreiben
Anzahl = ThisWorkbook.Worksheets.Count
Wenn es fünf Tabellenblätter gibt, dann ist die Anzahl = 5
Excel VBA aktuelle Zeile und Spalte auslesen
Y = ActiveCell.Row
X = ActiveCell.Column
So speichert man die aktuelle Position an der man sich gerade befindet in Variablen.
Excel VBA Schleife zum Durchsuchen einer Liste
Zeile = 2
Do
If Worksheets("Artikel").Cells(Zeile, 1).Value = "4711" then
Worksheets("Artikel").Cells(Zeile, 2).Value = "Gefunden"
EndIf
Zeile = Zeile + 1
Loop Until Worksheets("Artikel").Cells(Zeile, 1).Value = ""
Diese Schleife durchsucht die Spalte 1 des Tabellenblattes "Artikel" nach der Artikelnummer 4711. Wenn es diese findet, dann schreibt es das Wort "Gefunden" dahinter in Spalte 2. Eine einfache Vorlage die man super abwandeln kann.