Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
752to756
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
752to756
752to756
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

datenimport

datenimport
09.04.2006 12:54:57
andy
Hallo,
ich quäle mich mit einem kleinen Problemchen rum.
Ich möchte mit einem VBA-script Daten importieren.
Ich habe ein Verzeichnis, indem sind viele Excelfiles mit verschiedenen Namen, jedoch mit gleichen Datensätzern angelegt.
(c:\exceldaten\xxxxx.xls)
Aus diesen Excel-Files möchte ich aus einem bestimmten Arbeitsblatt
(Auswertung) jeweils einen Datensatz (spalte a-f, zeile 1-8) aus diesen
Files auslesen und Ihn jeweils in jenem Excelfile, aus welchem ich den Import starte an die nächste freie Zeile anfügen.
Geht dies in einem Arbeitsschritt ?
Kann mir jemand eine Lösung liefern ?
Vielen dank im Voraus für die Hilfe !

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: datenimport
HansHei
Hallo,
versuchs mal damit:
Sub Daten_uebertragen()
Application.ScreenUpdating = False
Application.Dialogs(xlDialogOpen).Show
On Error GoTo Ende
Sheets("Auswertung").Range("A1:F8").Copy
ActiveWindow.Close
Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
Ende:
Application.ScreenUpdating = False
End Sub
Gruß
Hans
Anzeige
AW: datenimport
09.04.2006 18:05:34
andy
Hallo Hans,
Grundsätzlich funktioniert es, aber ich muss zur ausführung des makros jedes file einzel angeben (mit mehrfachauswahl importiert es keine Daten). Was ich möchte ist das Makro ausführen, dann entweder alle files zum importieren markieren (das geht eben nicht) oder dass das script selbstständig alle .xls files in einem bestimmten pfad mit einem bestimmten bereich importiert und anfügt....
AW: datenimport
09.04.2006 20:03:14
Ramses
Hallo
probier mal
Sub Dateien_in_eine_Tabelle_zusammenfuehren()
    'by Ramses
    'Öffnet alle XLS Dateien in einem Ordner
    'Kopiert aus einem definierten Worksheet
    'in die aktuelle Mappe eines definierten Sheets
    Dim toOpenDatei As String
    Dim toCollectWkb As String
    Dim sourceSheet As String, targetSheet As String
    Dim myPfad As String
    'Wo sind die Daten
    myPfad = "C:\Test\"
    'Aus welcher Tabelle kommen die Daten
    sourceSheet = "Auswertung"
    'Wo sollen die Daten hinkopiert werden
    targetSheet = "Zusammenfassung"
    '----------------------------------------------
    toOpenDatei = Dir(myPfad & "*.xls")
    Application.ScreenUpdating = False
    toCollectWkb = ActiveWorkbook.Name
    Do While toOpenDatei <> ""
        Workbooks.Open toOpenDatei
        ActiveWorkbook.Sheets(sourceSheet).Range("A1:F8").Copy _
            Destination:=Workbooks(toCollectWkb).Worksheets(targetSheet).Range("A65536").End(xlUp).Offset(1, 0)
        ActiveWorkbook.Close False
        Datei = Dir()
    Loop
    Application.ScreenUpdating = True
End Sub

Gruss Rainer
Anzeige
AW: datenimport
09.04.2006 20:25:23
andy
Hallo Rainer,
Habe in einer neuer Exceldatei das sheet "Zusammenfassen" erstellt und
habe das script angepasst auf meinen Daten entsprechend.
Starte ich das script, passiert einfach...nichts. Keine Fehlermeldung, nichts, die Tabelle bleibt leer....Auch keine Debug-Meldung.

Sub Dateien_in_eine_Tabelle_zusammenfuehren()
'by Ramses
'Öffnet alle XLS Dateien in einem Ordner
'Kopiert aus einem definierten Worksheet
'in die aktuelle Mappe eines definierten Sheets
Dim toOpenDatei As String
Dim toCollectWkb As String
Dim sourceSheet As String, targetSheet As String
Dim myPfad As String
'Wo sind die Daten
myPfad = "S:\0_Secret\20_Kennzahlen\MAU2006\MAU01\Answers"
'Aus welcher Tabelle kommen die Daten
sourceSheet = "Auswertung"
'Wo sollen die Daten hinkopiert werden
targetSheet = "Zusammenfassung"
toOpenDatei = Dir(myPfad & "*.xls")
Application.ScreenUpdating = False
toCollectWkb = ActiveWorkbook.Name
Do While toOpenDatei <> ""
Workbooks.Open toOpenDatei
ActiveWorkbook.Sheets(sourceSheet).Range("A2:D14").Copy _
Destination:=Workbooks(toCollectWkb).Worksheets(targetSheet).Range("A65536").End(xlUp).Offset(1, 0)
ActiveWorkbook.Close False
Datei = Dir()
Loop
Application.ScreenUpdating = True
End Sub

