Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1068to1072
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
Inhalte von gleichen Exceldateien importieren
21.04.2009 17:04:28
gleichen
Hallo zusammen,
ich habe hier im Archiv schon viele Beispiele und Hilfestellungen zu meinem Problem gefunden, muss aber zugeben, ich bekomms nicht hin :-(. Ich hab folgendes Problem: ich möchte von vielen Exceldateien, die aus zwei Arbeitsblättern bestehen, das zweite Arbeitsblatt in eine separate Exceldatei importieren. Ich denke, dass ganze funktioniert nur mit einem Makro, da ich über importieren immer nur eine Datei ansteuern kann. Es handelt sich dabei aber über 5.000 Dateien und das wäre mir dann doch en bissl viel. Folgende Merkmale haben die Dateien:
- sie befinden sich alle auf dem Laufwerk "H" im Ordner "Aufträge"
- das Arbeitsblatt 2 hat die Bezeichnung "Schlüsselnummern" und ist immer gleich Aufgebaut
- die Daten die ich importieren möchte befinden sich in Zeile A2:AK2 (Zeile 1 ist nur Überschrift die ich nicht importieren möchte)
- die Daten sollen alle in eine neue Excel-Datei untereinander importiert werden (diese hat keinen Namen also "Tabelle1")
- ich arbeite mit Office 2000
- diese Abfrage soll mir nur am Ende eine Anzeige bringen, wenn der Import beendet ist
Wie gesagt, ich hab mir wirklich Mühe gegeben und gesucht, aber ich bekomms nicht hin (liegt aber auch an meinen rudimentären Kenntnissen in VBA). Vielleicht kann mir einer von Euch helfen. Ich wäre Euch wirklich dankbar.
Vorab schon mal ein Danke fürs schauen.
Markus

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: keine Antwort eine Frage
21.04.2009 18:39:19
Markus
Hallo Tino,
erstmal Danke für Deine schnelle Antwort. Ich werde es morgen gleich mal testen und geb dann gleich Bescheid. Das mit dem Abfragen der Datenbank ist nicht von mir. Sorry.
Markus
teste mal ob es so geht...
21.04.2009 18:14:00
Tino
Hallo,
habe Dir mal was aufgebaut, kontrolliere nochmal die Pfadangabe im Code TestLeseDaten.
Getestet unter xl2007 mit 15 Dateien. (xl2000 habe ich z.Z. nicht verfügbar)
Bei 5000 Dateien wird es schon etwas brauchen.
Die UserForm dient nur der Anzeige.
https://www.herber.de/bbs/user/61337.xls
Gruß Tino
Anzeige
AW: teste mal ob es so geht...
22.04.2009 13:27:05
Markus
Hallo Tino,
erstmal Danke für Deine Hilfe. Der Import der Daten funktioniert teilweise sehr gut. Bedeutet, dass max. 147 Dateien importiert werden können. Ab 148 Datensätzen kommt eine Fehlermeldung: Laufzeitfehler `13: Typen unverträglich. Beim Debuggen wird folgende Zeile markiert: Range("A2).Resize (Vbound(myAr, 2) +1, 37) = .Transpose(myAr)
Kannst Du mir hier noch mal weiterhelfen?
Danke und Gruß
Markus
AW: teste mal ob es so geht...
22.04.2009 15:17:43
Tino
Hallo,
kann ich bei mir nicht nachvollziehen, habe es jetzt mal auf die schnelle mit 500 Dateien getestet.
Getestet unter xl2007 (im Kompatibilitätsmodus) und in xl2003, beide Versionen bringen keinen Fehler, xl2000 steht mir nicht zur Verfügung.
Die Begrenzung der Dateien ist von der Anzahl der Zeilen abhängig,
also könnten es theoretisch 65535 Dateien sein.
Hast Du irgendetwas im Code geändert oder angepasst?
Vbound sollte UBound heißen
Range("A2) sollte eigendlich Range("A2") sein
Gruß Tino
Anzeige
AW: teste mal ob es so geht...
22.04.2009 17:57:35
Markus
Hallo Tino,
ich hab nichts am Code geändert. Habe Deine Makros 1zu1 übernommen und lediglich den Pfad korrekt eingegeben. Die fehlenden Anführungszeichen und das Vbound statt Ubound stammen aus meinem abgetippe und der Code wurde nicht verändert. Ich habe hin und her getestet. Mit großer Datei mit kleinen und wie gesagt, 147 Dateien macht er problemlos, bei der 148zigsten kommt der Fehler. Hab auch mal Dateien ausgetauscht ob es daran lag, aber es war egal. Bei 147 is Schluss. Muss aber sagen, die 147 macht er problemlos und genau so hab ich mir das vorgestellt. Vielleicht fällt Dir ja doch noch was ein. Leider steht mir hier auf der Arbeit nur Excel 2000 zur Verfügung.
Grüße
Markus
Anzeige
AW: teste mal ob es so geht...
22.04.2009 18:21:36
Tino
Hallo,
versuche es mal hiermit.
Tausche dieses Makro mal aus und Pfad nochmal anpassen.
Sub TestLeseDaten()
Dim sFiles As String
Dim strPfad As String
Dim strFormel As String
Dim myAr(), tempAr
Dim A As Long, AA As Long

'hier den Pfad angeben ***************************** 
strPfad = "J:\1 Forum\Aufträge\" 'abschließend auf \ achten 

UserForm_Anzeige.Repaint
Redim Preserve myAr(36, 65535) 'Area groß genug für 65535 Dateien 

sFiles = Dir$(strPfad & "*.xls")

Do While sFiles <> ""
 
    For A = 1 To 37
     strFormel = "'" & strPfad & "[" & sFiles & "]Schlüsselnummern'!R2C" & A
     myAr(A - 1, AA) = ExecuteExcel4Macro(strFormel)
    Next A
    
    AA = AA + 1
    sFiles = Dir$()

Loop

Redim Preserve myAr(36, AA - 1) 'neu Dimensionieren 
tempAr = Application.WorksheetFunction.Transpose(myAr)

Range("A2", Cells(Ubound(tempAr) + 1, Ubound(tempAr, 2))) = tempAr

Erase myAr: Erase tempAr
Unload UserForm_Anzeige
End Sub


Sollte dies auch nicht gehen, weis ich auch nicht weiter.
Außer die Daten einzeln in die Zellen zu schreiben, dies würde wahrscheinlich aber länger dauern.
Gruß Tino

Anzeige
hier der alternative Code
22.04.2009 18:31:19
Tino
Hallo,
, der sollte aber auf alle Fälle gehen.
Pfad im Code wieder anpassen.
Sub TestLeseDaten()
Dim sFiles As String
Dim strPfad As String
Dim strFormel As String
Dim A As Long, AA As Long
Dim iCalc As Integer

'hier den Pfad angeben ***************************** 
strPfad = "J:\1 Forum\Aufträge\" 'abschließend auf \ achten 

UserForm_Anzeige.Repaint

sFiles = Dir$(strPfad & "*.xls")

With Application
 .ScreenUpdating = False
 .EnableEvents = False
 iCalc = .Calculation
 .Calculation = xlCalculationManual
 
 On Error GoTo ErrFehler:
        AA = 2
        Do While sFiles <> ""
            For A = 1 To 37
             strFormel = "'" & strPfad & "[" & sFiles & "]Schlüsselnummern'!R2C" & A
             Cells(AA, A).Value = ExecuteExcel4Macro(strFormel)
            Next A
            AA = AA + 1
            sFiles = Dir$()
        Loop
ErrFehler:
 .ScreenUpdating = True
 .EnableEvents = True
 .Calculation = iCalc
End With

Unload UserForm_Anzeige
If Err.Number <> 0 Then MsgBox Err.Number & Chr(13) & Chr(13) & Err.Description, vbCritical, "Fehler"
End Sub


Gruß Tino

Anzeige
AW: Inhalte von gleichen Exceldateien importieren
22.04.2009 19:08:48
gleichen
Werde es Morgen gleich testen. Feedback kommt bestimmt. Ich bins gespannt. Wäre wirklich froh wenns klappen würde.
Danke fürs schauen.
Markus
AW: Inhalte von gleichen Exceldateien importieren
23.04.2009 13:13:35
gleichen
So Tino, nun erstmal ein fettes DANKE! Habe jetzt das neue (letzte) Makro eingefügt und Excel importiert so wie ich mir das vorstelle. Bei ca. 1500 Dateien benötige ich ca. 3 Minuten. Leider macht mein Rechner bei 5.000 Dateien schlapp. Keine Ahnung, zeigt keine Fehler an, sondern reagiert einfach nicht mehr. Is aber auch wurscht. Dann werd ich den Ordner neu einteilen, damit die Datenmenge kleiner wird.
Nochmals vielen vielen Dank und beste Grüße!!
Markus
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige