in einem anderen Forum hat jmd. das Problem daß da bei seinem Code der Fehler 91 kommt, also Objektvariable nicht festgelegt usw.
Ich habe mir den Code "test1" angeschaut, gekürzt auf "test2" und dann mit Testdaten ausprobiert.
Also mit Tabellenblätter wo da im gewünschetn Bereich von E mal die Suchwörter drin standen oder halt nicht.
Kam nie so eine Fehlermeldung.
Obwohl, zugeb, sie kam schon ein-zweimal aber irgendwie nicht reprozudierbar.
Hier ist die Mappe um die es geht: https://www.herber.de/bbs/user/75442.xlsm
Nachfolgend die Codes.
Ich komme einfach nicht darauf was da der Unterschied ist ob ich Code erstmalig nach Mappenöffnung aufrufe oder dann danach nochmal denn beim zweiten mal kommt ja kein Fehler.
Ich sehe auch daß beim ersten Codeaufruf trotz Fehlermeldung in der tabelle so geändert wie gewünscht wird.
Ergo ist höchstwahrscheinlich der Fehler bei der Durchführung des zweiten Durchgangs durch die For Schleife zu suchen, aber ich seh/find da nix :-(((
Danke ^ Gruß
Reinhard
Sub test1()
Dim a As Integer
a = 1
Do
Select Case a
Case 1
With Range("E17:E517")
Set rangeSuche = .Find(What:="solia", LookIn:=xlFormulas, LookAt:=xlPart)
If Not rangeSuche Is Nothing Then
strAdresse = rangeSuche.Address
Do
rangeSuche.Value = "Tray with"
Set rangeSuche = .FindNext(rangeSuche)
Loop While Not rangeSuche Is Nothing And rangeSuche.Address strAdresse
End If
End With
Case 2
With Range("E17:E517")
Set rangeSuche = .Find(What:="foil", LookIn:=xlFormulas, LookAt:=xlPart)
If Not rangeSuche Is Nothing Then
strAdresse = rangeSuche.Address
Do
rangeSuche.Value = "Foil with"
Set rangeSuche = .FindNext(rangeSuche)
Loop While Not rangeSuche Is Nothing And rangeSuche.Address strAdresse
End If
End With
End Select
a = a + 1
Loop Until a > 2
End Sub
Sub test2()
Dim a As Byte, rangeSuche As Range, strAdresse As String
For a = 1 To 2
With Range("E17:E517")
Set rangeSuche = .Find(What:=IIf(a = 1, "solia", "foil"), LookIn:=xlFormulas, LookAt:= _
xlPart)
If Not rangeSuche Is Nothing Then
strAdresse = rangeSuche.Address
Do
rangeSuche.Value = IIf(a = 1, "Tray with", "Foil with")
Set rangeSuche = .FindNext(rangeSuche)
Loop While Not rangeSuche Is Nothing And rangeSuche.Address strAdresse
End If
End With
Next a
End Sub