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

Daten aus einer anderen Exceldatei einlesen?

Daten aus einer anderen Exceldatei einlesen?
02.09.2003 13:39:19
Oliver S.
Hallo Ihr lieben Helfer,

ich habe mal wieder keinen Plan wie ich meine Vorstellungen in die Tat, bzw. in VBA, umsetzen soll. Beim Betätigen einer Befehlsschaltfläche in meiner Ausgangstabelle soll sich das Fenster zum Öffnen von Exceldateien aufmachen. Es sollte schon der Pfad, z.B. C:\Eigene Dateien, geöffnet sein, so dass ich alle Exceldateien, die sich in dem Pfad befinden sehen kann. Nach der Auswahl soll die Datei, ich nenne diese mal “Datenloggerdaten“, öffnen und zuerst die Zellen A5 bis D5 kopiert und in meiner Ausgangsdatei in A4 eingefügt werden. Danach soll in der Datei “Datenloggerdaten“ die Zellen A8 bis K1500 kopiert werden und in meiner Ausgangsdatei in A7 eingefügt werden. Zum Schluß soll die Datei “Datenloggerdaten“ geschlossen werden. Was ich vielleicht noch erwähnen sollte, die Datei aus der die Daten kopiert werden sollen heißt nicht immer gleich. Sie kann z.B. mal Datenlogger 02-09-2003 oder auch mal Auslesung Schuldorf heißen.

Ich hoffe, Ihr konntet mir folgen und mir helfen.

Schon mal besten Dank,
Oliver

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus einer anderen Exceldatei einlesen?
02.09.2003 15:33:58
Martin Beck
Hallo Oliver,

das Öffnen der Datei geht wie folgt:


Sub Übernahme()
ChDrive "C"
ChDir "C:\EigeneDateien"
ZuÖffnendeDatei = Application.GetOpenFilename("Exceldateien (*.xls), *.xls")
Workbooks.Open FileName:=ZuÖffnendeDatei
End Sub


Das Kopieren von einem Workbook zum anderen geht dann "wie üblich".

Gruß
Martin Beck
Schon nicht schlecht, aber....
02.09.2003 17:17:53
Oliver S.
Hallo Martin,

danke Dir erst einmal für die Antwort. Das öffnen des Fensters funktioniert. Wenn ich jetzt aber die Befehle zum Kopieren und Einfügen, also

Range("A5:E5").Select
Selection.Copy
Windows("Vorlage Auslesung Datenlogger.xls").Activate
Range("A4").Select
ActiveSheet.Paste

an Dein Makro anhänge, kommt ein Laufzeitfehler 1004 und es wird mir die Zeile

Range("A5:E5").Select

markiert. Woran könnte das liegen.
Außerdem würde ich gerne wissen, wie ich nach dem ersten kopieren wieder in die gerade geöffnete Datei wechseln kann, da ich den Namen der Datei ja noch nicht kenne. Der wird erst ausgewählt, wenn ich die Datei beim Ersten mal öffne. Ich benötige das, da ich nach dem ersten kopieren einen weiteren Bereich auswählen und diesen ebenfalls kopieren möchte und in meine Ausgangstabelle einfügen möchte. Danach soll dann die Datei, die durch die Anweisung geöffnet wurde geschlossen werden.

Wenn möglich wäre es super nett, wenn Du mir die Fragen ebenfalls noch beantworten würdest.

MfG,
Oliver
Anzeige
(Ziemlich) vollständige Lösung
02.09.2003 18:31:17
Martin Beck
Hallo Oliver,

vergiß das wechseln und selecten, das ist unnötig und fehlerträchtig.

Ich nehme mal an, der Name der Datei, in die kopiert werden soll, sei bekannt und würde "Zieldatei.xls" lauten. Außerdem nehme ich an, daß beide Dateien nur eine Tabelle enthalten und das die Tabelle in "Zieldatei.xls" "Zieltab" und die in der geöffneten Datei "Quelltab" heißt. All diese Namen mußt Du in nachfolgendem Code anpassen.

Der Name der geöffneten Datei ist egal, da er mit der Zeile

ZuÖffnendeDatei = Application.GetOpenFilename("Exceldateien (*.xls), *.xls")

in der Variablen ZuÖffnendeDatei abgespeichert wird, die man in den Kopierbefehlen verwenden kann.

Jetzt das Makro:


Sub Übernahme()
ChDrive "C"
ChDir "C:\EigeneDateien"
ZuÖffnendeDatei = Application.GetOpenFilename("Exceldateien (*.xls), *.xls")
Workbooks.Open FileName:=ZuÖffnendeDatei
Workbooks(ZuÖffnendeDatei).Worksheets("Quelltab").Range("A5:D5").Copy Destination:= Workbooks("Zieldatei").Worksheets("Zieltab").Range("A4")
Workbooks(ZuÖffnendeDatei).Worksheets("Quelltab").Range("A8:K15000").Copy Destination:= Workbooks("Zieldatei").Worksheets("Zieltab").Range("A7")
Workbooks(ZuÖffnendeDatei).Close
End Sub


Achtung: Der Code ist nicht getestet, da ich die Dateien nicht nachbauen wollte.

Schau Dir generell mal die Hilfe zu COPY an.

Gruß
Martin Beck
Anzeige
Fast vollständig aber noch ein Laufzeitfehler!
02.09.2003 18:54:55
Oliver S.
Danke Dir Martin für die Mühe,

die Du Dir wegen mir machst. Leider bricht das Makro jetzt mit dem Laufzeitfehler 9 ab. Ich schreibe mal nachfolgend das von mir angepaste Makro hin:



Private Sub CommandButton1_Click()
     ChDrive "F"
ChDir "F:\Arbeit\Auslesedaten Zenner Zähler\"
ZuÖffnendeDatei = Application.GetOpenFilename("Exceldateien (*.xls), *.xls")
Workbooks.Open Filename:=ZuÖffnendeDatei
    Workbooks(ZuÖffnendeDatei).Worksheets("LogTab0").Range("A5:D5").Copy Destination:=Workbooks("Vorlage Auslesung Datenlogger.xls").Worksheets("Auslesung Datenlogger").Range("A4")
Workbooks(ZuÖffnendeDatei).Worksheets("LogTab0").Range("A8:K15000").Copy Destination:=Workbooks("Vorlage Auslesung Datenlogger.xls").Worksheets("Auslesung Datenlogger").Range("A7")
Workbooks(ZuÖffnendeDatei).Close
End Sub


     Code eingefügt mit Syntaxhighlighter 2.4


Die Datei, in die die Daten kopiert werden sollen heißt Vorlage Auslesung Datenlogger.xls. Die Tabelle in der Datei heißt Auslesung Datenlogger. Die Tabelle von der die Daten kopiert werden sollen heißt LogTab0. Der Name der Datei in der die Tabelle LogTab0 ist spielt ja keine Rolle hast Du gesagt.

Kannst Du mir eventuell sagen warum jetzt dieser Laufzeitfehler kommt?

MfG,
Oliver
Anzeige
Nur eine Vermutung
02.09.2003 20:34:21
Martin Beck
Hallo Oliver,

laß mal das .xls weg.

Gruß
Martin Beck
Das war es leider nicht!
03.09.2003 06:36:16
Oliver S.
Moin Martin,

sorry, dass ich mich erst heute morgen melde, aber gestern habe ich dann, nachdem ich den ganzen Tag herumprobiert habe, den PC ausgemacht. Daher kommt erst heute ein Dankeschön von mir. Leider war das nicht der Fehler. Nach Löschen von .xls kommt immer noch der Laufzeitfehler 9. Vielleicht fällt Dir ja noch etwas dazu ein?

Bis dahin noch einen schönen Tag,
Oliver
Jetzt funktionierts!
03.09.2003 09:11:59
Oliver S.
Hallöchen,

ich habe es gelöst. Mit ein bisschen herumprobieren funktioniert der Code jetzt.

Nachfolgend der Code, wie er jetzt aussieht:


Sub Datei_auslesen()
Dim dat$, Verz$, ws As Worksheet
Verz = "S:\HAUSSTATION\Auslesedaten Zenner Zähler\"
On Error Resume Next
ChDrive Left(Verz, 1)
ChDir Verz
On Error GoTo 0
Set ws = Workbooks("Vorlage Auslesung Datenlogger.xls").Worksheets("Auslesung Datenlogger")
dat = Application.GetOpenFilename("Exceldateien (*.xls), *.xls")
If Dir(dat) <> "" Then
Workbooks.OpenText Filename:=dat
Else
Exit Sub
End If
Worksheets("LogTab0").Range("A5:D5").Copy ws.Range("A4")
Worksheets("LogTab0").Range("A8:K3000").Copy ws.Range("A7")
ActiveWindow.Close (False)
End Sub


Nomal besten Dank an Martin, er hat mir sehr geholfen.

MfG,
Oliver
Anzeige

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige