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

Werte in einem Excel-File ändern

Werte in einem Excel-File ändern
21.10.2019 15:19:27
Reinhard
Hallo zusammen,
ich hab aktuell ein "kleines" Anliegen. Ich müsste in Excel-Dateien immer einen bestimmten Eintrag ändern. Das sollte mit einem Makro recht "einfach" lösbar sein.
Im Ordner "Makro" gibt es Unterordner, jeder Unterordner hat eine andere Benennung. In diesen Unterordnern befindet sich jeweils eine Exceldatei, ebenfalls mit unterschiedlichen Namen. In den Excel-Dateien müsste immer der Wert in der Zelle B3 geändert werden.
Die Ordnerstruktur schaut folgendermaßen aus (s. Anhang - ich kann aktuell leider kein File hochladen). In der Zelle B3 müsste nach "(Series 3)" gesucht und bei Auffinden der Wert "(Series 2)" eingetragen und das Dokument gespeichert werden. Und das in allen Ordnern die sich im Hauptordner "Makro" befinden.
Über zahlreiche Vorschläge wäre ich sehr dankbar ;-)
Grüße
Reinhard

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte in einem Excel-File ändern
21.10.2019 15:24:42
Reinhard
Hier der angefügte Anhang
Userbild
AW: Werte in einem Excel-File ändern
21.10.2019 15:54:30
Klexy
Das sollte dir weiterhelfen:
Sub OrdnerAuslesen()
AktivesMakro_o = AktivesMakro
AktivesMakro = "OrdnerAuslesen"
' https://www.makro-excel.de/2017/01/31/dateinamen-eines-verzeichnisses-mit-vba-auslesen- _
und-in-excel-schreiben/
Dim objFileSystem As Object
Dim objVerzeichnis As Object
Dim objDateienliste As Object
Dim objDatei As Object
Dim Pfad As String
Dim i As Long
Dim Liste As String
If ActiveSheet.UsedRange.Rows.Count > 1 Then
MsgBox vbCr & _
"Kein leeres Tabellenblatt!" & vbCr & vbCr & _
"Leeres Tabellenblatt wird in der aktiven Datei erstellt." & vbCr & _
vbCr & vbCr & _
"____________________________________" & vbCr & _
"  Makro:  _" & AktivesMakro & "_ ", vbCritical
Worksheets.Add(After:=ActiveSheet).Name = "Dateien"
End If
Pfad = InputBox(vbCr & vbCr & "Bitte Pfad eingeben" & vbCr & "", "Pfad als Variable anlegen" _
)
Set objFileSystem = CreateObject("scripting.FileSystemObject")
Set objVerzeichnis = objFileSystem.GetFolder(Pfad)
Set objDateienliste = objVerzeichnis.Files
i = 1
ActiveSheet.Cells(i, 1) = "Dateiname"
ActiveSheet.Cells(i, 2) = "Pfad"
i = i + 1
For Each objDatei In objDateienliste
If Not objDatei Is Nothing Then
' If Right(objDatei.Name, 4) = ".pdf" Then ' nur bestimmte Dateitypen
ActiveSheet.Cells(i, 1) = objDatei.Name
ActiveSheet.Cells(i, 2) = objDatei.Path
i = i + 1
' End If
End If
Next objDatei
Columns("A:B").AutoFit
Call UnterOrdnerAuslesen(objVerzeichnis, i)
AktivesMakro = AktivesMakro_o
End Sub
Sub UnterOrdnerAuslesen(ByVal strDateipfad As String, i As Long)
AktivesMakro_o = AktivesMakro
AktivesMakro = "UnterOrdnerAuslesen"
Dim objFileSystem As Object
Dim objVerzeichnis As Object
Dim objUnterordner As Object
Dim objDatei As Object
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
Set objVerzeichnis = objFileSystem.GetFolder(strDateipfad)
For Each objUnterordner In objVerzeichnis.SubFolders
For Each objDatei In objUnterordner.Files
If Not objDatei Is Nothing Then
' If Right(objDatei.Name, 4) = ".pdf" Then ' nur bestimmte Dateitypen
ActiveSheet.Cells(i, 1) = objDatei.Name
ActiveSheet.Cells(i, 2) = objUnterordner.Path
i = i + 1
' End If
End If
Next objDatei
Call UnterOrdnerAuslesen(objUnterordner.Path, i)
Columns("A:B").AutoFit
Next objUnterordner
Columns("A:B").AutoFit
End Sub

