Kontrollstrukturen¶
Und hier könnte man jetzt richtig für Buchseiten sorgen. Im Grunde sollte man für alle Grundkonstrukte einer Programmiersprache (hier: Skriptsprache) die üblichen Code-Gerüste parat haben.
Die Frage ist nur, ob man sich hier ausführliche Beispiele hinterlegt, oder einfach der Code Vervollstängigung des Wahl-Editors folgt und ja doch oft die Codes fertig via Copy & Paste bereitstellt.
Wir schauen uns das mal grob an und schauen dann im VBA-Editor weiter.
Verwzeigungen¶
Je nach Zeit werden wir in den Seminare die hier notwendigen Beipiele mehr oder weniger intensiv durchgehen.
If … End If
If … Then … Else … End If
IIf( Bedingung, Then, Else)
Select Case … Case(s) … End Select
Übungen: Beispiel-Codes für TN werden von mir bereitgestellt.
Schleifen¶
For … To … Next
For Each … Next
With … End With
Do Until … Loop
Do While … Loop
Übungen: Beispiel-Codes für TN werden von mir bereitgestellt.
Aber ein wenig soll auch an dieser Stelle dargestellt werden.
Einfache Codes Kontrollstrukturen¶
Wochenenden kennzeichnen
Abb. 69 Codebeispiel - Wochenenden kennzeichnen¶
Hier ein der Beispielcode (mit With ... End With):
Sub WochenendenKennzeichnen()
Dim lngSpalte As Long
Dim lngSpalteMax As Long
With Tabelle4
.Rows(1).Interior.ColorIndex = xlColorIndexNone
lngSpalteMax = .Cells(1, .Columns.Count).End(xlToLeft).Column
For lngSpalte = 1 To lngSpalteMax
If IsDate(.Cells(1, lngSpalte).Value) Then
If Weekday(.Cells(1, lngSpalte).Value, vbMonday) > 5 Then
' .Cells(1, lngSpalte).Interior.ColorIndex = 4
' .Cells(1, lngSpalte).Interior.Color = RGB(0, 0, 255)
.Cells(1, lngSpalte).Interior.ThemeColor = xlThemeColorAccent1
End If
End If
Next lngSpalte
End With
End Sub
Im Code kann man drei unterschiedliche Farbzuweisungen erkennen. Hier ist die letzte Variante sicherlich die Professionellste, da wir die gewünschten Designfarben der Office-Umgebung nutzen (hier: Akzentfarbe 1).
Werte in Spalten suchen
Der Code soll einen Wert in einer Spalte suchen, finden und hervorheben.
Abb. 70 Code Beispiel - Werte in Spalte suchen¶
Hier folgt der VBA-Code zur Umsetzung.
' Variante: JoeB
Sub WerteInSpalteSuchen()
Dim rngTreffer As Range
Dim strNoTreffer As String
Dim strSuchbegriff As String
Dim lngZeile As Long
Dim lngZeileMax As Long
Tabelle1.Range("A:A").Interior.ColorIndex = xlColorIndexNone
strSuchbegriff = InputBox("Suchbegriff eingeben!", "Direktsuche", 4720)
With Tabelle1
lngZeileMax = .UsedRange.Rows.Count
For lngZeile = 2 To lngZeileMax
Set rngTreffer = Tabelle1.Range("A" & lngZeile).Find(What:=strSuchbegriff, LookIn:=xlValues, LookAt:=xlWhole)
If rngTreffer Is Nothing Then
temp = Tabelle1.Range("A" & lngZeile).Address
strNoTreffer = strNoTreffer & " " & temp
Else
rngTreffer.Interior.ColorIndex = 4
End If
Next lngZeile
End With
MsgBox "Wert in den Zellen " & strNoTreffer & " nicht gefunden!"
End Sub