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

Datei-Listen untereinander

Datei-Listen untereinander
14.03.2005 16:01:49
Anton
Hallo Spezialisten,
mein Problem:
Ich möchte die Ergebnisse verschiedener Datei-Suchen untereinander Listen lassen.
---------Vorgeschichte:------------------
In Modul1 sind die Angaben was wo gesucht werden soll.
In Modul2 werden die Dateien gelistet und doppelte ausgefiltert.
In Modul3 werden die Dateinamen per "SVERWEIS" verglichen.
Schließlich kann ich dann per Autofilter die "neuen Dateien" per Link bearbeiten.
40 verschiedene Datei-Suchen kann ich so per Auswahl auf das selbe Ergebnis-Blatt ausgeben lassen.
--------Wie gesagt... funzt einzeln erstklassig.---------
Jetzt möchte ich alle Gleichzeitig suchen lassen und Auf meinem Ergebnis-Blatt untereinander listen lassen.
Das hier ist der Code, der bei jedem Suchdurchgang die gefundenen Dateinamen auf die Ergebnis-Seite stellt:

Sub b5_Dateien_nebeneinander()
'Holen der gefundenen Server-Dateien von Tabelle1
Sheets("gefiltert_nicht_gebookmarkt").Select
Range("A3:A60000").Select
Selection.Copy
Sheets("anwesenheitsprüfung").Select
Range("A4").Select '<= Diese Angabe bestimmt den Anfang der ersten Datei-
'   Liste und soll ersetzt werden.
ActiveSheet.Paste
'Holen der der gebookmarkten Dateien von Tabelle2
Sheets("gefiltert_gebookmarkt").Select
Range("A3:A60000").Select
Selection.Copy
Sheets("anwesenheitsprüfung").Select
Range("C4").Select '<= Diese Angabe bestimmt den Anfang der zweiten Datei-
'   Liste und soll ersetzt werden.
ActiveSheet.Paste
Sheets("Suchparameter").Select
End Sub

Der folgende Code ist von Bert Körn:

Sub Letzte_Zeile()
lZeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
MsgBox lZeile
End Sub

...und liefert die korrekte Zahl der letzten benutzten Reihe.
Das Ergebnis dieser Msg-Box plus 1 soll die erste Zeile der nächsten Abfrage sein.
------------Schwierigkeit: -----------
Zeile 1 bis 3 ist gefüllt mit Überschriften und Command-Buttons; deshalb wird unterhalb fixiert.
--------------------------------------
Ich krieg' es heute einfach nicht gebacken... bitte helft mir mal auf die Sprünge.
Vielen Dank,
Euer Anton

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei-Listen untereinander
15.03.2005 09:00:44
Harald
Hallo Anton,
mal abgesehen davon, dass in deinem Code zuviele "Select" stehen
Sheets("gefiltert_nicht_gebookmarkt").Range("A3:A60000").Copy Sheets("anwesenheitsprüfung").Range("A4")'.PasteSpecial Paste:=xlValues 'kopiert nur Werte
(in einer Zeile) tut's auch.
Suchst Du nun 40 verschiedene Dateien mit 40 gleichnamigen Blätter mit Daten in identischen Bereichen. Woher kommen die Dateien/Daten ?
Wie heissen Sie ?
Sowas könnte man per Schleife erledigen. Dazu muss man wissen, wie die Dateien heissen.
Vielleicht mal das Öffnen einer dieser Dateien per Rekorder aufzeichnen.
Ich bin zwar auch nicht die vba-Eminenz, aber wenn genügend Informationen da sind, kann ich mich mal daran versuchen.
Gruß
Harald
Anzeige
AW: Datei-Listen untereinander
15.03.2005 10:57:09
Anton
Hallo Harald,
meinen Code habe ich im Wesentlichen mit dem Markrorekorder aufgenommen.
Da jedes Tabellenblatt überschriften hat, kann ich nicht alle Zellen verwenden.
Über Programmierstiele mache ich mir noch keine Gedanken.
Ich bin froh, wenn es funktioniert.
Du siehst es bei mir im Code: Aus-Kommentierte Zwischenschritte und Msg-Boxen....
Wie gesagt: einzeln funzt alles wunderbar.
Da so eine Suche Zeit kostet, möchte ich alles zusammenfassen.
Zum Thema:
Meine Dateien werden von irgendwelchen Leuten auf den Server gestellt, die vielleicht auch eigene Unterordner anlegen.
Dort suche ich sie mit *2R?*.pdf
(Beispiele für die Namensbestandteile: 2RA002, 2RF139, 2RZ001...)
Zur Zeit sind es ca. 40 verschiedene Arten.
Nächste Woche kommen nochmal 30 dazu.
Hier ist der Datei-Suchen-Code:
Sub b1_DateienFinden_Y()
Sheets("alle_nicht_gebookmarkt").Select
Dim arr As Variant
Dim i As Integer
Sheets("alle_nicht_gebookmarkt").Hyperlinks.Delete
Range("a2:a60000").ClearContents
With Application.FileSearch
.NewSearch
.LookIn = Sheets("Suchparameter").Range("C2").Value
.SearchSubFolders = True
.Filename = Sheets("Suchparameter").Range("C4").Value
.Execute
For i = 1 To .FoundFiles.Count
Sheets("alle_nicht_gebookmarkt").Cells(i + 1, 1) = cutter(.FoundFiles(i))

