Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1076to1080
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
Inhaltsverzeichnis

Excel-Makro verliert Pfad

Excel-Makro verliert Pfad
02.06.2009 11:38:38
grethen@gmx.de
Hallo zusammen,
ich lese über ein Makro mehrere hundert identische Excel-Dateien aus. Um nicht Stunden warten zu müssen habe versuche ich das ganze über Verknüpfungen zu lösen, was auch ganz gut klappt. Ich habe aber zwei Probleme.
1. Das Makro verliert nach etwa fünf Zeilen den Pfad zu den Dateien und das öffnen-Fenster des Dateibrowsers öffnet sich.
2. Einige Dateien sind nicht ganz identisch, da sie älter sind. Diese würde ich gerne überspringen, wenn sie nicht dem Ausleseschema entsprechen.
hier der code:
---------------------------------

Sub Daten_auslesen()
Dim Pfad, Dateiname As String, iRow As Long
Application.ScreenUpdating = True
Pfad = "C:\test\"
Dateiname = Dir(Pfad & "*.xls")
Do While Dateiname  ""
' --- zu befüllende Zeile ermitteln (immer erste Zeile ohne Inhalt in Spalte A)
iRow = ThisWorkbook.Sheets("Tabelle1").Range("A65536").End(xlUp).Offset(1, 0).Row
' --- Spalte 1 Dateiname der auszulesenden Datei
ThisWorkbook.Sheets("Tabelle1").Cells(iRow, 1) = Dateiname
' --- Spalte 2-9 diverse Werte aus ein jeweiligen Böättern der Exeldateien.
ActiveSheet.Cells(iRow, 2) = "=[" & Dateiname & "]Kalkulation!$D$8"
ActiveSheet.Cells(iRow, 3) = "=[" & Dateiname & "]Kalkulation!$D$6"
ActiveSheet.Cells(iRow, 4) = "=[" & Dateiname & "]Satzauftrag!$K$19"
ActiveSheet.Cells(iRow, 5) = "=[" & Dateiname & "]Druckauftrag!$K$19"
ActiveSheet.Cells(iRow, 6) = "=[" & Dateiname & "]Nachkalkulation!$G$20"
ActiveSheet.Cells(iRow, 7) = "=[" & Dateiname & "]Nachkalkulation!$G$27"
ActiveSheet.Cells(iRow, 8) = "=[" & Dateiname & "]Nachkalkulation!$G$33"
ActiveSheet.Cells(iRow, 9) = "=[" & Dateiname & "]Nachkalkulation!$G$51"
Dateiname = Dir()
Loop
' --- Am schluss Verknüpfungen in Werte umgewandelt werden.
Columns("A:I").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
End 

Sub
Vielen Dank schon mal im Voraus


		

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

Betreff
Datum
Anwender
Anzeige
AW: Excel-Makro verliert Pfad
02.06.2009 12:07:43
Luschi
Hallo grethen,
zu 1.)
Dateiname = Dir()
Dieser Befehl gibt nur noch den Dateinamen zurück - der Pfad bleibt dabei auf der Strecke.
Im 2. Umlauf der Do While-Schleife gibt es dann eben keine Referenz mehr auf den tatsächlichen
Dateinamen.
Es wird zwar im richtigen Verzeichnis gesucht, aber in der Variablen 'Dateiname' steht eben nur der Dateiname.
Gruß von Luschi
aus klein-Paris
Tipp: 2 Variablen benutzen
AW: Excel-Makro verliert Pfad
02.06.2009 12:54:28
grethen@gmx.de
Hallo Luschi,
demnach müsste ich schreiben "Dateiname = Pfad & Dir()"? - klappt leider auch nicht.
Ich habe schon eine Weile rumprobiert - könntest dumir einen Tipp geben, wie ich das löse?
Vielen Dank schon mal
Grüße
Marc
Anzeige
AW: Excel-Makro verliert Pfad
02.06.2009 15:48:30
fcs
Hallo Marc,
du muss den Pfad mit in die Formeln einbauen.
Schaut dann etwa wie folgt aus.
Gruß
Franz

Sub Daten_auslesen()
Dim Pfad, Dateiname As String, iRow As Long, strFormel As String
Application.ScreenUpdating = True
Pfad = "C:\test\"
Pfad = "C:\Lokale Daten\Test\Zwischenordner\"
Dateiname = Dir(Pfad & "*.xls")
Do While Dateiname  ""
' --- zu befüllende Zeile ermitteln (immer erste Zeile ohne Inhalt in Spalte A)
iRow = ThisWorkbook.Sheets("Tabelle1").Range("A65536").End(xlUp).Offset(1, 0).Row
' --- Spalte 1 Dateiname der auszulesenden Datei
ThisWorkbook.Sheets("Tabelle1").Cells(iRow, 1) = Dateiname
' --- Spalte 2-9 diverse Werte aus den jeweiligen Blättern der Exeldateien.
strFormel = "='" & Pfad & "[" & Dateiname
ActiveSheet.Cells(iRow, 2) = strFormel & "]Kalkulation'!$D$8"
ActiveSheet.Cells(iRow, 3) = strFormel & "]Kalkulation'!$D$6"
ActiveSheet.Cells(iRow, 4) = strFormel & "]Satzauftrag'!$K$19"
ActiveSheet.Cells(iRow, 5) = strFormel & "]Druckauftrag'!$K$19"
ActiveSheet.Cells(iRow, 6) = strFormel & "]Nachkalkulation'!$G$20"
ActiveSheet.Cells(iRow, 7) = strFormel & "]Nachkalkulation'!$G$27"
ActiveSheet.Cells(iRow, 8) = strFormel & "]Nachkalkulation'!$G$33"
ActiveSheet.Cells(iRow, 9) = strFormel & "]Nachkalkulation'!$G$51"
Dateiname = Dir()
Loop
' --- Am schluss Verknüpfungen in Werte umgewandelt werden.
Columns("A:I").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End Sub


Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige