Ich hab ein Problem, bei dem ich nicht weiterkomme. Vielleicht hat von euch ja jemand eine Idee, welche Methode man da anwenden kann.
Ich habe Zahlen von 1-30. Nun muss ich anhand von 2 Zahlenkombinationen prüfen, ob eine Restriktion vorliegt. Eine Restritkion liegt dann vor, wenn in einer Matrix ein "x" hinterlegt ist.
Die Zahlen, die ich prüfen muss, werden mir als Variable übergeben (also a=1, b=2; c=4,...). Sie werden aus einer Zelle ausgelesen (z.B.: 1;2;4;6;11;14;17;18;20,22;29;30). Das Erkennen der Teilstrings klappt und auch das Auffinden von diesen x-en.
Nun würde ich gerne folgendes umsetzen:
- für jedes x in Bereich y soll geprüft werden, welche Zahlenkombination eine Restriktion darstellt.
- Anschließend prüfe, ob diese Zahlenkombination in dieser Zelle vorkommt (z.B.: 1;2;4;6;11;14;17;18;20,22;29;30).
Mein Versuch bisher war es mit der Funktions Instr da ran zu gehen. Wenn ich allerdings die Zahlenkombination 1 und 2 vorliegen habe, dann kommt bei Instr die 1 gleich 5 mal vor, die 2 kommt 4 mal vor.
zelle = "1;2;4;6;11;14;17;18;20,22;29;30"
Set blatt1 = Worksheets("Blatt1")
With blatt1
Set c = blatt1.Range("c3:y22").Find("x", LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
a = c.Row 'Zeile
b = c.Column 'Spalte
yy = blatt1.Cells(a, 3) '1. Zahl
zz = blatt1.Cells(3, b) '2. Zahl
'Prüfung, ob beide Zahlen Restriktion darstellen --> x
If InStr(zelle, yy) > 0 And InStr(zelle, zz) > 0 Then
MsgBox "Es liegt eine Restriktion vor!"
Else: End If
Set c = blatt1.Range("c3:y22").FindNext(c)
Loop While Not c Is Nothing And c.Address firstAddress
End If
Ich würde gern nur 1 oder 2 suchen, nicht *1* oder *2*, was Instr zu machen scheint...
Weiß jemand von euch eine alternative Methode?
Viele Grüße,ViGo