Anzeige
AW: datenimport
09.04.2006 20:33:22
Ramses
Hallo
Sorry, kleine Korrektur wegen Pfad und Variablen
Sub Dateien_in_eine_Tabelle_zusammenfuehren()
    'by Ramses
    'Öffnet alle XLS Dateien in einem Ordner
    'Kopiert aus einem definierten Worksheet
    'in die aktuelle Mappe eines definierten Sheets
    Dim toOpenDatei As String
    Dim toCollectWkb As String
    Dim sourceSheet As String, targetSheet As String
    Dim myPfad As String
    'Wo sind die Daten
    myPfad = "C:\"
    'Aus welcher Tabelle kommen die Daten
    sourceSheet = "Auswertung"
    'Wo sollen die Daten hinkopiert werden
    targetSheet = "Zusammenfassung"
    '----------------------------------------------
    toOpenDatei = Dir(myPfad & "*.xls")
    Application.ScreenUpdating = False
    toCollectWkb = ActiveWorkbook.Name
    Do While toOpenDatei <> ""
        Workbooks.Open myPfad & "\" & toOpenDatei
        ActiveWorkbook.Sheets(sourceSheet).Range("A1:F8").Copy _
            Destination:=Workbooks(toCollectWkb).Worksheets(targetSheet).Range("A65536").End(xlUp).Offset(1, 0)
        ActiveWorkbook.Close False
        toOpenDatei = Dir()
    Loop
    Application.ScreenUpdating = True
End Sub

ABER,.. es müssten zumindest Fehlermeldungen kommen wenn die Datei nicht da ist, oder wenn keine Datei geöffnet werden kann.
So wie es jetzt ist, habe ich es getestet und es funktioniert
Gruss Rainer
Anzeige
AW: datenimport
09.04.2006 20:51:27
andy
Hallo Rainer,
ich hab immernoch denselben effect - keine Reaktion.
Das script lässt sich ausführen, aber es werden keine Daten importiert.
*ich bin einem nervenzusammenbruch nahe* :-)
woran könnte es liegen ? Pfad stimmt, Arbeitsblätter sind mit "Auswertung" und "Zusammenfassung" benannt...
AW: datenimport
09.04.2006 20:54:41
andy
ah..habs. habe beim pfad den "\" vergessen.
ein kleines anliegen noch - ich habe im Original verknüpfungen auf andere Zellen. Ich möchte nur die Werte in das sheet schreiben, leider schreibt es mir die Formeln in die Zellen...sicher ein "klacks" für Dich :-)
AW: datenimport
09.04.2006 22:02:08
Ramses
Hallo
ungetestet, aber probier mal
Sub Dateien_in_eine_Tabelle_zusammenfuehren()
    'by Ramses
    'Öffnet alle XLS Dateien in einem Ordner
    'Kopiert aus einem definierten Worksheet
    'in die aktuelle Mappe eines definierten Sheets
    Dim toOpenDatei As String
    Dim toCollectWkb As String
    Dim sourceSheet As String, targetSheet As String
    Dim myPfad As String
    'Wo sind die Daten
    myPfad = "C:\"
    'Aus welcher Tabelle kommen die Daten
    sourceSheet = "Auswertung"
    'Wo sollen die Daten hinkopiert werden
    targetSheet = "Zusammenfassung"
    '----------------------------------------------
    toOpenDatei = Dir(myPfad & "*.xls")
    Application.ScreenUpdating = False
    ThisWorkbook.Worksheets(targetSheet).Select
    toCollectWkb = ActiveWorkbook.Name
    Do While toOpenDatei <> ""
        Workbooks.Open myPfad & "\" & toOpenDatei
        ActiveWorkbook.Sheets(sourceSheet).Range("A1:F8").Copy
        ActiveWorkbook.Close False
        ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial xlValues
        toOpenDatei = Dir()
    Loop
    Application.ScreenUpdating = True
End Sub

Gruss Rainer
Anzeige
AW: datenimport
09.04.2006 22:22:09
andy
Excel bleibt mit einem Fehlercode 400 stecken :(
AW: datenimport
09.04.2006 22:41:33
andy
Habs gefunden ! Der Fehler lag darin, dass das ActiveWorkbook zu früh zugemacht wurde...habs das .close nach dem paste eingefügt...
etwas würde mich noch interessieren. Wäre es möglich, dass ich nach dem die Daten ausgelesen wurden, die Files via VBA-Script in ein anderes Verzeichnis verschiebe ?
Danach bin ich voll un d ganz zufrieden ! Ich danke dir jetzt schon ganz herzlich für Deine Hilfe!!!
AW: datenimport
09.04.2006 22:52:43
Ramses
Hallo
Sub MoveFile()
    Dim myQ As String, myT As String
    Dim myFile As String
    Dim myFSO As Object
    Set myFSO = CreateObject("scripting.filesystemobject")
    'Datei
    myFile = "test.txt"
    'QuellOrdner
    myQ = "C:\Quelle\" & myFile
    'Ziellaufwerk
    myT = "D:\Test\cd1\"
    myFSO.MoveFile myQ, myT
End Sub

Umd das ganze eine Schleife bilden, oder gleich den ganzen Ordner verschieben
Gruss Rainer
Anzeige
AW: datenimport
09.04.2006 23:41:53
andy
Hallöle !
Hat bestens geklappt :-) Vielen Dank!!!!
AW: datenimport
09.04.2006 21:12:16
andy
also, habs mir nochmals genau angeschaut.
Grundsätzlich wäre die funktion okay. Die sheets werden geöffnet, es wird jedoch der absolute Pfad der Zellen zur Quelldatei geschrieben. Für mich ist nur der Zellinhalt
relevant (Datenwerte, ohne Fromeln)..

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige