VisualBasic VBA: Zellen eines Bereichs auf Teilwert eines String prüfen und Farbe ändern

mikelsdump

Cadet 4th Year
Registriert
Aug. 2008
Beiträge
125
Hallo Ihr VBA-Kenner,

ich bin jetzt schon über ein Jahr raus aus VBA (war aber auch nie ein Kenner) und habe jetzt eine Tabelle die VBA benötigt und absolut keine Ahnung wie ich das anstellen soll.

Das VBA Skript soll:
- Alle (String-)Werte der Zellen innerhalb der Range (A1:E54) darauf überprüfen, ob der Wert der Stringvariable Stattyp in dem Stringwert der Zelle enthalten ist
-Die Stringvariable Stattyp kann z.B. den Wert "Pr" haben. Wenn ein Zelleninhalt nun den Teilstring "Pr" enthält, soll dieser Zelle die Schriftfarbe weiß (in der Variable "FontColor" gespeichert) und die Hintergrundfarbe rot (in der Variable "BgColor" gespeichert) zugewiesen werden.
-Der Zellenwert enthält im String obendrein eine Zahl. Diese würde ich gerne als Int aus dem Stringwert auslesen und damit rechnen, ebenfalls für jede Zelle. Geht das? (Letztlich ist das Ziel, die Int-Werte aller Zellen, die z.B. "Pr" enthalten zu addieren)

Kann mir da bitte jemand helfen?
 
Da ich dir nicht die ganze Arbeit abnehmen will ;), hier ein paar Tipps:

1.
Über die .Cells-Eigenschaft kannst du bequem durch die Range schleifen und mit der Funktion InStr() überprüfen ob ein String einen anderen String beinhaltet:
Code:
Dim rng As Range
Dim myValue As String

myValue = "x"
Set rng = ActiveSheet.Range("A1:E54")

For Each cell In rng.Cells
    If (InStr(cell.Value, myValue)) Then
        MsgBox "hooray"
    End If
Next cell
2.
Schriftfarbe einer Zelle setzen:
Code:
cell.Font.Color = RGB(255, 255, 255)
Hintergrundfarbe einer Zelle setzen:
Code:
cell.Interior.Color = RGB(255, 0, 0)
3.
Am einfachsten wäre es wohl durch die Zeichen des Strings zu schleifen und dir mit der Funktion IsNumeric() alle Zahlen herauszusuchen:
Code:
Dim i As Integer
Dim char As String
Dim myValue As String

myValue = "xy"

For i = 1 To Len(myValue)
    char = Mid(myValue, i, 1)
Next
 
Zurück
Oben