Sheets("alle_nicht_gebookmarkt").Hyperlinks.Add _
anchor:=Cells(i + 1, 1), _
Address:=.FoundFiles(i)
Next
End With
'MsgBox ("Die Dateien von Y wurden ausgelesen")
End Sub
Sub b2_DateienFinden_X()
Sheets("alle_gebookmarkt").Select
Sheets("alle_gebookmarkt").Hyperlinks.Delete
Range("a2:a60000").ClearContents
Dim i As Long
With Application.FileSearch
.NewSearch
.LookIn = Sheets("Suchparameter").Range("C3").Value
.SearchSubFolders = True
.Filename = Sheets("Suchparameter").Range("C4").Value
.Execute
For i = 1 To .FoundFiles.Count
Sheets("alle_gebookmarkt").Cells(i + 1, 1) = cutter(.FoundFiles(i))

Next
End With
'MsgBox ("Die Dateien von X wurden ausgelesen")
End Sub

Private Function cutter(Pfad As String) As String
Dim l As Integer
l = InStrRev(Pfad, "\") + 1
cutter = Mid(Pfad, l, 100)
End Function

Vielen Dank Für Deine Hilfe.
Servus,
Anton
Anzeige
AW: Datei-Listen untereinander
15.03.2005 12:31:46
Harald
Hallo Anton,
so ganz blick ich noch nicht rein und nachbauen kann ich das Konstrukt auch nicht, deshalb lass ich offen.
Der Code sieht ganz nach Herbers-Excel-CD aus ;-))) und sollte eigentlich alle Dateien finden und auflisten.
Hast Du schon mal statt next (vor end with) next i für die FoundFiles.Count ausprobiert ?
Tut mir Leid, mehr hab ich nicht anzubieten.
Viel Erfolg noch
Harald
AW: Datei-Listen untereinander
15.03.2005 13:44:28
Anton
Hallo Harald,
hallo Leute,
nochmal eine ganz kurze Zusammenfassung meines Problems:

Sub b5_Dateien_nebeneinander()
'Holen der gefundenen Server-Dateien von Tabelle1
Sheets("gefiltert_nicht_gebookmarkt").Select
Range("A3:A60000").Select
Selection.Copy
Sheets("anwesenheitsprüfung").Select
'----Anfang Problemzone------: Die Datenliste beginnt immer bei "A4"
Range("A4").Select
'----Statt der "A4" hätte ich gerne die erste frei Zelle der Spalte "A"
'----Diese Formel (von Bert Körn) liefert mir die letzte gefüllte Zeilen-Nummer
'      in eine Msg-Box:
'    Worksheets("anwesenheitsprüfung").Select
'    lZeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
'    MsgBox lZeile
ActiveSheet.Paste
End Sub

Ich rate mal im Nebel rum:
=> Range(lZeile+1).Select
Könnte das richtig sein?
Muß ich noch irgendwelche Parameter beachten?
Servus,
Euer Anton
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige