Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
624to628
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
624to628
624to628
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zellbereich G1:AH14 in 795 Dateien ändern

Zellbereich G1:AH14 in 795 Dateien ändern
20.06.2005 18:36:03
Ingo
Hallo liebe Excel-Experten,
ich habe folgendes Problem:
Ich habe 795 Dateien in einem Ordner. Die Dateien sind nach einem sechstelligen Code benannt, der nicht fortlaufend ist, beginnend bei 10001, endend bei 104093.
Jede Datei enthält ein einzelnes Tabellenblatt, das ebenfalls mit dem Code benannt ist.
Auf dem jeweiligen Tabellenblatt befinden sich im Bereich A2:F14 Daten einer statistischen Erhebung. In den Zellen G14:AH14 folgen Auswertungen mithilfe von Formeln (zählenwenn etc.), die in jeder Datei gleich sind.
Der Zellbereich G14:AH14 ist leider fehlerhaft und muss in allen 795 Dateien ersetzt werden. Der neue Bereich befindet sich in einer neuen Template-Datei ebenfalls im Bereich G14-AH14. Klar, ich kann jede Datei von Hand öffnen und den Bereich aus der neuen Template-Datei über die Zwischenablage herüberkopieren. Das würde allerdings sehr lange dauern. Und - schlimmer noch - was ist, wenn mein Chef den Auswertungsbereich morgen wieder ändert...? Aaarghh, genau...
Es wäre großartig, wenn jemand wüßte, wo eine Lösung für dieses Problem beschrieben ist. Vielleicht kann jemand sogar ein entsprechendes Skript hier posten. Das wäre klasse!
Ich bin für jede Hilfe dankbar!
Herzliche Grüße,
Ingo

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellbereich G1:AH14 in 795 Dateien ändern
20.06.2005 19:13:01
Matthias
Hallo Ingo,
mal ein Ansatz:
Option Explicit
Sub Mappen_Aendern()
Const Pfad = "d:\xl\"
Const Bereich = "G14:AH14"
Dim fn As String
Dim ff As Integer
Dim Ber As Range, z As Range
ff = FreeFile()
Open Pfad & "log.txt" For Output As ff
On Error Resume Next
fn = Dir(Pfad & "*.xls")
Do While fn <> ""
Debug.Print fn
Workbooks.Open Filename:=Pfad & fn
If Err.Number > 0 Then
Print #1, "### Fehler beim Öffnen von " & fn
Err.Clear
Else
Print #1, "Öffne Datei " & fn & "...";
'Fehler beheben:
For Each z In ThisWorkbook.Sheets("Tabelle1").Range(Bereich)
ActiveSheet.Range(z.Address).Formula = z.Formula
Next z
If Err.Number > 0 Then
Print #1, "Fehler!"
Err.Clear
Else
Print #1, "OK"
End If
ActiveWorkbook.Close SaveChanges:=True
End If
fn = Dir()
Loop
Close ff
End Sub

Der Code liest alle *.xls-Dateien des in "Pfad" definierten Verzeichnisses ein und kopiert den Wert/die Formel des Blattes "Tabelle1" der aktiven Mappe. Der Bereich ist in der Konstante "Bereich" definiert.
Es wird eine Textdatei log.txt erstellt, die die Änderungen mitprotokolliert.
Gruß Matthias
P.S. Ich gehe davon aus, dass du erst einmal mit Kopien arbeitest, nicht dass durch einen Fehler alle Dateien futsch gehen! ;-)
Anzeige
AW: Zellbereich G1:AH14 in 795 Dateien ändern
21.06.2005 10:20:46
Ingo
Klasse!!!!!!!!!!!!!!
Es funktioniert! Ich habe die notwendigen Angaben im Skript gemacht, und siehe da: Der Computer macht es! Danke! Deine Hilfe hat mir einen Tag Arbeit erspart! Jetzt kann ich jederzeit das Template verändern. Großartig, dass man hier so schnell so kompetent Hilfe bekommt!
P.S.: Eine kurze Frage noch: Kann ich dem Skript sagen, dass es die Formatierungen aus dem Template (Farbe, Umbruch, Prozente) mit herübernehmen soll? Falls das ein Problem ist, dann nicht. Die Daten stimmen ja.
AW: Zellbereich G1:AH14 in 795 Dateien ändern
21.06.2005 11:14:25
Matthias
Hallo Ingo,
der Kopierbefehl lautet dann so (entsprechende Zeilen ersetzen):

'Fehler beheben:
ThisWorkbook.Sheets("Tabelle1").Range(Bereich).Copy Destination:=ActiveSheet.Range(Bereich)

Gruß Matthias
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige