Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
900to904
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
900to904
900to904
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

in 2400 Dateien nach Begriff suchen und auswerten

in 2400 Dateien nach Begriff suchen und auswerten
27.08.2007 10:37:43
gunter
Hallo Zusammen,
ich habe einen Ordner mit 2400 Dateien. Das Tabellenblatt, in dem der Begriff "Zeitaufwand" enthalten ist heisst "Rep-Rg.". Der Begriff "Zeitaufwand" steht in Spalte C, die Zeile kann nicht bestimmt werden. Die Stunden stehen in Spalte E in der gleichen Zeile wie der Begriff "Zeitaufwand". Nun möchte ich das alle Dateien nach dem Begriff "Zeitaufwand" durchsucht werden und die gefundenen Stunden z.B. 2,5 in eine separate Datei geschriebenwerden, damit ich diese aufaddieren kann.
Ist so etwas möglich?
Gruß Gunter

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: in 2400 Dateien nach Begriff suchen und auswer
27.08.2007 11:54:02
Rudi
Hallo,
ungetestet:

Sub Zeiten_lesen()
Dim oFS As Object, oFldr As Object, oFile As Object
Dim wkb As Workbook, wks As Worksheet, rng As Range
Dim wksZiel As Worksheet
Application.ScreenUpdating = False
Set oFS = CreateObject("scripting.filesystemobject")
Set oFldr = oFS.getfolder("c:\test") 'anpassen
Set wksZiel = Workbooks.Add(1).Sheets(1)
For Each oFile In oFldr.Files
Set wkb = Workbooks.Open(oFile)
On Error Resume Next
Set wks = wkb.Sheets("Rep-Rg.")
Set rng = wks.Columns(3).Find("Zeitaufwand", lookat:=xlWhole).Offset(0, 2)
With wksZiel
With .Cells(Rows.Count, 1).End(xlUp)
.Offset(0, 0) = oFile.Name
.Offset(0, 1) = rng.Value
End With
End With
On Error GoTo 0
wkb.Close False
Next oFile
End Sub


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: in 2400 Dateien nach Begriff suchen und auswer
27.08.2007 13:49:00
gunter
Hallo Rudi,
2 Dinge passieren. Die Aufträge laufen in der Fußzeile durch, das sehe ich. In der neuen Datei jedoch wird in die Zelle A1 lediglich der letzte Dateiname hineingeschrieben. Das kopieren der Stunden und übertragen haut nicht hin.
Wenn du dir wegen des Makro's noch einmal Gedanken machst, dann überlege doch bitte, ob man die Rückfrage ob die bestehende Datei aktualisiert werden soll nicht überspringen kann. Das hatte ich bei meiner Ausführung vergessen, dass die Kundendaten per Abfrage aus einer anderen Datei übernommen werden.
Danke schon mal.
Gruß Gunter

Anzeige
AW: in 2400 Dateien nach Begriff suchen und auswer
27.08.2007 14:07:01
Rudi
Hallo,
1. Sorry, mein Fehler

Sub Zeiten_lesen()
Dim oFS As Object, oFldr As Object, oFile As Object
Dim wkb As Workbook, wks As Worksheet, rng As Range
Dim wksZiel As Worksheet
Application.ScreenUpdating = False
Set oFS = CreateObject("scripting.filesystemobject")
Set oFldr = oFS.getfolder("c:\temp") 'anpassen
Set wksZiel = Workbooks.Add(1).Sheets(1)
For Each oFile In oFldr.Files
Set wkb = Workbooks.Open(oFile)
On Error Resume Next
Set wks = wkb.Sheets("Rep-Rg.")
If Not wks Is Nothing Then
Set rng = wks.Columns(3).Find("Zeitaufwand", lookat:=xlWhole).Offset(0, 2)
If Not rng Is Nothing Then
With wksZiel
With .Cells(Rows.Count, 1).End(xlUp)
.Offset(1, 0) = oFile.Name
.Offset(1, 1) = rng.Value
End With
End With
End If
End If
On Error GoTo 0
wkb.Close False
Next oFile
End Sub


2. Verstehe ich nicht
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: in 2400 Dateien nach Begriff suchen und auswer
27.08.2007 14:56:51
gunter
Hallo Rudi,
jetzt schreibt der Makro gar nichts mehr rein. Zur Hilfestellung lade ich dir mal eine Datei hoch, damit du sehen kannst, wie das ganze aufgebaut ist.
Zu 2.
Wenn ich eine Verknüpfung zu einer anderen Tabelle habe und eine Datei öffne, dann fragt Excel, ob die Daten aktualisiert werden sollen. Und diese Abfrage muß ich dann halt bei meinen 2400 Dateien ganz oft wegklicken.

Die Datei https://www.herber.de/bbs/user/45422.htm wurde aus Datenschutzgründen gelöscht


Gruß Gunter

Anzeige
AW: in 2400 Dateien nach Begriff suchen und auswer
27.08.2007 15:23:56
Rudi
Hallo,
1. Dann heißt das Sheet nicht 'Rep-Rg.' oder 'Zeitaufwand' wird nicht in C:C gefunden.
2.

Sub Zeiten_lesen()
Dim oFS As Object, oFldr As Object, oFile As Object
Dim wkb As Workbook, wks As Worksheet, rng As Range
Dim wksZiel As Worksheet
Application.ScreenUpdating = False
Set oFS = CreateObject("scripting.filesystemobject")
Set oFldr = oFS.getfolder("c:\temp\test") 'anpassen
Set wksZiel = Workbooks.Add(1).Sheets(1)
For Each oFile In oFldr.Files
Set wkb = Workbooks.Open(oFile, 0)
On Error Resume Next
Set wks = wkb.Sheets("Rep-Rg.")
If Not wks Is Nothing Then
Set rng = wks.Columns(3).Find("Zeitaufwand", lookat:=xlWhole).Offset(0, 2)
If Not rng Is Nothing Then
With wksZiel
With .Cells(Rows.Count, 1).End(xlUp)
.Offset(1, 0) = oFile.Name
.Offset(1, 1) = rng.Value
End With
End With
End If
End If
On Error GoTo 0
wkb.Close False
Next oFile
End Sub


Hilfreich wäre eine Originaldatei und kein HTML.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: in 2400 Dateien nach Begriff suchen und auswer
27.08.2007 15:32:15
gunter
Hallo Rudi,
hier die Originaldatei.
https://www.herber.de/bbs/user/45427.xls
Die "privaten" Einträge habe ich entfernt. Das wesentliche ist aber zu sehen.
Gruß Gunter

AW: in 2400 Dateien nach Begriff suchen und auswer
28.08.2007 09:40:34
Wuxinese
Hallo Gunter,
Rudi hat vollkommen recht. In Deiner Spalte C steht nicht "Zeitaufwand" sondern "Zeitaufwand ", und die Leertaste hinter dem Zeitaufwand macht den Unterschied!!!
Wenn Du das dementsprechend im Code aenderst, sollte es funktionieren!
Gruss
Rainer

AW: in 2400 Dateien nach Begriff suchen und auswer
28.08.2007 10:41:51
Rudi
Hallo,
hinter Zeitaufwand ist ein Leerzeichen.
Ändere LookAt:=xlWhole in LookAt:=xlPart
dann wird mit und ohne Leerzeichen gefunden.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: in 2400 Dateien nach Begriff suchen und auswer
28.08.2007 15:10:00
Gunter
Hallo Rudi,
irgendwas passt noch nicht. Die Dateien laufen in der Taskleiste durch, doch in der Datei wird nichts geschrieben. Damit ich hier keinen Denkfehler mache. Ich habe den VB Code in einer Datei z.B. A.xls abgespeichert. Aus dieser Datei starte ich dann das Makro. Excel macht dann eine neue Datei auf, z.B. Tabelle1. Wie gesagt, die Dateien laufen durch, doch weder in meine Datei A.xls, noch in die Tabelle 1 wird
etwas hineingeschrieben.
Kannst du in der Vorgehensweise einen Fehler erkennen?
Anbei noch mal der komplette Code:

Sub Zeiten_lesen()
Dim oFS As Object, oFldr As Object, oFile As Object
Dim wkb As Workbook, wks As Worksheet, rng As Range
Dim wksZiel As Worksheet
Application.ScreenUpdating = False
Set oFS = CreateObject("scripting.filesystemobject")
Set oFldr = oFS.getfolder("D:\Ott\Test_KD-Rechnungen") 'anpassen
Set wksZiel = Workbooks.Add(1).Sheets(1)
For Each oFile In oFldr.Files
Set wkb = Workbooks.Open(oFile)
On Error Resume Next
Set wks = wkb.Sheets("Rep-Rg.")
If Not wks Is Nothing Then
Set rng = wks.Columns(3).Find("Zeitaufwand", lookat:=xlPart).Offset(0, 2)
If Not rng Is Nothing Then
With wksZiel
With .Cells(Rows.Count, 1).End(xlUp)
.Offset(1, 0) = oFile.Name
.Offset(1, 1) = rng.Value
End With
End With
End If
End If
On Error GoTo 0
wkb.Close False
Next oFile
End Sub


Gruß Gunter

Anzeige
AW: in 2400 Dateien nach Begriff suchen und auswer
29.08.2007 09:59:15
Rudi
Hallo,
ich kann nur eins sagen: Verbundene Zellen sind Teufelswerk.
Ohne Garantie:

Sub Zeiten_lesen()
Dim oFS As Object, oFldr As Object, oFile As Object
Dim wkb As Workbook, wks As Worksheet, rng As Range
Dim wksZiel As Worksheet
Application.ScreenUpdating = False
Set oFS = CreateObject("scripting.filesystemobject")
Set oFldr = oFS.getfolder("D:\Ott\Test_KD-Rechnungen") 'anpassen
Set wksZiel = Workbooks.Add(1).Sheets(1)
For Each oFile In oFldr.Files
Set wkb = Workbooks.Open(oFile)
On Error Resume Next
Set wks = wkb.Sheets("Rep-Rg.")
If Not wks Is Nothing Then
Set rng = wks.Cells.Find("Zeitaufwand", lookat:=xlPart)
If Not rng Is Nothing Then
With wksZiel
With .Cells(Rows.Count, 1).End(xlUp)
.Offset(1, 0) = oFile.Name
.Offset(1, 1) = rng.Offset(0, 1).Value
End With
End With
End If
End If
On Error GoTo 0
wkb.Close False
Next oFile
End Sub


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: in 2400 Dateien nach Begriff suchen und auswer
29.08.2007 10:19:00
Gunter
Hallo Rudi,
gesegnet sei der Leib, der dich getragen hat!! Vielen Dank für deinen tollen Einsatz
bei der Lösung meines Problemes.
Mit den verbundenen Zellen kann ich dir nur recht geben, das versuche ich unseren
Usern auch immer zu vermitteln.
Vielen DANK
Gruß Gunter

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige