Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1284to1288
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

VBA - aus der personl.xls alle Blätter ansprechen

VBA - aus der personl.xls alle Blätter ansprechen
18.11.2012 15:17:42
WalterK
Hallo,
der folgende Code sucht in Spalte C die in arName1 angeführten Zellinhalte und ersetzt sie durch die in arName2 angeführten Zellinhalte.
Jetzt wollte ich den Code in der Personl.xls speichern damit er alle Blätter der aktiven Mappe (bis auf 1) auf einmal durchläuft. Tut er so aber nicht, er läuft zwar durch, bearbeitet aber nur das gerade aktive Blatt. Was muss geändert werden, damit alle Blätter (bis auf 1) bearbeitet werden?
Option Explicit
Sub SuchenErsetzen()
Dim arName1 As Variant
Dim arName2 As Variant
Dim i As Long
Dim lngSpalte As Long
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
If ws.Name  "SpaltenNr_im_LöschCode_angeben" Then
arName1 = Sheets("SpaltenNr_im_LöschCode_angeben").Range("A2:A" & Cells(Rows.Count,  _
1).End(xlUp).Row).Value
arName2 = Sheets("SpaltenNr_im_LöschCode_angeben").Range("B2:B" & Cells(Rows.Count,  _
1).End(xlUp).Row).Value
On Error Resume Next
lngSpalte = Columns(InputBox("SpaltenBuchstabe eingeben, in der die Aktion Suchen/ _
Ersetzen durchgeführt werden soll!", "SpaltenBuchstabe eingeben/ändern", "C")).Column
On Error GoTo Ende
If lngSpalte > 0 Then
For i = LBound(arName1) To UBound(arName1)
Columns(lngSpalte).Replace arName1(i, 1), arName2(i, 1), xlWhole
Next
End If
End If
Next ws
Exit Sub
Ende:
Err.Clear
End Sub
Besten Dank für die Hilfe und Servus, Walter

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - aus der personl.xls alle Blätter ansprechen
18.11.2012 16:02:40
Gerd
Hallo Walter,
kleine Ursache, .... !
Falls in allenBlättern die selbe Spalte beackert werden soll, stelle die Inputbox vor die Schleife.
On Error GoTo Ende
If lngSpalte > 0 Then
For i = LBound(arName1) To UBound(arName1)
ws.Columns(lngSpalte).Replace arName1(i, 1), arName2(i, 1), xlWhole
Next
End If
End If
Next ws
'....................

Gruß Gerd

AW: VBA - aus der personl.xls alle Blätter ansprechen
18.11.2012 16:16:53
WalterK
Hallo Gerd,
besten Dank, so funktioniert es sehr gut!
Darf ich Dich bitten auch noch den zweiten Code anzuschauen, hier habe ich das gleiche Problem.
Option Explicit
Sub ZZZZZsuchenundZeilelöschen()
'Dieser Code sucht in der anzugebenden Spalte nach der Textfolge ZZZZZ und löscht bei den  _
Fundstellen
'jeweils die gesamte Zeile!
Dim i As Long
Dim lngSpalte As Long
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
If ws.Name  "SpaltenNr_im_LöschCode_angeben" Then
Application.ScreenUpdating = False
lngSpalte = Columns(InputBox("Spaltebuchstabe angeben, in der nach ZZZZZ die Zeilen  _
gelöscht werden sollen!", "Spaltenbuchstabe eingeben/ändern", "C")).Column
If lngSpalte > 0 Then
For i = Cells(Rows.Count, lngSpalte).End(xlUp).Row To 1 Step -1
If Cells(i, lngSpalte) = "ZZZZZ" Then Rows(i).Delete
Next i
End If
End If
Next ws
End Sub
Vielen Dank für die Hilfe, Servus Walter

Anzeige
wieder vergessen auf offen zu stellen
18.11.2012 16:17:56
WalterK

AW: VBA - aus der personl.xls alle Blätter ansprechen
18.11.2012 16:25:42
Gerd
Hallo Walter!
If ws.Cells(i, lngSpalte) = "ZZZZZ" Then ws.Rows(i).Delete
Hier fehlt die Referenzierung auf das Blatt.
Gruß Gerd

AW: Korrektur
18.11.2012 16:30:29
Gerd
Hallo Walter,
stopp, eigentlich bei allen Bezeichnungen der inneren Schleife.
For i = ws.Cells(ws.Rows.Count, lngSpalte).End(xlUp).Row To 1 Step -1
If ws.Cells(i, lngSpalte) = "ZZZZZ" Then ws.Rows(i).Delete
Next i
Gruß Gerd

AW: Korrektur
18.11.2012 16:42:19
WalterK
Hallo Gerd,
besten Dank für Deine kompetente Hilfe, es funktioniert alles.
Schönen Sonntag noch,
Servus Walter

148 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige