das folgende Makro soll Daten aus einer Tabelle auslesen und in den anderen Blättern ersetzen.
Sub Ersetze()
Dim Werte As Variant, i As Long, Ws As Worksheet
Dim rngFund As Range, strErsterFund As String
'Suchen - Ersetzen - Daten auslesen
With Worksheets("Tausch")
Werte = .Range("A1").CurrentRegion.Value
End With
'Schleife über alle zu ersetzenden Begriffe
For i = 1 To UBound(Werte)
'Schleife über alle Tabellenblätter
For Each Ws In ActiveWorkbook.Worksheets
'Tabellenblatt "Tausch" ausschließen
If Ws.Name "Tausch" Then
'Suche nach EAN
Set rngFund = Ws.Columns(1).Find(Werte(i, 1), LookIn:=xlValues, lookat:=xlWhole)
If Not rngFund Is Nothing Then
strErsterFund = rngFund.Address
'etwas gefunden => ersetzen
Do
'ersetzen
rngFund.Value = Werte(i, 2)
rngFund.Offset(0, 1).Value = Werte(i, 3)
'weiter suchen
Set rngFund = Ws.Columns(1).FindNext(rngFund)
Loop While (Not rngFund Is Nothing) And strErsterFund rngFund.Address
End If
End If
Next Ws
Next i
End Sub
Aus der Tauschtabelle wird der erste Begriff geprüft und bei der ersten Fundstelle auch getauscht.Dann hängt das Makro bei der Loop - Schleife und wird nicht mehr ausgeführt.
"Laufzeitfehler '91' - Objektvariable oder With-Blockvariable nicht festgelegt"
Alle Versuche, den Fehler zu beheben sind gescheitert.
Was mache ich falsch!?
MfG
Frank