Artikel-Schlagworte: „VBA“
Addieren
Um eine Addition vornehmen zu können, muss zunächst der Variablentyp festgelegt werden.
Um rechnen zu können, kann der Wert z.B. mit dem Variablentyp "Single" definiert werden. Der Variablentyp Single ermöglicht Rechnungen mit 8-stelligen Nachkommastellen.
Im folgenden Beispiel wird die Variable positioniert auf die Zelle "A1" im Registerblatt "Tabelle1".
Der Rechenbefehl addiert "5" zum bisherigen Wert in der gleichen Tabelle.
Mit der folgenden Codezeile wird bestimmt, dass das Ergebnis in der gleichen Zelle wieder ausgegeben wird.
Mittels Änderung von "A1" kann man in der Zeile ".Range("A1").Value = Wert" die Zelle einstellen, in der das Ergebnis ausgegeben wird.
Nachfolgender Code bewirkt, dass das Ergebnis in einem anderen Tabellenblatt ausgegeben wird.
Entscheidend ist hier das der "With"-Befehl beendet wird, bevor die Zelle für die Wert-Ausgabe festgelegt wird, da sich diese Zelle in einem anderen Tabellenblatt befindet und der With-Befehl sich auf das Tabellenblatt "Tabelle1" bezieht. Das Ergebnis soll in diesem Fall allerdings in dem Tabellenblatt "Tabelle3" und dort in der Zelle "A3" ausgegeben werden.
Nachfolgender Befehl addiert die Zahlen der Zellen "A1" und "B1" und gibt das Ergebnis in der Zelle "C1" wieder aus.
Der folgende Befehl addiert in einem festgelegten Tabellenblatt ("Tabelle1") die Zahl der Spalte 1 in der ersten Zeile (A1) mit der Zahl der Spalte 2 in der ersten Zeile (B1) und gibt den Wert in der Spalte (C1) aus. Diese Rechenoperation wird solange durchgeführt, bis die erste Zelle der 1. Spalte leer ist.
Um rechnen zu können, kann der Wert z.B. mit dem Variablentyp "Single" definiert werden. Der Variablentyp Single ermöglicht Rechnungen mit 8-stelligen Nachkommastellen.
Im folgenden Beispiel wird die Variable positioniert auf die Zelle "A1" im Registerblatt "Tabelle1".
Der Rechenbefehl addiert "5" zum bisherigen Wert in der gleichen Tabelle.
Mit der folgenden Codezeile wird bestimmt, dass das Ergebnis in der gleichen Zelle wieder ausgegeben wird.
Sub Addieren() Dim Wert As Single With Sheets("Tabelle1") Wert = .Range("A1").Value Wert = Wert + 5 .Range("A1").Value = Wert End With End Sub
Mittels Änderung von "A1" kann man in der Zeile ".Range("A1").Value = Wert" die Zelle einstellen, in der das Ergebnis ausgegeben wird.
Nachfolgender Code bewirkt, dass das Ergebnis in einem anderen Tabellenblatt ausgegeben wird.
Sub Addieren() Dim Wert As Single With Sheets("Tabelle1") Wert = .Range("A1").Value Wert = Wert + 5 End With Sheets("Tabelle3").Range("A3").Value = Wert End Sub
Entscheidend ist hier das der "With"-Befehl beendet wird, bevor die Zelle für die Wert-Ausgabe festgelegt wird, da sich diese Zelle in einem anderen Tabellenblatt befindet und der With-Befehl sich auf das Tabellenblatt "Tabelle1" bezieht. Das Ergebnis soll in diesem Fall allerdings in dem Tabellenblatt "Tabelle3" und dort in der Zelle "A3" ausgegeben werden.
Nachfolgender Befehl addiert die Zahlen der Zellen "A1" und "B1" und gibt das Ergebnis in der Zelle "C1" wieder aus.
Sub TAddieren() Dim Wert As Single Dim Zahl1 As Single Dim Zahl2 As Single Dim Ergebnis As Single Zahl1 = Sheets("Tabelle1").Range("A1").Value Zahl2 = Sheets("Tabelle1").Range("B1").Value Ergebnis = Zahl1 + Zahl2 Sheets("Tabelle1").Range("C1").Value = Ergebnis End Sub
Der folgende Befehl addiert in einem festgelegten Tabellenblatt ("Tabelle1") die Zahl der Spalte 1 in der ersten Zeile (A1) mit der Zahl der Spalte 2 in der ersten Zeile (B1) und gibt den Wert in der Spalte (C1) aus. Diese Rechenoperation wird solange durchgeführt, bis die erste Zelle der 1. Spalte leer ist.
Sub TAddieren3() Dim Zahl1 As Single Dim Zahl2 As Single Dim Ergebnis As Single Dim a As Variant a = 1 Do Until Sheets("Tabelle1").Cells(a, 1).Value = "" Zahl1 = Sheets("Tabelle1").Cells(a, 1).Value Zahl2 = Sheets("Tabelle1").Cells(a, 2).Value Ergebnis = Zahl1 + Zahl2 Sheets("Tabelle1").Cells(a, 3).Value = Ergebnis a = a + 1 Loop End Sub
Rahmen erstellen und formatieren
Um einen Rahmen zu Formatieren, ist zunächst der Bereich als Objekt zu definieren.
Dies erfolgt wie üblich:
Nach dem das Objekt definiert ist, wird nun noch festgelegt, dass sich die folgenden definierten Eigenschaften auf einen Rahmen beziehen. Dazu wird ".Borders" ergänzt. Die Codezeile sieht dann wie folgt aus:
Mit dem "With"-Befehl können dem Rahmen verschiedene Eigenschaften mitgegeben werden.
So kann die Rahmenfarbe und die Art der Rahmenlinie festgelegt werden.
Beispielcode mit doppelter Linie und dunkelroter Linienfarbe:
Dies erfolgt wie üblich:
Sheets("Tabelle1").Range("A1:D10")
Nach dem das Objekt definiert ist, wird nun noch festgelegt, dass sich die folgenden definierten Eigenschaften auf einen Rahmen beziehen. Dazu wird ".Borders" ergänzt. Die Codezeile sieht dann wie folgt aus:
Sheets("Tabelle1").Range("A1:D10").Borders
Mit dem "With"-Befehl können dem Rahmen verschiedene Eigenschaften mitgegeben werden.
So kann die Rahmenfarbe und die Art der Rahmenlinie festgelegt werden.
Beispielcode mit doppelter Linie und dunkelroter Linienfarbe:
Sub Rahmen1() With Sheets("Tabelle3").Range("A3:C5").Borders .ColorIndex = 30 .LineStyle = xlDouble End With End Sub
Textformatierung
Nachfolgender Code bewirkt, dass der Bereich von "B1" bis "C10" dunkelrot hinterlegt wird und die Schrift fett ausgegeben wird.
Der With-Befehl
Durch die Verwendung von "With" können dem Objekt mehrere Eigenschaften mitgegeben werden, ohne das Objekt für jede einzelne Eigenschaft wieder neu definieren zu müssen. Hier werden mit dem "With"-Befehl die Hintergrundfarbeneigenschaft und die Fettung der Schrift des Objektes zugewiesen.
Schrifteigenschaften
Die Schrift wird mit ".Font" angesprochen, danach erfolgt die Bestimmung der Eigenschaft der Schrift.
Diese werden mit True und False nach dem "=" aktiviert oder deaktiviert:
Hier ist nach dem "=" eine Zahl zu erfassen:
Für die Farbe ist der jeweilige Farbcode gem. ColorIndex einzutragen, für die Größe die gewünschte Schriftgröße in pt.
Sub Textformatierung() With Sheets("TestA").Range("B1:C10") .Interior.ColorIndex = 30 .Font.Bold = True End With End Sub
Der With-Befehl
Durch die Verwendung von "With" können dem Objekt mehrere Eigenschaften mitgegeben werden, ohne das Objekt für jede einzelne Eigenschaft wieder neu definieren zu müssen. Hier werden mit dem "With"-Befehl die Hintergrundfarbeneigenschaft und die Fettung der Schrift des Objektes zugewiesen.
Schrifteigenschaften
Die Schrift wird mit ".Font" angesprochen, danach erfolgt die Bestimmung der Eigenschaft der Schrift.
Diese werden mit True und False nach dem "=" aktiviert oder deaktiviert:
- Bold = Fettdruck
- Italic = Kursivdruck
- Underline = unterstreichen der Schrift
- Strikethrough = durchgestrichene Schrift
- Subscript = tiefgestellte Schrift
- Superscript = hochgestellte Schrift
Hier ist nach dem "=" eine Zahl zu erfassen:
- ColorIndex = Farbe
- Size = Größe
Für die Farbe ist der jeweilige Farbcode gem. ColorIndex einzutragen, für die Größe die gewünschte Schriftgröße in pt.
Markierte Zellen in bestimmter Farbe füllen
Nachfolgender Befehl färbt die in der Tabelle markierten Zellen in dunkelrot.
Sub Zellenfaerben() Dim FZel As Range For Each FZel In Selection FZel.Interior.ColorIndex = 30 Next FZel End Sub
Kopfzeile mit Text aus Tabelle füllen
Problemstellung:
Allgemein: In die Kopfzeile sind via VBA Texte oder Zahlen zu erfassen, die innerhalb der Tabelle in bestimmten Zellen erfasst werden.
1. Die Kopfzeile des aktuellen Tabellenblattes wird mit dem Wert aus der Zelle "A1" des aktuellen Tabellenblattes gefüllt
2. Der Zellinhalt der Tabelle "TestA", Zelle "A1" ist in der rechten Kopfzeile der aktuellen Tabelle auszuweisen.
Die einzelnen Bereiche der Seite können via VBA wie folgt angesprochen werden:
Allgemein: In die Kopfzeile sind via VBA Texte oder Zahlen zu erfassen, die innerhalb der Tabelle in bestimmten Zellen erfasst werden.
1. Die Kopfzeile des aktuellen Tabellenblattes wird mit dem Wert aus der Zelle "A1" des aktuellen Tabellenblattes gefüllt
Sub KopfzeilefuellenL() ActiveSheet.PageSetup.LeftHeader = Format(ActiveSheet.Range("A1").Value) End Sub
2. Der Zellinhalt der Tabelle "TestA", Zelle "A1" ist in der rechten Kopfzeile der aktuellen Tabelle auszuweisen.
Sub KopfzeilefuellenR() ActiveSheet.PageSetup.RightHeader = Format(Sheets("TestA").Range("A1").Value) End Sub
Die einzelnen Bereiche der Seite können via VBA wie folgt angesprochen werden:
- LeftHeader = Kopfzeilenbereich links
- CenterHeader = Kopfzeilenbereich mitte
- RightHeader = Kopfzeilenbereich rechts
- LeftFooter = Fußzeile links
- CenterFooter = Fußzeile mitte
- RightFooter = Fußzeile rechts
Mehrzeilige Texte in MessageBox anzeigen
Nachfolgender Code gibt eine MessageBox aus, welche in der ersten Zeile "Hallo", in der zweiten Zeile "mein Name ist:" und in der dritten Zeile "Tamara" ausgibt.
& vbCrLf & bewirkt hierbei den Wechsel in die nächste Zeile, diesen Befehl mehrfach hintereinander geschaltet, ergibt entsprechend häufige Zeilenwechsel und demzufolge bei einer zweifach-Schaltung eine Leerzeile.
Sub MessageBox1() MsgBox "Hallo" & vbCrLf & "mein Name ist:" & vbCrLf & vbCrLf & "Tamara" End Sub
& vbCrLf & bewirkt hierbei den Wechsel in die nächste Zeile, diesen Befehl mehrfach hintereinander geschaltet, ergibt entsprechend häufige Zeilenwechsel und demzufolge bei einer zweifach-Schaltung eine Leerzeile.
Wechsel zu bestimmten Tabellenblatt
Nachfolgender Code bewirkt den Wechsel zu einem anderen Tabellenblatt.
In Abhängigkeit des Wertes der Zelle A1 des Tabellenblattes, wird zu dem Tabellenblatt gewechselt, welches den gleichen Namen hat, wie die Zelle den Wert.
Dieser Blattwechsel funktioniert nur dann wenn die Werte, welche in A1 erfasst werden die gleichen Namen haben, wie die Tabellenblätter.
In Abhängigkeit des Wertes der Zelle A1 des Tabellenblattes, wird zu dem Tabellenblatt gewechselt, welches den gleichen Namen hat, wie die Zelle den Wert.
Dieser Blattwechsel funktioniert nur dann wenn die Werte, welche in A1 erfasst werden die gleichen Namen haben, wie die Tabellenblätter.
Application.Worksheets((Application.ActiveSheet.Range("A1").Value)).Activate
Blättern in Excelarbeitsmappe
Nachfolgender Code bewirkt den Wechsel zum nächsten Tabellenblatt
Nachfolgender Code bewirkt den Wechsel zum vorangegangenen Tabellenblatt
Application.ActiveSheet.Next.Activate
Nachfolgender Code bewirkt den Wechsel zum vorangegangenen Tabellenblatt
Application.ActiveSheet.Previous.Activate