Excel VBA Makros - Walz-Home

Walz-Home-Logo
Menü
Title
Direkt zum Seiteninhalt
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.

www.walz-home.net
www.michelwalz.de
Zurück zum Seiteninhalt