Anzeige
AW: Werte in einem Excel-File ändern
22.10.2019 07:18:07
Reinhard
Vielen Dank, aber damit kann ich leider nichts anfangen. Die Dateien sind mir ja bereits bekannt, das Auslesen alleine bringt mich leider nicht weiter.
AW: Werte in einem Excel-File ändern
22.10.2019 07:42:38
Klexy
Was, wenn nicht die vielen unterschiedlichen Dateinamen herauszufinden, ist denn das Problem?
Jetzt musst du nur noch statt Pfad und Dateinamen aufzuschreiben, ein File open einfügen und für deine Zelle ein Replace.
AW: Werte in einem Excel-File ändern
22.10.2019 07:51:58
Reinhard
Danke für den Tip, aber mein aktuelles Level ist leider "Excel gut - VBA bescheiden"
AW: Werte in einem Excel-File ändern
22.10.2019 09:04:28
Pierre
Hallo Reinhard,
so?
Sub Dateien_Auf_Speichern_Zu()
Dim Datei As String
Dim Arbeitsmappe As String
Dim PFAD As String
PFAD = "C:\Users\Desktop\Test\"             'Pfad des Oberordners anpassen
ChDrive "C"                                 'Laufwerk anpassen
ChDir "C:\Users\Desktop\Test\"              'wie oben, anpassen
With Application
.ScreenUpdating = False
.DisplayAlerts = False
Datei = Dir(PFAD & "*.xls")                 'evtl. hier (PFAD & Datei & "*.xls")
Do While Datei  ""
Workbooks.Open Filename:=Datei
If ActiveSheet.Cells(3, 2) = "(Series 3)" Then
'ActiveSheet.Unprotect
ActiveSheet.Cells(3, 2).Value = "(Series 2)"
'ActiveSheet.Protect
ActiveWorkbook.Close False
Else
ActiveWorkbook.Close False
End If
Datei = Dir()
Loop
.ScreenUpdating = True
.DisplayAlerts = True
End With
End Sub
Gruß Pierre
(geklaut und abgewandelt von: https://www.herber.de/forum/archiv/1092to1096/1092670_Alle_Daten_in_einem_Ordner_durchlaufen.html)
Anzeige
AW: Werte in einem Excel-File ändern
22.10.2019 09:36:23
Klexy
@ Pierre: Das ist aber nicht genau die gewünschte Lösung.
@ Reinhard: Wenn du meinen Code Schritt für Schritt durchgehst (mit F8), dann wirst du "VBA etwas besser".
Und an der Stelle des Codes, wo der komplette Pfad und der Dateiname einer Datei ausgegeben wird, fügst du diesen Code-Schnipsel ein:
Workbooks.Open Filename:= **Pfad  und Dateiname** ' hier entsprechend anpassen
ActiveSheet.Cells(3, 2) = Replace(ActiveSheet.Cells(3, 2).Value, "(Series 3)", "(Series 2)")
ActiveWorkbook.Close (Savechanges = True)
Wird vielleicht nicht auf Anhieb klappen, weil du z.B. ein "\" im Pfad vergessen hast, aber daraus lernst du dann einiges. Versuch es.
Anzeige
@Klexy
22.10.2019 10:05:00
Pierre
Was habe ich übersehen?
Innerhalb eines Ordners wird bei mir in jeder Mappe in Zelle B3 aus Series 3 - Series 2.
Habe extra getestet...
AW: @Klexy
22.10.2019 18:17:05
Klexy
innerhalb der Zelle B3 den Teil Series 3 durch Series 2 ersetzen. Der Beschreibung nach steht da noch mehr als Series 3 in der Zelle drin. Deshalb Replace.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige