Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1372to1376
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

Dateien Konsolidieren

Dateien Konsolidieren
24.07.2014 13:10:22
Fabian
Hallo zusammen,
ich benutze ein Makro um Dateien in einer "Masterfile" zu konsolidieren. Die Dateien sind alle gleich aufgebaut beinhalten aber verschiedene Daten.
Ich nutze folgendes Makro:
Sub Zusammenführen()
Dim i               As Long
Dim sPfad           As String
Dim sDatei          As String
Dim vFileToOpen     As Variant
Dim lngLZ           As Long
Dim blnÜberschrift  As Boolean
Dim iCalc           As Integer
vFileToOpen = Application.GetOpenFilename("Excel Files (*.xls*), *.xls*", , , , True)
If Not IsArray(vFileToOpen) Then Exit Sub
iCalc = Application.Calculation
On Error GoTo ENDE:
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
For i = 1 To UBound(vFileToOpen)
sDatei = Dir(vFileToOpen(i))
sPfad = Left(vFileToOpen(i), InStr(vFileToOpen(i), sDatei) - 1)
With Tabelle1.Range("A1")
.Formula = "=LOOKUP(2,1/('" & sPfad & "[" & sDatei & "]Tabelle1'!$A:$A""""),ROW('" _
_
& sPfad & "\[" & sDatei & "]Tabelle1'!$A:$A))"
lngLZ = .Value
End With
With Tabelle1
If blnÜberschrift Then
.Cells(.Rows.Count, 1).End(xlUp).Offset(1).Resize(lngLZ - 1, 7).Formula = _
"='" & sPfad & "[" & sDatei & "]Tabelle1'!A2"
Else
blnÜberschrift = True
.Cells(.Rows.Count, 1).End(xlUp).Offset(1).Resize(lngLZ, 7).Formula = _
"='" & sPfad & "[" & sDatei & "]Tabelle1'!A1"
End If
End With
Call StatusBalken(Int((i / UBound(vFileToOpen)) * 100))
Next
With Tabelle1.UsedRange
.Copy
.PasteSpecial xlPasteValues
.Rows(1).Delete
End With
ENDE:
Application.EnableEvents = True
Application.Calculation = iCalc
Application.ScreenUpdating = True
If Err Then MsgBox Err.Description, , "Fehler: " & Err
End Sub

Starte ich die Konsolidierung mit Dateien von meinem Desktop, läuft das Makro wunderbar und ich habe keien Probleme.
Nun möchte ich aber die Dateien aus einem Ordner aus dem Netzwerk holen. Ich habe alle Zugriffe und den Pfad habe ich vorher "gemapt"
Trotzdem kommt dabei immer: Fehler 52 Bad file name or number.
Hat jemand eine Idee wie ich diesen Fehler eliminieren kann?
Vielen Dank im Voraus
Fabian

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateien Konsolidieren
29.07.2014 10:51:41
Born
Hallo Fabian,
lass mal das Makro im Einzelschritt-Modus durchlaufen. In welcher Zeile kommt dann der Fehler?
Viele Grüße,
M. Born

AW: Dateien Konsolidieren
29.07.2014 11:07:05
Fabian
Hi M.Born
die Fehler kommt im Teil:
For i = 1 To UBound(vFileToOpen)
sDatei = Dir(vFileToOpen(i))
sPfad = Left(vFileToOpen(i), InStr(vFileToOpen(i), sDatei) - 1)
nach sDatei = Dir(vFileToOpen(i))
Beste Grüße
Fabian

AW: Dateien Konsolidieren
29.07.2014 11:17:13
Born
Versuche mal, mit dem Debugger Dir den Wert von sDatei anzeigen zu lassen. Dort sollte der Pfadname drinstehen. Wenn die Variable keinen String enthält, dann erzeugt die Instr() eine Fehlermeldung.

Anzeige
AW: Dateien Konsolidieren
29.07.2014 12:31:31
Fabian
Hatte jetzt einen Watch sowohl auf sDatei als auch sPfad. In der Tat, werden die Werte über das gemappte Netzwerk nicht an sDatei und sPfad übergeben. Wenn ich alles auf meinem Desktop liegen habe klappt es nach wie vor wunderbar.
Gibt es irgendeinen Möglichkeit dieses Problem zu umgehen/zu lösen?
Wie ich in meinem ersten Beitrag geschrieben habe habe ich alle Berechtigungen und Möglichkeiten aufn dieses Netzwerkordner zuzugreifen.

AW: Dateien Konsolidieren
29.07.2014 13:06:59
Born
Du kannst bei Application.GetOpenFilename noch eine Prüfung einbauen, dass der Wert ungleich False ist. Nur wenn dort auf "Öffnen" geklickt wird, wird ein String (oder ein Array von Strings) zurückgeliefert, mit denen Du weiterarbeiten kannst.

Anzeige
AW: Dateien Konsolidieren
29.07.2014 13:27:17
Fabian
Ich öffne aber immer die gleichen Excel Files. Das Problem scheint also daran zu liegen, dass ich diese aus dem Netzwerk öffnen möchte.
Gibt es dafür irgendwas spezielles? Ich will das Makro ja nicht beenden ohne die Dateien importiert zu haben

AW: Dateien Konsolidieren
29.07.2014 14:21:12
Born
Du könntest alternativ die Datei(en) über Application.Dialogs(xlDialogOpen).Show öffnen, den Namen und Pfad über ActiveWorkbook.Path ermitteln und sie dann wieder schließen.
Das Öffnen von Dateien vom Netz sollte sich gegenüber dem von lokalen Dateien nicht unterscheiden.

AW: Dateien Konsolidieren
29.07.2014 16:24:32
Fabian
Ich kann aber ja schlecht 200 Datein (Das ist ungefähr die Zahl die am Ende gemerged werden soll) öffnen, mir Pfad und Dateinamen merken und die Dateien wieder schließen. Glaube da stürzt jeder PC ab.
So geht es wunderbar ohne die Files zu öffnen. Ich komme einfach nicht dahinter warum die Dateinamen nicht übergeben werden wenn ich es über das Netzwerklaufwerk versuche...

Anzeige
AW: Dateien Konsolidieren
29.07.2014 16:31:38
Born
Eine andere Möglichkeit fällt mir leider auch nicht ein. Ich lasse den Thread mal offen. Viel Erfolg...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige