Anzeige
Archiv - Navigation
1444to1448
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

Externe Exceldatei auslesen und eintragen

Externe Exceldatei auslesen und eintragen
15.09.2015 14:02:12
matthias
Hallo,
anbei eine Datei von mir.
https://www.herber.de/bbs/user/100193.xlsx
Es geht hierbei um Einlesen von exteren Daten aus anderen Exceldateien und deren dynamische Zuordnung.
Ich hoffe ihr könnt mir hier weiterhelfen.
Gruß

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

Betreff
Datum
Anwender
Anzeige
AW: Externe Exceldatei auslesen und eintragen
19.09.2015 19:39:47
fcs
Hallo Matthias,
nachfolgend Makros für den Import.
Kopiere diese in ein allgemeines Modul deiner Datei.
Danach kannst du sie via Menü "Ansicht--Makros" starten.
Oder du legst dir im Tabellenblatt noch Schaltflächen aus den Formular-Steuerelementen an oder andere Formen und weist ihnen die Makros zu.
Gruß
Franz
Sub ImportHeim()
Call ImportSpiel(SpalteSpielerVR:=1, SpaErgebnis:=2, bolHeim:=True)
End Sub
Sub ImportAuswaerts()
Call ImportSpiel(SpalteSpielerVR:=1, SpaErgebnis:=5, bolHeim:=False)
End Sub
Function ImportSpiel(ByVal SpalteSpielerVR As Long, ByVal SpaErgebnis As Long, _
ByVal bolHeim As Boolean, Optional ByVal AnzahlSpiele As Long = 3) As Boolean
Dim varList, varDatei, wkbVR As Workbook, wksVR As Worksheet
Dim ZeiVR As Long, SpaVR As Long, Spieler As String
Dim arrDateiST As Variant, wkbST As Workbook, wksST As Worksheet
Dim SpaSpielerST As Long, ZeiST As Long
Set wkbVR = ActiveWorkbook
Set wksVR = wkbVR.Worksheets("VR")
If bolHeim = True Then
SpaSpielerST = 1
Else
SpaSpielerST = 3
End If
With Application.FileDialog(msoFileDialogOpen)
.Title = "Bitte Datei(en) mit " _
& IIf(bolHeim, "Heimspiel(en)", "Auswärtspiel(en)") & " auswahlen"
.AllowMultiSelect = True
If .Show = -1 Then
Set varList = .SelectedItems
Else
GoTo Beenden
End If
End With
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False
End With
For Each varDatei In varList
Set wkbST = Application.Workbooks.Open(Filename:=varDatei, _
ReadOnly:=True)
Set wksST = wkbST.Worksheets(1)
Debug.Print "varDatei: " & varDatei
With wksVR
For ZeiVR = 2 To .Cells(.Rows.Count, SpalteSpielerVR).End(xlUp).Row Step 3
Spieler = .Cells(ZeiVR, SpalteSpielerVR)
If .Cells(ZeiVR + 1, SpaErgebnis + AnzahlSpiele - 1).Value  "" Then
MsgBox "Für Spieler """ & Spieler _
& """ sind alle Zellen für Spielergebnisse ausgefüllt!"
Else
For SpaVR = SpaErgebnis To SpaErgebnis + AnzahlSpiele - 1
If IsEmpty(.Cells(ZeiVR + 1, SpaVR)) Then Exit For
Next SpaVR
With wksST
For ZeiST = 4 To .Cells(.Rows.Count, SpaSpielerST).End(xlUp).Row Step 3
If .Cells(ZeiST, SpaSpielerST).Value = Spieler Then
wksVR.Cells(ZeiVR + 1, SpaVR).Value = _
.Cells(ZeiST, SpaSpielerST + 1).Value
wksVR.Cells(ZeiVR + 2, SpaVR).Value = _
.Cells(ZeiST + 1, SpaSpielerST + 1).Value
Exit For
End If
Next
End With
End If
Next
End With
wkbST.Close savechanges:=False
Next varDatei
With Application
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
.EnableEvents = True
End With
Beenden:
End Function

Anzeige
AW: Externe Exceldatei auslesen und eintragen
19.09.2015 22:19:31
Matthias
wow.
Hammer es funktioniert super.
Zwei Kleine Sachen habe ich noch.
1) In den sheets datei a und datei h steht z.b Matthias Sperl.
Es kann sein, dass direkt unter dem Namen noch ein zweiter Name steht.
Es sollte dann nach dem eintragen die das Sheet VR, noch der Hinweis kommen, dass der Spieler Matthias Sperl ausgewechselt wurde und die Schubzahl gepasst werden muss. Das Kriterium für diese Meldung ist eben der zweite Name der unter dem ersten Namen stehen kann.
Falls dieses Kriterium nicht erfüllt ist, sollte die Meldung nicht kommen.
2) In den dateien a und h steht in zelle A1 immer ein Name.
Diese Name sollte dann beim Importieren der Werte in das Sheet VR mit importiert werden.
Undzwar sollte die Spielnummer B2-G2 durch diesen Namen ersetzt werden.
Könnte du sowas noch einbinden?
Besten Dank im Voraus.
Ansonsten habe ich mir das genauso vorgestellt.
:)

Anzeige
AW: Externe Exceldatei auslesen und eintragen
19.09.2015 22:53:09
Matthias
Hallo
anbei die Datei mit deinem Code.
https://www.herber.de/bbs/user/100272.xlsx
Ich habe den Sachverhalt den ich in Punkt 1 und 2 beschrieben habe noch eingepflegt.
Um das Ganze komplett zu machen gibt es noch einen Punkt 3
In dem Sheet datei A stehen in Spalte E noch Werte.
In dem Sheet datei H stehen in Spalte C noch Werte.
Diese müssten auch noch übernommen werden in das Sheet Vr undzwar jeweils in die Zeile Punkte in Spalte A. Habe das Ganze nochmals farbig hervorgehebt.
Dann wäre alles komplett.
Weitere Anpasssungen würden nicht folgen.
Kannst du mir hierzu nochmals helfen mit den drei Anpassungen?

Anzeige
AW: Externe Exceldatei auslesen und eintragen
20.09.2015 00:04:29
fcs
Hallo Mathias,
bist du sicher, dass in der Datei für Auswärts die Namen in Spalte C stehen? Und nicht in D?
In deiner hochgeladenen Datei waren meine Makros noch nicht drin. Du muss nach dem Einfügen der Makros die Datei via "Speichern unter" als Datei mit Makros speichern (Datei-Endung= xlsm).
Die Anpassung mache ich dann im Laufe des Sonntags.
Gruß
Franz

AW: Externe Exceldatei auslesen und eintragen
20.09.2015 01:11:01
Matthias
Hallo
auf welchen Punkt (1,2 oder 3) bezieht sich deine Frage mit der Datei für Auswärts, dass die Namen in Spalte D stehen und nicht in C?
In datei a stehen die Spielernamen in Spalte C
In datei h stehen die Spielernamen in Spalte A
In Datei a stehen in Spalte D die Ergebnisse der Spieler. In E würden dann die Punkte stehen. (siehe den Änderungspunkt 3)
oder aus was bezieht sich deine Frage? kann dir nicht ganz folgen.
Anbei nochmals die Datei.
Ich habe sie nicht mit Makros gespeichert sry.
https://www.herber.de/bbs/user/100273.xlsm

Anzeige
AW: Externe Exceldatei auslesen und eintragen
20.09.2015 01:16:52
Matthias
Achja genau. Es sind die Änderungen 1,2 und 3 noch nicht in der hochgeladenen Datei programmiert.
Lediglich der Zusammenhang der Zellen wurde erweitert und farblich gekennzeichnet. (Welche Zelle von der Datei a oder h in das Sheet VR importiert werden soll)

AW: Externe Exceldatei auslesen und eintragen
20.09.2015 10:33:27
fcs
Hallo Matthias,
ich hab das Makro jetzt entsprechend angepasst, dass die Punkte auch eingetragen werden und der Hinweis auf Ersatzspieler erfolgt.
https://www.herber.de/bbs/user/100276.xlsm
Spielernamen in Auswärts-Datei in Spalte C oder D:
Wenn die Ergebnisdateien für Heim- und Auswärtsspiele bezüglich Spalten identisch aufgebaut sind -wobei das Auswärts-Team immer rechts steht-, dann müssten in der Auswärtsdatei die Spielernamen in Spalte D stehen, da die Daten für das Heimteam in Spalte A bis C stehen. Aber evtl. bearbeitst du die Ergebnisblätter in den Dateien ja noch, so dass sie so aussehen, wie in deiner Beispieldatei.
Gruß
Franz

Anzeige
AW: Externe Exceldatei auslesen und eintragen
20.09.2015 12:30:58
Matthias
Super genau so sollte es sein.
Zu dem Thema mit den Spielernamen in der Auswärtsdatei.
In meiner Beispiel datei (die erste Datei die ich hoch geladen habe) warena auch schon die Spielernamen in Spalte C drin.
Du meinst vermutlich, dass die Spalte noch angepasst werden müsste, weil es im richtigen Spielbericht anders dargestellt ist.
Da gebe ich dir recht, dasss muss ich noch anpassen.
Sollte aber keine Große Sache sein oder?
Also wenn ich die Zuordnungen (Spielername/Ergebnisse) hinsichtlichen der Spaltenzuordnung anpassen muss.
Besten Dank und Gruß

Anzeige
AW: Externe Exceldatei auslesen und eintragen
20.09.2015 12:39:31
Matthias
Eine kleine Frage bleibt noch.
Was ist wenn in Datei a der Mannschaftsname nicht in A1 sondern in B1 steht.
In Datei h bleibt der Name in A1
Wo muss ich das anpassen, sodass für h und a die Zellenbezüge gewechselt werden?
Anonsten wäre das definitv alles.
Vielen Dank für die schnelle und supertolle Hilfe.

AW: Externe Exceldatei auslesen und eintragen
20.09.2015 13:05:12
fcs
Hallo Matthias,
Spalte Spielname hier anpassen. Das Auslesen der Daten baut auf dieser Spalte auf.
    'Nr. der Spalte mit Spielername in Ergebnisblättern setzen für Heim- bzw. Auswärtsspiel
If bolHeim = True Then
SpaSpielerST = 1 'ggf aanpassen
Else
SpaSpielerST = 3 'ggf aanpassen
End If

Zelle mit generischer Mannschaft ggf. ändern. Das kannst du hier anpassen/ergänzen.
            'Ergbnisse nach "VR" übertragen
SpielerErsatz = .Cells(ZeiST + 1, SpaSpielerST).Text
If bolHeim = True Then
wksVR.Cells(ZeiVR, SpaVR).Value = _
.Cells(1, 1).Text  'Zelle A1 eintragen
Else
wksVR.Cells(ZeiVR, SpaVR).Value = _
.Cells(1, 2).Text  'Zelle B1 eintragen
End If
Gruß
Franz
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige