Damit kann man etwas anfangen.
Probier mal:
Option Explicit
Sub Test()
Dim i As Long
With Worksheets("Tabelle1")
For i = 2 To .Cells(.Rows.Count, "C").End(xlUp).Row
If Contains(.Cells(i, "C"), "Kunde4", "Kunde5", "Kunde6") _
And Contains(.Cells(i, "D"), "30302543") _
And Contains(.Cells(i, "E"), "Produkt 06", "Produkt 09") _
Then
' 'Wert in Zelle voranstellen
' ' Möglichkeit #1:
' ' * die '10' wird per Formatierung vorangestellt
' ' * in der Zelle steht weiterhin der alte Wert
' ' * auf dem Blatt ist der Wert jedoch mit vorangestelltem '10' sichtbar
' .Cells(i, "D").NumberFormat = """10""0"
' Möglichkeit #2:
' * die '10' wird in der Zelle vorangestellt
' * in der Zelle steht dann ein neuer Wert (!)
.Cells(i, "D").Value = "10" & .Cells(i, "D").Value
End If
Next
End With
End Sub
Private Function Contains(Cell As Excel.Range, ParamArray Values() As Variant)
Dim vntValue As Variant
For Each vntValue In Values
Contains = StrComp(Cell(1).Value, vntValue, vbTextCompare) = 0
If Contains Then Exit Function
Next
End Function
Sollte selbsterklärend sein.
Grüße
PS: In deinem Beispiel haben die Produkte in der Zelle mehrere Leerzeichen zwischen dem Bezeichner und der Nummer. Das muss im Code natürlich berücksichtigt werden, da "Produkt 06" nich das gleiche ist wie "Produkt 06"
|