Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
628to632
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
628to632
628to632
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

An VBA-Spezialisten (Info´s aus geschl. Dateien)

An VBA-Spezialisten (Info´s aus geschl. Dateien)
28.06.2005 08:46:43
Ingo
Guten morgen liebe Excel-Gemeinde,
folgendenden Code habe ich gestern von "IngoGI" bekommen. Der ist aber wohl noch nicht wach...
Hintergrund ist eine Angebotsauswertung, die ich gerne automatisch generieren möchte aus bestehenden Dateien in einem festen Verzeichnis.
Wenn ich das Makro in der Auswertung auf Zelle A5 starte, werden einige Dateien geöffnet, der Cursor bleibt in der Auswertung auf A5 stehen und Excel stürzt dann ab...?!
Kann mir ein Profi sagen, was hier nicht stimmt...?
Vielen Dank...
Gruß, Ingo
------------------------------------------------

Sub Uebersicht()
Dim fso As Object, fo As Object, f As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set fo = fso.GetFolder("\\yfps\home\Projektplanung\Projekte\Angebote 25_000€\06-2005\")
On Error GoTo Fehler
'Application.ScreenUpdating = False
For Each f In fo.Files
Workbooks.Open (f.Path)
'Übersicht nächste freie Zeile, Spalte A/Kd-Nr.
ThisWorkbook.Sheets(1).Range("A65536").End(xlUp).Offset(1, 0) = _
Workbooks(f.Name).Sheets(1).Range("B2")
'Übersicht nächste freie Zeile, Spalte B/Kd-Name
ThisWorkbook.Sheets(1).Range("A65536").End(xlUp).Offset(0, 1) = _
Workbooks(f.Name).Sheets(1).Range("B3")
'Übersicht nächste freie Zeile, Spalte C/Kd-Ort
ThisWorkbook.Sheets(1).Range("A65536").End(xlUp).Offset(0, 2) = _
Workbooks(f.Name).Sheets(1).Range("B4")
'usw. für die restlichen Daten
Workbooks(f.Name).Close False
Next f
Fehler:
Application.ScreenUpdating = True
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: An VBA-Spezialisten (Info´s aus geschl. Dateien)
28.06.2005 10:36:55
Volker
Hallo Ingo,
da die Profis offensichtlich alle noch im Bett liegen, will ich mal mein Glück versuchen.
Ich hab den Code mal ausprobiert, allerdings mit einem Ordner, in nicht nur Excel-files sind. Da hat es zwangläufig irgendwann einen Fehler gegeben.
Vielleicht stehen in deinem Quellordner ja auch andere files.
Was ich nicht ganz verstehe ist die Sache mit
"Makro in der Auswertung auf Zelle A5 starten"
Was soll das bedeuten?
hier ist als alternative eine Spielerei die ich benutze. Das Makro arbeitet mit dem selben Fenster, das bei "Datei/Öffnen" erscheint. Du kannst die zum gewünschten Pfad durchhangeln und durch Auswhl einer Datei loslegen. Es werden nur xls angezeigt UND abgearbeitet.Wo die Sternchen stehen kannst Du deinen Code einbauen, der die verschiedenen Daten aus den Quellfiles liest.
Public

Sub txt_öffnen()
mappe = ActiveWorkbook.CodeName
'Öffnen-Dialog
hilfsvar = Application.GetOpenFilename("Arbeitsmappen (*.xls), *.xls,Alle Dateien (*.*), *.*", , _
"Pfad und Datei auswählen, dann OK drücken")
If hilfsvar = False Then
Exit Sub
End If
quelldatei = Dir(CurDir & "\*.xls")  ' erstes Excelfile im Verzeichnis zuordnen
While quelldatei <> ""           ' Wiederholen bis letztes Excelfile erreicht
Workbooks.Open Filename:=quelldatei
Workbooks(quelldatei).Close
quelldatei = Dir  'nächste Datei im Verzeichnis
Wend
End Sub

Gruß
Volker
Anzeige
AW: An VBA-Spezialisten (Info´s aus geschl. Dateien)
28.06.2005 11:03:53
Ingo
hallo volker,
vielen Dank für Deine Hilfe. Werde das gleich mal ausprobieren. Hintergrund dieser Abfrage ist eine Angebotsauswertung, die ich nicht "manuell" machen will. In der Auswertung sollen (Beginnend bei A5) folgende Zellen automatisch mit den Inhalten der Angebote gefüllt werden:
Bsp:
A5 - Kunden-Nr. von Angebot 1
B5 - Kunden-Name von Angebot 1
C5 - Kunden-Ort von Angebot
Nächste Zeile
A6 - Kunden-Nr. von Angebot 2
B6 - Kunden-Name von Angebot 2
C6 - Kunden-Ort von Angebot 2
Nächste Zeile
usw....
Das ist eigentlich, ganz simpel geschrieben, daß was ich möchte. Dazu soll das Makro auf einen definierten Pfad zugreifen, wo NUR *.xls-Dateien sind und die entsprechenden Daten dort auslesen und (wie oben beschrieben) in die Auswertung schreiben.
Dazu möchte ich (am liebsten) auch nicht jede Datei auswählen und manuell anfassen müssen. Das sollte Excel schon selbstständig machen.
Meine Frage: Brauche ich dann Deine "Alternative"?
Gruß, Ingo
Anzeige
AW: An VBA-Spezialisten (Info´s aus geschl. Dateien)
28.06.2005 11:44:36
Volker
Hallo Ingo,
hab deinen Code noch mal probiert und kann ich leider keinen Fehler entdecken.
Geht den Code mal schrittweise (Taste F8) durch und schau mal, welche Zeile den Fehler bringt.
Meine Variante muß du nicht wirklich nehmen. Sie ist halt parktisch, wenn sich der Pfad regelmäßig ändert. Man muß auch nur einmal Pfad/Datei(en) auswählen und alle Exceldateinen werden automatisch nacheinander abgearbeitet.
Nur der Vollständigkeit halber: man könnte auch einen Pfad hart codieren

Sub txt_öffnen()
Dim pfad As String
pfad = "D:\" '
mappe = ActiveWorkbook.CodeName
quelldatei = Dir(pfad & "*.xls")  ' erstes Excelfile im Verzeichnis zuordnen
While quelldatei <> ""           ' Wiederholen bis letztes Excelfile erreicht
Workbooks.Open Filename:=pfad & quelldatei
Workbooks(quelldatei).Close
quelldatei = Dir  'nächste Datei im Verzeichnis
Wend
End Sub

Gruß
Volker
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige