946 Aufrufe
Gefragt in Tabellenkalkulation von
Hallo,

ich habe eine große Anzahl (ca. 200) von xls-sheets in verschiedenen Ordnern eines Netzlaufwerks, in denen bestimmte Inhalte (Begriffe) durch neue ersetzt werden müssen.
Hierzu möchte ich diese xls-sheets der Reihe nach aufrufen und mit Suchen/Ersetzen diese neuen Werte "einpflegen" und die Dateien danach wieder schließen (vielleicht gibt es ja auch eine bessere Lösung).
Kann ich das einfach von einem "ganz neutralen" xls-sheet per VBA erledigen?
Wäre schön, wenn mir hierbei jemand helfen könnte ...

Vielen Dank schon mal, Jojo

4 Antworten

0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi jojo ^^^

ein beispiel :-)

gruss nighty

Sub DateienKorrigieren()
Call EventsOff
Dim DateiName As String
Dim OrdnerPfad As String
OrdnerPfad = OrdnerAuswahl
DateiName = Dir(OrdnerPfad & "*.xls")
Do While DateiName <> ""
If ThisWorkbook.Name <> DateiName Then
Workbooks.Open Filename:=OrdnerPfad & DateiName
Workbooks(DateiName).Worksheets(1).Range("B:B").Replace What:="ALTDATEN", Replacement:="NEUDATEN", LookAt:=xlPart, SearchOrder:=xlByRows
Workbooks(DateiName).Close SaveChanges:=True
End If
DateiName = Dir
Loop
Call EventsOn
End Sub
Function OrdnerAuswahl() As String
On Error GoTo FehlerRoutine
Dim AppShell As Object
Dim BrowseDir As Variant
Set AppShell = CreateObject("Shell.Application")
Set BrowseDir = AppShell.BrowseForFolder(0, "Ordner auswählen", &H1000, 17)
OrdnerAuswahl = BrowseDir.items().Item().Path & "\"
FehlerRoutine:
End Function
Public Sub EventsOff()
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
End Sub
Public Sub EventsOn()
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub
0 Punkte
Beantwortet von
Hallo nighty,

sorry für die späte Antwort - vielen Dank schon mal für die Lösung. Ich habe sie "damals" gleich ausprobiert, musste ein paar Kleinigkeiten anpassen und hatte dann aber keine Zeit mehr, daran weiter zu arbeiten.

Hoffentlich komme ich in den nächsten Tagen dazu. Ich melde mich dann ggf. wieder ...

Nochmal vielen Dank, schöne Grüße
Jojo
0 Punkte
Beantwortet von
Hallo,

nachdem ich noch ein paar Tage Krankheit eingeschoben habe, hat sich die Welt leider etwas verändert. Mit dem Ersetzen von Begriffen ist es leider nicht getan, sondern die Struktur der Datei hat sich so verändert, dass ich alle bisher existierenden Dateien quasi migrieren muss. Zur Veranschaulichung: Es gibt viele Begriff/Wert-Paare in den Spalten A und B (z.B. A1: "Monat", B1: "Januar"). In der neuen Datei heißt "Monat" nun "Monatsangabe" und steht nicht mehr zwingend in A1, sondern bspw. in A9. D.h.:
- ich muss die neue Datei und die erste bestehende Datei öffnen
- in der bestehenden Datei muss ich nach dem ersten Eintrag in Spalte B suchen und den Wert ("Januar") kopieren
- mit dem zugehörigen Begriff in Spalte A ("Monat") muss ich in der neuen Datei in Spalte A nach dem neuen Begriff ("Monatsangabe") suchen
- in der zugehörigen Spalte B muss ich dann den Wert aus der bestehenden Datei ("Januar") einfügen

- das gleiche mache ich so lange wie es Werte in Spalte B hat

- und das Ganze mache ich für alle xls-sheets, die ich in einem Ordner (inkl. Unterordner) finde - d.h. idealerweise wird die neu geöffnete Datei dann immer auch unter dem Namen der bestehenden Datei + Zusatz (z.B. "_") abgespeichert.

Es wäre super, wenn mir jemand helfen könnte (ich würde wahrscheinlich Jahre brauchen - wenn ich es überhaupt schaffen würde ...). Dafür schon mal vielen Dank!!!

Viele Grüße
Jojo
0 Punkte
Beantwortet von
Hallo,

leider komme ich nicht selbst darauf - kann mir bitte jemand helfen?

Vielen Dank, Gruss
Jojo
...