Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1380to1384
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

suchen und ersetzen mit Makro

suchen und ersetzen mit Makro
10.09.2014 18:02:09
Frank
Hallo,
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

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: suchen und ersetzen mit Makro
10.09.2014 19:07:27
Crazy
Hallo
so geht es in meinem Test
Sub Ersetze()
Dim Werte As Variant, i As Long, Ws As Worksheet
Dim rngFund As Range
'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
'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
End If
End If
Next Ws
Next i
End Sub

dabei braucht es keine erste Fundstelle
MfG Tom
Anzeige

320 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige