Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Aktualisieren mehrerer Datein über VBA-Code

Forumthread: Aktualisieren mehrerer Datein über VBA-Code

Aktualisieren mehrerer Datein über VBA-Code
19.08.2003 14:32:50
Torsten K.
Hallo zusammen,
in einem Ordner habe ich ca. 20 Dateien, die alle mit "108_"; "110_" oder "112" beginnen. Alle Dateien haben den gleichen Aufbau (Arbeitsblätter und deren Bezeichnungen). Nun gibt es in jeder Datei 3 Arbeitsblätter, deren Daten ich jeden Monat vor dem Hereinkopieren aktueller Daten löschen möchte (Range: A1:B250). Bisher habe ich mir mit einem aufgzeichneten Makro ein wenig helfen können, muss ab er auch heute noch jede Datei manuell öffnen, Inhalt der 3 Arbeitsblätter löschen, speichern und schließen. Das nervt ungemein!!
Meine Ideen gehen dahin:
Entweder eine Excel-Datei (z.B. "Start.xls") zu erstellen, die Pfade und Namen der zu aktualisierenden Dateien einzutragen und ein VBA-Code zu erstellen, mit dessen Hilfe diese kleine Liste abgearbeitet und der Range der entsprechenden Arbeistblätter gelöscht werden kann. Selbst meine mehr als bescheidenen Programmierkenntnisse zeigen mir, daß hier eine Schleife notwendig ist. Als VBA-Einsteiger bin allerdings noch nicht so weit, dies mir selbst zu erarbeiten.
Ein anderer Gedanke ist, mein Problem mit Hilfe des FSO zu lösen. Dafür bräuchte ich aber sicher mehr Details und Hilfe beim Einbinden eines entsprechenden VBA-Codes als bei oben beschriebenen Lösung.
Ich wäre jedem sehr dankbar, der mir hier auf die Sprünge helfen könnte.
Gruß
Torsten
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aktualisieren mehrerer Datein über VBA-Code
19.08.2003 23:06:00
Klaus Schubert
Hallo Thorsten,
hiermit müsste es gelingen:

Sub DatenLöschen()
Dim nameDatei As String, ws(1 To 3) As String
Dim i1 As Integer, i2 As Integer
Const Pfad As String = "C:\Test\" 'Anpassen !
ws(1) = "Tabelle1": ws(2) = "Tabelle2": ws(3) = "Tabelle3" 'Anpassen !
Application.ScreenUpdating = False
If MsgBox("Löschen beginnen ?" & vbCr & "(Dieser Vorgang dauert eine Weile !)", _
vbQuestion + vbOKCancel, "Löschen") <> vbOK Then Exit Sub
For i1 = 108 To 112 Step 2
nameDatei = Dir(Pfad & i1 & "*.xls")
Do While nameDatei <> ""
Workbooks.Open nameDatei
For i2 = 1 To 3
Sheets(ws(i2)).Range("A1:B250").ClearContents
Range("A1").Activate
Next i2
ActiveWorkbook.Close savechanges:=True
nameDatei = Dir()
Loop
Next i1
MsgBox "Ich habe fertig !", vbOKOnly, "Fertig !"
Application.ScreenUpdating = True
End Sub

WICHTIG!:
Bei Const Pfad As String = "C:\Test\"
musst du für "C:\Test\" natürlich den Pfad zu deinem Ordner eingeben, damit nicht die falschen Dateien bearbeitet werden !!!
Bei ws(1) = "Tabelle1": ws(2) = "Tabelle2": ws(3) = "Tabelle3"
musst du für "Tabelle1", "Tabelle2" und "Tabelle3" die Namen deiner Blätter angeben, in denen die entsprechenden Zellen gelöscht werden sollen !
Es werden nur Mappen bearbeitet, die mit "108_" , "110_" oder "112_" anfangen und mit ".xls" enden !!!
Falls du jetzt mit dem Code so nichts anfangen kannst, mache folgendes:
Öffne eine neue Arbeitsmappe, drücke dann gleichzeitig die Tastenkombination Alt+F11. Es öffnet sich das VBA-Fenster. Jetzt klickst du mit der rechten Maustaste oben links in das Projektfenster, dann auf Einfügen / Modul.
Im rechten Fenster kopierst du nun diesen Code. Mache jetzt die Änderungen bezüglich Pfad und Tabellennamen (s.o.). Das VBA-Fenster schließen und die Arbeitsmappe unter einen beliebigen Namen speichern.
Jetzt kannst du diesen Code als Makro mit dem Namen DatenLöschen wie jedes andere Makro aufrufen oder einem Button zuordnen.
Am besten alles erst einmal an Kopien ausprobieren.
Ich hoffe , das war jetzt nicht zu genau.
Gruß Klaus

Anzeige
Herzlichen Dank für Deine Hilfe - Gruß TK (oT)
20.08.2003 08:22:53
Torsten K.
oT

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige