Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

eine Zelle in mehreren Dateien ändern

Forumthread: eine Zelle in mehreren Dateien ändern

eine Zelle in mehreren Dateien ändern
28.02.2017 10:58:30
Luca
Hallo zusammen,
ich kann nirgendwo ein Beispiel dafür finden, wie man Zelle A1 und A2 aus mehreren gleich gebauten Excel-Dateien in einem Ordner ändern kann. Wenn es sehr viele Dateien sind, wird der Makrorekorder unhandlich. Das Einzige was ich als VBA finden konnte war eine Version mit der SearchFile Anweisungen die ja seit 2007 nicht mehr funktioniert (Unten dargesetllt). Wie sieht der Ersatz mit Dir() oder FSO() aus? Tut mir Leid wenn die Frage banal oder nicht so sinnvoll ist..
Danke für jede Hilfe!
Sub DateienVerarbeiten()
Dim i As Long
Dim Blatt As Worksheet
Const verz = "D:\Eigene Dateien\"
On Error GoTo fehler
ChDir verz
With Application.FileSearch
.NewSearch
.LookIn = verz
.SearchSubFolders = False
.FileType = msoFileTypeExcelWorkbooks
.Execute
For i = 1 To .FoundFiles.Count
Workbooks.Open .FoundFiles(i)
For Each Tabelle In ActiveWorkbook.Worksheets
Tabelle.Range("A1").Value = "TEXTNEU"
Next Tabelle
ActiveWorkbook.Close savechanges:=True
Next i
End With
Exit Sub
fehler:
MsgBox "Es gibt kein Verzeichnis mit dem Namen " & verz
End Sub

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: eine Zelle in mehreren Dateien ändern
02.03.2017 10:27:21
Luca
Keine Antwort = Frage zu doof? :D
Ich bin für jede Hilfe dankbar..
AW: eine Zelle in mehreren Dateien ändern
02.03.2017 10:33:39
Luca
Erschwerend kommt noch hinzu, dass die Excel-Dateien zwar gleich aufgebaut sind, es aber Variationen in den Namen der Tabellenblätter gibt. Das relevante Blatt ist immer die Tabelle2.
Die Dateien liegen alle in einem Ordner.
Ganz praktisch ist die Zielvorgabe, einen simplen Fehler, der sich bei allen ca. 150 Dateien in Zelle A1 und A2 eingeschlichen hat zu korrigieren ohne jede Datei anfassen zu müssen.
Anzeige
Prinzipiell kannst Du...
02.03.2017 11:17:09
Case
Hallo, :-)
... das so machen: ;-)
Option Explicit
' Suchmuster gegebenenfalls anpassen
Const strEX As String = "*.xls*"
Public Sub Main()
Dim strDir As String
Dim objFSO As Object
Dim objDir As Object
Dim lngCalc As Long
On Error GoTo Fin
With Application
.ScreenUpdating = False
.AskToUpdateLinks = False
.EnableEvents = False
lngCalc = .Calculation
.Calculation = xlCalculationManual
.DisplayAlerts = False
End With
Set objFSO = CreateObject("Scripting.FileSystemObject")
' Datei im gleichen Ordner wie Auswertungsdateien
' strDir = ThisWorkbook.Path & "\"
' Fester Ordner vorgegeben
strDir = "C:\Temp\Test\"
strDir = IIf(Right(strDir, 1)  "\", strDir & "\", strDir)
Set objDir = objFSO.getfolder(strDir)
'dirInfo objDir, strEX, True ' Mit Unterordner
dirInfo objDir, strEX ' Ohne Unterordner
Fin:
With Application
.ScreenUpdating = True
.AskToUpdateLinks = True
.EnableEvents = True
.Calculation = lngCalc
.DisplayAlerts = True
End With
Set objDir = Nothing
Set objFSO = Nothing
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & " " & Err.Description
End Sub
Public Sub dirInfo(ByVal objCurrentDir As Object, ByVal strName As String, _
Optional ByVal blnTMP As Boolean = False)
Dim wkbBook As Workbook
Dim varTMP As Variant
For Each varTMP In objCurrentDir.Files
If varTMP.Name Like strName Then
If varTMP.Name  ThisWorkbook.Name Then
If Left(varTMP.Name, 1)  "~" Then
Set wkbBook = Workbooks.Open(varTMP.Path)
' Zweites Tabellenblatt - Index 2
With wkbBook.Worksheets(1)
.Range("B1").Value = "Neu"
.Range("B2").Value = "AuchNeu"
.Parent.Close True
Set wkbBook = Nothing
End With
End If
End If
End If
Next varTMP
If blnTMP = True Then
For Each varTMP In objCurrentDir.SubFolders
dirInfo varTMP, strName, blnTMP
Next varTMP
End If
Set wkbBook = Nothing
End Sub
Im Moment wird im Pfad "C:\Temp\Test\" im zweiten Tabellenblatt in Zelle "B1" und "B2" geändert.
Servus
Case

Anzeige
AW: Prinzipiell kannst Du...
02.03.2017 12:02:29
Luca
Wow, danke. Es klappt einwandfrei. Ganz herzlichen Dank! LG ;)
Gerne! Danke für die Rückmeldung, owT
02.03.2017 12:48:11
Case
:-)
Anzeige
Anzeige

Infobox / Tutorial

Zelle A1 und A2 in mehreren Excel-Dateien gleichzeitig ändern


Schritt-für-Schritt-Anleitung

Um den Text in den Zellen A1 und A2 in mehreren Excel-Dateien gleichzeitig zu ändern, kannst du ein VBA-Skript verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:
    • Klicke mit der rechten Maustaste auf „VBAProject (DeineDatei.xlsx)“.
    • Wähle „Einfügen“ und dann „Modul“.
  3. Kopiere den folgenden Code in das Modul:
Sub DateienVerarbeiten()
    Dim i As Long
    Dim wkbBook As Workbook
    Const verz = "C:\Temp\Test\" ' Ändere den Pfad zu deinem Ordner
    On Error GoTo fehler
    ChDir verz

    Dim objFSO As Object
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Dim objDir As Object
    Set objDir = objFSO.getfolder(verz)

    For Each varTMP In objDir.Files
        If varTMP.Name Like "*.xls*" Then
            Set wkbBook = Workbooks.Open(varTMP.Path)
            With wkbBook.Worksheets("Tabelle2") ' Stelle sicher, dass die Tabelle existiert
                .Range("A1").Value = "TEXTNEU"
                .Range("A2").Value = "TEXTNEU2"
            End With
            wkbBook.Close SaveChanges:=True
        End If
    Next varTMP

    Exit Sub
fehler:
    MsgBox "Fehler: " & Err.Number & " " & Err.Description
End Sub
  1. Ändere den Pfad in der Zeile Const verz = "C:\Temp\Test\" zu dem Ordner, der deine Excel-Dateien enthält.
  2. Starte das Makro durch Drücken von F5 oder gehe zu „Run“ > „Run Sub/UserForm“.

Häufige Fehler und Lösungen

  • Fehlermeldung: "Datei nicht gefunden"
    Überprüfe den angegebenen Pfad. Stelle sicher, dass der Ordner existiert und die Dateien den richtigen Namen haben.

  • Tabelle nicht gefunden
    Wenn die Tabelle nicht "Tabelle2" heißt, ändere den Namen im Code entsprechend.

  • Makro läuft nicht
    Stelle sicher, dass Makros in Excel aktiviert sind. Gehe zu „Datei“ > „Optionen“ > „Trust Center“ > „Einstellungen für das Trust Center“ > „Makroeinstellungen“ und aktiviere die Ausführung von Makros.


Alternative Methoden

Falls du nicht mit VBA arbeiten möchtest, gibt es auch andere Möglichkeiten:

  • Power Query: Mit Power Query kannst du Daten aus mehreren Excel-Dateien importieren und transformieren. Diese Methode ist jedoch weniger geeignet für einfache Zelländerungen.
  • Batch-Skripte: Wenn du mit mehreren Dateiendungen arbeiten möchtest, kannst du auch Batch-Skripte verwenden, um die Dateien zu bearbeiten. Diese Methode erfordert jedoch fortgeschrittene Kenntnisse in der Programmierung.

Praktische Beispiele

Hier sind einige praktische Beispiele für die Verwendung des VBA-Codes:

  1. Ändere den Text in A1 und A2 in allen Dateien:

    • Wie im obigen Code gezeigt, wird der Text in den Zellen A1 und A2 auf "TEXTNEU" und "TEXTNEU2" gesetzt.
  2. Ändere mehrere Dateiendungen:

    • Wenn du Dateien mit verschiedenen Endungen (z.B. .xls, .xlsx) bearbeiten möchtest, stelle sicher, dass die Bedingung If varTMP.Name Like "*.xls*" den gewünschten Dateityp abdeckt.

Tipps für Profis

  • Backup der Dateien: Erstelle eine Sicherungskopie deiner Dateien, bevor du das Makro ausführst, um Datenverlust zu vermeiden.
  • Anpassung des Codes: Du kannst den Code anpassen, um auch andere Zellen oder Formate zu ändern.
  • Fehlerbehandlung: Implementiere eine bessere Fehlerbehandlung im Code, um spezifische Probleme zu identifizieren.

FAQ: Häufige Fragen

1. Kann ich den Text in mehreren Zellen gleichzeitig ändern?
Ja, du kannst den Code anpassen, um mehrere Zellen zu ändern. Füge einfach weitere .Range("C1").Value = "Neuer Text" Zeilen hinzu.

2. Funktioniert das nur mit Excel 2016?
Der VBA-Code sollte in den meisten aktuellen Excel-Versionen funktionieren, darunter Excel 2010, 2013, 2016 und 2019. Stelle sicher, dass die Datei im richtigen Format gespeichert ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige