Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1024to1028
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

Probleme bei Funktion ReDim

Probleme bei Funktion ReDim
21.11.2008 13:50:40
Rupert
Hallo Leute,
Ich habe mit Hilfe vom Forum hier vor längerer Zeit ein Makro erstellt, das mir dateien öffnet & reinkopiert.
Funktioniert alles so weit super, bis auf den Laptop eines Kollegen, wenn er das Script vom Netzlaufwerk aus startet, funktioniert das ganze Ding, startet er es von LOKAL aus bekomme ich einen Laufzeitfehler 9, index ausserhalb des gültigen Bereichs bei
" ReDim Monatsdateien(1 To .FoundFiles.Count)"
Ordnerstruktur von Netzlaufwerk wurde auf LOKAL kopiert.
ich hab das ganze jetzt mit meinen PC ausprobiert und da funktioniert das alles.
Anbei der Script.
Da der Script schon mal online steht, weiss jemand wie ich diesen script verändern könnte um das problem mit Application.Filesearch unter Excel 2007 in den Griff zu bekommen?

Sub Forecast_einlesen()
ApplicationUpdate = False
Application.Calculation = xlCalculationManual
Selection.AutoFilter 'Setzt den Autofilter zurück!
Range("A17:L17").Select 'Geht zum ersten Feld des Bereiches
Selection.AutoFilter 'Setzt neuen Autofilter, ohne zu selektieren
Dim Datname As Workbook, wksZiel As Worksheet, Monatsdateien() As Workbook
Dim iCounter As Integer, lZeileZiel As Long, wksquelle As Worksheet
Set Datname = ActiveWorkbook
Set wksZiel = Sheets("BASIC_forecasts ")
wksZiel.Select
With Application.FileSearch
.LookIn = ThisWorkbook.Path & "\Details-Forecast "
.SearchSubFolders = False
.Execute msoSortByFileType
.FileType = msoFileTypeExcelWorkbooks
ReDim Monatsdateien(1 To .FoundFiles.Count)
For iCounter = 1 To .FoundFiles.Count
Workbooks.Open Filename:= _
.FoundFiles(iCounter) _
, UpdateLinks:=0
Set Monatsdateien(iCounter) = ActiveWorkbook
Next iCounter
End With
Datname.Activate
With wksZiel
.Range(.Cells(18, 1), .Cells(18, 1).End(xlDown).Offset(0, 11)).ClearContents
lZeileZiel = 18
For iCounter = 1 To UBound(Monatsdateien)
Set wksquelle = Monatsdateien(iCounter).Worksheets(2)
wksquelle.Range(wksquelle.Cells(19, 1), _
wksquelle.Cells(19, 1).End(xlDown).Offset(0, 11)).Copy
'      .Cells(lZeileZiel, 1).PasteSpecial Paste:=xlFormats
.Cells(lZeileZiel, 1).PasteSpecial Paste:=xlValues
lZeileZiel = .Cells(lZeileZiel, 1).End(xlDown).Row + 1
Application.CutCopyMode = False
Monatsdateien(iCounter).Close
Next
End With
ApplicationUpdate = True
Application.Calculation = xlCalculationAutomatic
Range("N19:O19").Select
Selection.Copy
Range("A18:B18").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Sheets("PIVOT_Forecast").Select
ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
End Sub


vorab schon mal danke
LG
Rupert

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

Betreff
Datum
Anwender
Anzeige
AW: Probleme bei Funktion ReDim
21.11.2008 13:54:03
JogyB
Hi.
Vermutlich ist .FoundFiles.Count = 0
Gruss, Jogy
AW: Probleme bei Funktion ReDim
21.11.2008 13:57:00
Rupert
Du meinst das im Details-Forecast keine Dateien enthalten sind, dies ist nicht der fall
es sind dateien im Ordner
LG
Rupert
AW: Probleme bei Funktion ReDim
21.11.2008 14:21:23
JogyB
Hi.
Nein, das meine ich nicht, ich meine dass er keine findet. Überprüf das bitte mal mit einem Debug.Print("gefundene Dateien" & .FoundFiles) vor der Redimensionierung - wird dann im direktfenster angesezeigt.
Was mir auffällt: Am Ende des Ordnernamens ist ein Leerzeichen, vielleicht macht das Probleme. Oder gib mal noch .FileName = "*.*" an (sicher ist sicher).
Gruss, Jogy
Anzeige
AW: Probleme bei Funktion ReDim
24.11.2008 10:01:51
Rupert
Das komische ist, das es auf diesem Laptop lokal nicht funktioniert, im netzwerk mit den selben einstellungen jedoch funktioniert. Ich habe dies auf einem Stand-Pc probiert (selbe Ordnerstruktur - Ordner von Laptop Lokal auf PC-Lokal kopiert) da funktioniert es ohne Probleme.
Ich weiss leider keinen Rat mehr
LG Rupert
AW: Probleme bei Funktion ReDim
21.11.2008 14:01:00
Beverly
Hi Rupert,
versuche es mal nach diesem Prinzip (funktioniert auch unter Excel2007)

Sub mehrere_arbeitsmappen_oeffnen()
Dim strVerzeichnis As String
Dim strDatei As String
Dim strTyp As String
Dim strDateiname As String
Dim loZeile As Long
strTyp = "*.xls"
Application.ScreenUpdating = False
strVerzeichnis = Worksheets("Tabelle1").Cells(2, 1)
If Right(strVerzeichnis, 1)  "\" Then strVerzeichnis = strVerzeichnis & "\"
strDateiname = Dir(strVerzeichnis & strTyp)
loZeile = 6
With ThisWorkbook.Worksheets("Tabelle1")
Do While strDateiname  ""
Workbooks.Open Filename:=strVerzeichnis & strDateiname
.Cells(loZeile, 1) = ActiveWorkbook.ActiveSheet.Cells(12, 1)
ActiveWorkbook.Close True
strDateiname = Dir
loZeile = loZeile + 1
Loop
End With
Application.ScreenUpdating = True
End Sub




Anzeige
AW: Probleme bei Funktion ReDim
24.11.2008 10:12:00
Rupert
Hallo Beverly,
Sorry, da steige ich gar nicht durch, ich will ja das mir das Script vom Unterordner "Details-Needs" die Datei mit dem vorher gewählten datum öffnet.
Ich kann mit dem Script leider nichts anfangen, wenn ich es and die aktuelle gegebenheit (Unterordner von thisworkbook.path anpasse, macht er gar nichts)
Kannst du mir vielleicht helfen
LG
Rupert
AW: Probleme bei Funktion ReDim
24.11.2008 13:00:27
Beverly
Hi Rupert,
wenn ich deinen Code richtig verstanden habe, dann werden alle Dateien, die in einem bestimmten Verzeichnis liegen, geöffnet und in ein Array geschrieben. Anschließend werden aus alle Dateien, die in diesem Array stehen, nacheinander bestimmte Zellen eines definierten Tabellenblattes fortlaufend übernommen sowie die betreffende Arbeitsmappe wieder geschlossen. Da steht nichts von einem vorher ausgewählten Datum drin.
Mein Code öffnet nacheinander alle in einem vorgegebenen Verzeichnis liegenden Arbeitsmappen, übernimmt den Wert aus A12 der gerade aktiven Tabelle und schließt diese Arbeitsmappe wieder. Mein Code macht also nichts anderes als deiner, nur ist er wesentlich kürzer (weil kein Einlesen in das Array erfolgt) und auch in Excel2007 einsetzbar (weil ohne FileSearch).


Anzeige
AW: Probleme bei Funktion ReDim
24.11.2008 13:15:34
Rupert
Ja stimmt, sorry ich war beim falschen unterwegs, also dieser soll folgendes tun
Alle Dateien die im Ordner "Details-Forecast" welcher ein Unterordner des Verzeichnisses ist wo die aktuelle datei liegt, öffnen. Unter Excel 2003 so gelöst
ThisWorkbook.Path & "\Details-Forecast"
Wenn ich jetzt deinen Script umbaue und ThisWorkbook.Path & "\Details-Forecast" hinzufüge
dann kommt nicht.
Ich stehe jetzt an
AW: Probleme bei Funktion ReDim
24.11.2008 14:51:20
Beverly
Hi Rupert,
da fehlt noch ein Back-Slash am Ende des Unterpfades, also ThisWorkbook.Path & "\Details-Forecast\"


Anzeige
AW: Probleme bei Funktion ReDim
25.11.2008 10:22:00
Rupert
Hallo Beverly,
Kannst du mir noch sagen, wie ich dem Code beibringe das er mir von den geöffneten Dateien von Spalte A - L bis zu letzten befüllten Position in A kopiert und ich die Hauptdatei reinkopiert?
LG
Rupert
AW: Probleme bei Funktion ReDim
25.11.2008 15:08:09
Beverly
Hi Rupert,

Sub mehrere_arbeitsmappen_oeffnen()
Dim strVerzeichnis As String
Dim strDatei As String
Dim strDateiname As String
Dim strTyp As String
Dim loLetzte1 As Long
Dim loLetzte2 As Long
strTyp = "*.xls"
Application.ScreenUpdating = False
strVerzeichnis = Worksheets("Tabelle1").Cells(2, 1)
If Right(strVerzeichnis, 1)  "\" Then strVerzeichnis = strVerzeichnis & "\"
strDateiname = Dir(strVerzeichnis & strTyp)
With ThisWorkbook.Worksheets("Tabelle1")
Do While strDateiname  ""
Workbooks.Open Filename:=strVerzeichnis & strDateiname
loLetzte1 = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp). _
Row, .Rows.Count) + 1
With ActiveWorkbook.ActiveSheet
loLetzte2 = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp) _
.Row, .Rows.Count)
.Range(.Cells(1, 1), .Cells(loLetzte2, 12)).Copy ThisWorkbook.Worksheets(" _
Tabelle1").Cells(loLetzte1, 1)
End With
ActiveWorkbook.Close True
strDateiname = Dir
Loop
End With
Application.ScreenUpdating = True
End Sub




Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige