Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Einlesen von Daten aus anderer Excel-Datei

Einlesen von Daten aus anderer Excel-Datei
04.06.2008 12:01:52
Daten
Hallo,
ich habe ein Tippspiel zur EM entworfen und sende eine Excel-Datei (1 Arbeitsblatt) als Tippschein zum Ausfüllen an Mitspieler zu.
In einer weiteren Datei habe ich eine Auswertungstabelle. In diese möchte ich automatisch die Daten aus den einzelnen Tippschein-Dateien einlesen.
Dazu habe ich den leeren Tippschein bereits mit der Auswertungsdatei verknüpft und die Tippscheindatei findet sich auch unter Bearbeiten-Verknüpfungen. Ich wollte diese Arbeit nun nicht für jede einzelne Tippschein-Datei neu machen, sondern hatte gehofft, dass ich von dieser Stelle an einfacher die entsprechenden Felder aus den Tippscheindateien (die immer EM_Tipp_Name1.xls, EM_Tipp_Name2.xls usw. heißen) auslesen kann.
Zur WM hatte ich einen Weg gefunden, allein ich weiss nicht mehr, wie es damals ging. Kann jemand helfen?
Vielen Dank im Voraus.
Andreas
Beiträge der letzten Zeit anzeigen:

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Einlesen von Daten aus anderer Excel-Datei
04.06.2008 13:03:00
Daten
Hallo Andreas,
der einfachste Weg dürfte die Verknüpfung per Formel sein:

EM-Tippspiel 2008					Tipps der Mitspieler
Auswertung			Ergebnis		Hans		Franz
Spiel	Heim	    Gast      	H	G	H	G	H	G
1	Deutschland  Polen 	    		2	1	1	1
2	Kroatien	    Östereich			3	2	2	0
Formeln:
F4='C:\Lokale Daten\Test\[EM_Tipp_Hans.xls]Tipp'!$D4
G4='C:\Lokale Daten\Test\[EM_Tipp_Hans.xls]Tipp'!$E4
H4='C:\Lokale Daten\Test\[EM_Tipp_Franz.xls]Tipp'!$D4
I4='C:\Lokale Daten\Test\[EM_Tipp_Franz.xls]Tipp'!$E4
F5='C:\Lokale Daten\Test\[EM_Tipp_Hans.xls]Tipp'!$D5
G5='C:\Lokale Daten\Test\[EM_Tipp_Hans.xls]Tipp'!$E5
H5='C:\Lokale Daten\Test\[EM_Tipp_Franz.xls]Tipp'!$D5
I5='C:\Lokale Daten\Test\[EM_Tipp_Franz.xls]Tipp'!$E5


In meinem Beispiel werden auf dem Tipp-Blatt die Tore für Heim und Gast jeweils in Spalte D bzw. E eingetragen.
Für jeden Tipper kopierst du rechts 2 weitere Spalten und änderst in der Formel den Dateinamen.
Die Formeln kannst du dann für ale Speielpaarungen nach unten kopieren.
Gruß
Franz

Anzeige
AW: Einlesen von Daten aus anderer Excel-Datei
04.06.2008 13:04:00
Daten
Hallo
wie möchtest du die Daten aus den anderen Dateien denn darstellen?
- Jede Datei auf einem eigenen Tabellenblatt
- oder in bestimmten Spalten nebeneinander
- oder einzeilig untereinander?
Evtl. hast du ja eine Mustermappe mit einigen bereits "importierten Dateien", die du hochladen kannst.
Gruß
UweD

Anzeige
AW: Einlesen von Daten aus anderer Excel-Datei
04.06.2008 13:18:00
Daten
ich werde heute Abend mal die beiden betreffenden Dateien hochladen.

AW: Einlesen von Daten aus anderer Excel-Datei
04.06.2008 21:37:23
Daten
Hallo,
ich habe nun einmal den Tippschein hochgeladen:
https://www.herber.de/bbs/user/52822.xls
Die Auswertungsdatei konnte ich nur als jpg hochladen, da die Excel-Datei größer als 300kB war. Hier ist ein Bild:
Userbild
Die gelben Felder aus dem Tippschein sollen in die lila Felder der Auswertungsdatei eingelesen werden.
Das habe ich für zwei Tippscheine bereits gemacht mit der Formel (im Feld F3):
"='C:\Pfad\EM-Tippspiel 2008\Tippscheine\[Tippschein.xls]Tippschein'!$H$9" usw. für alle weiteren Felder.
Ich habe nun sehr viele Tippscheine (Tippschein1.xls, Tippschein2.xls usw) und hoffe, dass es eine einfache Lösung gibt, diese einfach in die Auswertungsdatei einlesen zu lassen.
Kann jemand helfen? Danke schon einmal im Voraus,
Andreas

Anzeige
AW: Einlesen von Daten aus anderer Excel-Datei
05.06.2008 12:04:07
Daten
Hallo Andreas,
das folgende Makro, sucht so lange in Spalte 4 nach leere Zellen bis in Spalte 2 eine leere Zelle ist. Ist Spalte 4 leer, wird der Dateiname abgefragt bzw. ist zu bestätigen. Danach werden die Formeln kopiert und der Dateiname erstzt. in Spalte E-mail wird Hyperlink gesetzt.
Vor dem Start des Makros muss du die Namen/Vornamen der Tipper eintragen, deren Tippdateien vorligen.
Eine formellose übernahme der Tippdaten wäre auch möglich, aber das ist doch eine ziemliche Fleissarbeit all die auszulesenden Zelladressen rauszu picken und dann in der richtigen Zeile/Spalte die Werte einzufügen.
Gruß
Franz

Sub Tipps_Verknuepfen()
'Kopiert die Formeln in die nächste Freie Zeile und fragt Dateiname ab
Dim lngZeile As Long, strNameDatei As String, lngZeileKopie As Long
Dim objWks As Worksheet
Const lngLetzeSpalte As Long = 85 'Nummer der letzten Spalte die mit kopiert werden soll
Set objWks = ActiveSheet
With objWks
'leere Zeile in Spalte 4 ab Zeile 4 suchen
For lngZeile = 4 To .Cells(.Rows.Count, 2).End(xlUp).Row
'Leere Zellen in Spalte 4
If IsEmpty(.Cells(lngZeile, 4)) Then
'Neuen Dateinamen aus Name errechnen
.Cells(lngZeile, 2).Select
strNameDatei = "EM_Tipp_" & .Cells(lngZeile, 2).Value & ".xls"
strNameDatei = InputBox(Prompt:="Bitte ggf. Dateiname für " & vbLf & vbLf _
& .Cells(lngZeile, 2).Value & " " & .Cells(lngZeile, 3).Value & vbLf & vbLf _
& " korrigieren und Eingabe mit OK bestätigen" & vbLf _
& "Bei Abbrechen wird die Zeile übersprungen!", _
Title:="EM 2008 Tippspiel - Tipps einlesen", Default:=strNameDatei)
If strNameDatei = "" Then
Else
lngZeileKopie = .Cells(.Rows.Count, 4).End(xlUp).Row
.Range(.Cells(lngZeileKopie, 4), .Cells(lngZeileKopie, lngLetzeSpalte)).Copy _
Destination:=.Cells(lngZeile, 4)
'Dateiname in Formeln ersetzen
.Range(.Cells(lngZeile, 4), .Cells(lngZeile, lngLetzeSpalte)).Replace _
What:="[*]", Replacement:="[" & strNameDatei & "]", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'E-Mail-Hyperlink einfügen
If .Cells(lngZeile, 5).Value  "" Then
.Hyperlinks.Add Anchor:=.Cells(lngZeile, 5), Address:= _
"mailto:" & .Cells(lngZeile, 5).Value & "?subject=EM%202008%20-%20Tippspiel"
End If
End If
End If
Next
End With
End Sub


Anzeige
AW: Einlesen von Daten aus anderer Excel-Datei
05.06.2008 14:06:10
Daten
Hallo Franz,
es scheint hervorragend zu klappen - vielen herzlichen Dank. Ich musste die Nummer der letzten Spalte die mit kopiert werden soll von 85 auf 107 ändern (Tabelle geht bei mir bis Spalte DC).
Eine Sache habe ich noch. Ich habe alle Tippscheine als "EM-Tipp_Name_Vorname.xls" oder anders als "EM-Tipp_SpalteB_SpalteC.xls" abgespeichert. Das Makro fragt aber immer den Dateinamen als "EM-Tipp_SpalteB.xls" ab, d.h. ich muss bei jedem Dateinamen noch den Vornamen des Spielers ergänzen.
Wo und wie müßte das Makro geändert werden, dass es den Dateinamen gleich als "EM-Tipp_SpalteB_SpalteC.xls" abfragt.
Auch wenn nun keine Antwort mehr kommt, bin ich schon sehr dankbar und glücklich. Sie haben mir wirklich einige Stunden an Arbeit gespart. Herzlichen Dank noch einmal.
Andreas Landgraf

Anzeige
AW: Einlesen von Daten aus anderer Excel-Datei
05.06.2008 14:55:00
Daten
Hallo Andreas,
die Zeile in der Dateiname zusammengebaut war ja eigentlich nicht so schwer zu finden.

strNameDatei = "EM_Tipp_" & .Cells(lngZeile, 2).Value & ".xls"
ändern in
strNameDatei = "EM_Tipp_" & .Cells(lngZeile, 2).Value & "_" _
& .Cells(lngZeile, 3).Value & ".xls"

Gruß
Franz

Anzeige
AW: Einlesen von Daten aus anderer Excel-Datei
05.06.2008 16:28:01
Daten
Hallo Franz,
ich habe die Zeile schon identifiziert, allerdings sagen mir die Befehle "... & .Cells(lngZeile, 2).Value & "_" _& .Cells(lngZeile, 3).Value & " ..." mit den ganzen &-Zeichen und Punkten rein gar nichts, deshalb habe ich lieber nachgefragt.
Kann man irgendwo nachlesen, wie Makros aufgebaut sind (z.b. was LngZeile bedeutet und warum am Ende so viele End If sind?) Ich würde schon gerne verstehen, warum die Befehle exakt so gemacht werden müssen.
Aber zunächst einmal vielen lieben Dank. Die EM kann nun losgehen.
Andreas

Anzeige
AW: Einlesen von Daten aus anderer Excel-Datei
05.06.2008 17:26:00
Daten
Hallo Andreas,
VBA ist nun mal eine Programmiersprache und diese haben ihren festen Satz an Methoden und Funktionen und jede dieser Methoden und Funktionen hat ihre Sysntax.
ich habe die Zeile schon identifiziert, allerdings sagen mir die Befehle "... & .Cells(lngZeile, 2).Value & "_" _& .Cells(lngZeile, 3).Value & " ..." mit den ganzen &-Zeichen und Punkten rein gar nichts, deshalb habe ich lieber nachgefragt.
& = in VBA das Funktionszeichen für das zusammenfügen von Text-Teilen
_ = am Ende einer Code-Zeile ist der Hinweis für den Compiler, der den Text in ausführbaren Code umsetzt, dass die nächste Zeile noch mit zur Anweisung gehöhrt.
. = vor einem Objekt (Zelle, Worksheet, Shape, Format etc) muss immer in Verbindung mit der in einer Zeile vorher stehenden With Objekt-Zeile gelesen werden. Fehlt der Punkt, dann bezieht sich die Anweisung immer auf das Aktive Objekt. Im Fall von Cells oder Range ist dies das aktive Tabellenblatt.
.Cells(lngZeile,2).Value = Nimm aus dem oben hinter With genannten Tabellenblatt aus der Zelle in der Zeile mit der Nr die im Moment in der Variablen lngZeile und der Spalte 2 den Inhalt und ...
Kann man irgendwo nachlesen, wie Makros aufgebaut sind
A: Bücher Amazon.de, Fachbuchhandlung, Computerladen
B: Übungs./Lernmaterial hier bei Herbers
C: Übungs-Seite by www.microsoft.de, obwohl ich denen gestern in der Bewertung nur 1 Stern geben konnte wegen Programmierfehler in einem Übungsbeispiel.
(z.b. was LngZeile bedeutet und warum am Ende so viele End If sind?)
lngZeile ist bei mir eine Varible, der Name fängt bei mir mit "lng" an, weil die Variable vom Zahlentyp Long ist und "Zeile" ist dann ein aussagekräftiger Namenszusatz, der einen Hinweis auf den Inhalt der Variablen gibt, hier eine Zeilen-Nummer.
Viele "End If" sind am Ende Konzentriert, wenn vorher im Code viele If-Prüfungen gemacht wurden.
Die Syntax ist
If irgenwas-Prüfung=Wahr Then
'Code by Bedingung Wahr (True)
Else (optional)
'Code by Bedingung Falsch (False)
End If
Ich würde schon gerne verstehen, warum die Befehle exakt so gemacht werden müssen.Über das Warum brauchst du dir als Anwender meist keine Sorgen machen, das haben Programmierer bei Microsoft oder anderswo mit einer mehr oder weniger gekonnter Syntax und Logik/Unlogik schon erledigt.
Für dich muss es darum gehen die Logik nachzuvollziehen - verstehen ist natürlich auch nicht verkehrt, um möglichst schnell und elegant bei der Lösung deiner eigenen VBA-programmierungen voranzukommen.
Aber zunächst einmal vielen lieben Dank. Die EM kann nun losgehen.
Ja ich bin auch bereit und drücke unseren Kickern die Daumen. Früher hab ich ja auch noch umfangreiche Tippspiele mit Excel ausgewertet (BL-Saison mit bis zu 100 Teilnehmern. Aber seit der WM 2006 ist das vorbei. Seitdem nutze Angebote im Web.
Gruß
Franz
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Daten aus einer anderen Excel-Datei einlesen


Schritt-für-Schritt-Anleitung

Um Daten aus einer anderen Excel-Datei zu importieren, kannst du die folgenden Schritte befolgen:

  1. Öffne die Auswertungsdatei: Stelle sicher, dass du die Excel-Datei geöffnet hast, in die du die Daten importieren möchtest.

  2. Verknüpfung mit den Tippscheinen: Verwende Formeln, um die Daten aus den Tippschein-Dateien zu holen. Hier ist ein Beispiel:

    ='C:\Pfad\EM-Tippspiel 2008\Tippscheine\[EM_Tipp_Name1.xls]Tipp'!$D4
  3. Formeln anpassen: Kopiere die Formeln für jedes Feld, das du importieren möchtest, und passe den Dateinamen an.

  4. Automatisierung mit einem Makro: Wenn du viele Tippscheine hast, kannst du ein VBA-Makro verwenden, um den Prozess zu automatisieren. Hier ist ein einfaches Makro, das du verwenden kannst:

    Sub Tipps_Verknuepfen()
       Dim lngZeile As Long, strNameDatei As String
       Dim objWks As Worksheet
       Set objWks = ActiveSheet
       For lngZeile = 4 To objWks.Cells(objWks.Rows.Count, 2).End(xlUp).Row
           strNameDatei = "EM_Tipp_" & objWks.Cells(lngZeile, 2).Value & ".xls"
           ' Weitere Logik hier...
       Next
    End Sub
  5. Makro anpassen: Passe das Makro an, um die Dateinamen korrekt zu generieren, falls du zusätzliche Informationen wie den Vornamen der Spieler einfügen möchtest.


Häufige Fehler und Lösungen

  • Fehler: Verknüpfung funktioniert nicht: Überprüfe den Dateipfad und stelle sicher, dass die Datei existiert.

  • Fehler: Daten werden nicht aktualisiert: Stelle sicher, dass die Verknüpfungen zu den Dateien korrekt sind und die Dateien nicht geöffnet sind, wenn du die Daten importierst.

  • Fehler: Makro funktioniert nicht: Überprüfe die VBA-Syntax und stelle sicher, dass alle Variablen korrekt deklariert sind.


Alternative Methoden

  • Power Query: Eine leistungsstarke Methode, um Daten aus verschiedenen Excel-Dateien zu importieren und zu transformieren. Du kannst Power Query verwenden, um mehrere Dateien in einem Schritt zu laden.

  • Kopieren und Einfügen: Wenn es sich nur um wenige Daten handelt, kannst du die Werte manuell kopieren und in die Auswertungsdatei einfügen.

  • Datenimport über die Menüleiste: Gehe zu „Daten“ > „Daten abrufen“ > „Aus Datei“ > „Aus Arbeitsmappe“, um eine andere Excel-Datei auszuwählen.


Praktische Beispiele

  1. EM Tippspiel 2008: Wenn du ein Tippspiel zur EM 2008 hast und die Daten aus mehreren Tippscheinen ins Hauptdokument einfügen möchtest, kannst du die oben genannten Formeln und das Makro verwenden.

  2. Daten aus einer .xlsx-Datei lesen:

    ='C:\Pfad\[Tippschein.xlsx]Tipp'!$D4
  3. Daten aus einer .xls-Datei lesen:

    ='C:\Pfad\[Tippschein.xls]Tipp'!$D4

Tipps für Profis

  • Nutze dynamische Namen: Verwende benannte Bereiche, um die Formeln übersichtlicher zu gestalten.

  • Fehlerbehandlung im VBA: Füge Fehlerbehandlungsroutinen in dein Makro ein, um Probleme beim Datenimport frühzeitig zu erkennen.

  • Regelmäßige Aktualisierung: Stelle sicher, dass deine Dateipfade aktuell sind, besonders wenn du die Struktur deiner Ordner änderst.


FAQ: Häufige Fragen

1. Wie kann ich Daten aus mehreren Excel-Dateien gleichzeitig importieren? Du kannst Power Query verwenden, um Daten aus mehreren Dateien in einem Schritt zu importieren.

2. Was mache ich, wenn die Verknüpfungen nicht aktualisiert werden? Überprüfe die Datei- und Verknüpfungseinstellungen und stelle sicher, dass die Quell-Dateien nicht geöffnet sind.

3. Ist es möglich, Daten aus .xls und .xlsx-Dateien zu kombinieren? Ja, du kannst sowohl .xls- als auch .xlsx-Dateien in Excel importieren, solange du die richtigen Dateiformate in deinen Formeln verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige