Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Werte aus anderer Datei auslesen

Werte aus anderer Datei auslesen
13.03.2019 15:50:19
Philip
Sehr geehrte Forummitglieder,
ich möchte in einer Datei "A" (https://www.herber.de/bbs/user/128361.xlsx) ein/mehrere Makro(s) einpflegen.
In der Datei "A" soll aus einer geschlossenen Datei "B" (https://www.herber.de/bbs/user/128362.xlsx) - Pfad: "C:\Users\...xlsx" - einige Werte ausgelesen und in die Tabelle in der Datei "A" eingefügt werden.
Das Problem ist hier, dass Datei "A" eine Tabelle beinhaltet deren Überschriften nicht mit den Überschriften aus Datei "B" übereinstimmt.
Es sollte also in Datei "A" die Tabelle automatisch mit den dafür vorgesehenen Werten aus Datei "B" aufgefüllt werden. Wobei die Daten der Tabellenspalte aus Datei "A" "Nummer" mit der Arbeitsblattspalte aus Datei "B" "OrderConfID" (usw.) aufgefüllt werden soll.
Ist dies mit einem VBA-Programmcode realisierbar?
Danke & Gruß
Philip

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

Betreff
Datum
Anwender
Anzeige
AW: Werte aus anderer Datei auslesen
13.03.2019 16:59:31
Hajo_Zi
Halo Philip,
auslesen aus einer geschlossenen Datei ist aufwendig.
Option Explicit
Public Function GetDataClosedWB(SourcePath As String, _
SourceFile As String, sourceSheet As String, _
SourceRange As String, TargetRange As Range) As Boolean
'Holt einen Bereich aus einer _geschlossenen_ Arbeitsmappe
'Nur in VBA zu verwenden; nicht aus einer Tabellenzelle heraus
'© t.ramel@mvps.org
' wird durch die HoleDaten aufgerufen
Dim strQuelle       As String
Dim Zeilen          As Long
Dim Spalten         As Byte
On Error GoTo InvalidInput
strQuelle = "'" & SourcePath & "[" & SourceFile & "]" & sourceSheet & "'!" & Range( _
SourceRange).Cells(1, 1).Address(0, 0)
Zeilen = Range(SourceRange).Rows.Count
Spalten = Range(SourceRange).Columns.Count
With TargetRange.Cells(1, 1).Resize(Zeilen, Spalten)
.Formula = "=IF(" & strQuelle & "="""",""""," & strQuelle & ")"
.Value = .Value
End With
GetDataClosedWB = True
Exit Function
InvalidInput:
MsgBox "Die Quelldatei oder der Quellbereich ist ungültig!", vbExclamation, "Get data from  _
closed Workbook"
GetDataClosedWB = False
End Function
Public Sub HoleDaten()
' Die Funktion arbeitet mit der obrigen GetDataClosedWB zusammen
Dim Pfad            As String
Dim Dateiname       As String
Dim Blatt           As String
Dim Bereich         As String
Dim Ziel            As Range
Pfad = "L:\Eigene Dateien\Hajo\Internet\Test\2009\"
Dateiname = "Beispiel Forum 30.xlsm" ' aus welcher Datei soll er holen?
Blatt = "Tabelle1"  ' von welcher Tabelle soll er holen?
Bereich = "A1:B9"   ' aus welchem Bereich soll er holen?
Set Ziel = ActiveSheet.Range("A1")  ' in welchen Bereich soll er kopieren? Genauer gesagt:  _
Bei welcher Zelle soll er anfangen, Datein reinzukopieren? Bsp: ActiveCell geht auch
If GetDataClosedWB(Pfad, Dateiname, Blatt, Bereich, Ziel) Then
MsgBox "Daten importiert"
End If
End Sub

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
Anzeige
AW: Werte aus anderer Datei auslesen
14.03.2019 08:18:04
Philip
Hallo Hajo,
erstmal vielen Dank für die Mühe.
Leider wirft mein Excel eine Fehlermeldung "Syntaxfehler" aus und verweist dabei auf folgende Programmzeile:
"
InvalidInput:
MsgBox "Die Quelldatei oder der Quellbereich ist ungültig!", vbExclamation, "Get data from _
closed Workbook"
"
AW: Werte aus anderer Datei auslesen
14.03.2019 08:20:56
Philip
Edit:
Beitrag noch offen.
AW: Werte aus anderer Datei auslesen
14.03.2019 08:53:15
Werner
Hallo Philip,
der Zeilenumbruch ist falsch. Der wurde vermutlich von der Forensoftwar einfach gesetzt.
MsgBox "Die Quelldatei oder der Quellbereich ist ungültig!", vbExclamation, _
"Get data from closed Workbook"
Gruß Werner
Anzeige
AW: Werte aus anderer Datei auslesen
14.03.2019 11:12:38
Philip
Vielen Dank!
Nun funktioniert es.
Es werden nun alle (im VBA-Code) angegebenen Bereich(e) kopiert.
Alle weiteren Wünsche aus meinen ersten beiden Beiträgen sind so nicht realisierbar?
Also z.B. eine automatische Zuordnung der entsprechenden Spalten.
Sodass die Spalte "OrderConfID" aus Datei "B" automatisch der Tabellenspalte "Nummer" in Datei "A" zugeordnet wird, usw...
- Das kann ich zur Not mit einigen Hilfsspalten in der endgültigen Tabelle realisieren.
Oder das Vergleichen der entstandenen Datei "A" (mit Werten) mit einer Datei "C", wie im zweiten Beitrag beschrieben.
- Das sollte die eigentliche Aufgabe des Makros sein, um Tagesaktuell die gewünschten Tabellen "automatisch" zu vervollständigen, bzw. zu aktualisieren.
Anzeige
AW: Werte aus anderer Datei auslesen
16.03.2019 07:54:36
Werner
Hallo Philip,
ich würde an die Sache anders ran gehen.
1. Datei B im Hintergrund öffnen
2. Spalte OrderConfID suchen
## hier stellt sich die Frage, ob die beiden anderen Spalten immer direkt rechts von OrderConfID sind oder auch gesucht werden müssen
3. Daten in Datei A kopieren
4. Dabei B schließen
Von einem Vergleich irgendwelcher Daten hast du bisher noch nichts geschrieben - das ist neu.
Und ohne weiterführende Angaben, was womit verglichen werden soll und was dann warum passieren soll, kann hier niemand etwas dazu sagen.
Gruß Werner
AW: Werte aus anderer Datei auslesen
18.03.2019 11:32:37
Philip
Hallo Zusammen,
ich sehe gerade, dass mein zweiter Beitrag gar nicht gesendet wurde.
Das tut mir leid, war wohl mein Fehler.
Der Vorschlag von Werner ist im Prinzip so umsetzbar.
Jedoch wollte ich davon weg kommen die Daten jeden Tag manuell zu kopieren.
Die Sache ist wie folgt:
Datei "A" ist meine Vorlage mit entsprechenden Formaten und Formeln.
Datei "B" wird aus einem Programm ausgespuckt. Die Werte in der Datei "B" sollen in die Tabelle der Datei "A".
Einen Tag später kommt Datei "C". Die Daten der Datei "C" sollen nun mit den nun gegebenen Werten in der Tabelle der Datei "A" verglichen werden.
Der Vergleich sollte wie folgt aussehen:
Ausschlaggebend ist die Spalte "OrderConfID" oder "Nummer". In Datei "C" sind nun Zeilen unter "OrderConfID", welche identisch sind mit den Werten aus der Tabelle der Datei "A". Wenn eine Nummer doppelt ist, soll diese aus der Datei "A" gelöscht/ausgeschnitten werden und in eine andere Tabelle/ein anderes Arbeitsblatt in der Datei "A" übertragen werden.
Ist dies denn grundsätzlich möglich? Oder vielleicht ist dies auch auf anderen Wegen erreichbar?
Datei "A": https://www.herber.de/bbs/user/128468.xlsx
Datei "B": https://www.herber.de/bbs/user/128469.xlsx
Datei "C": https://www.herber.de/bbs/user/128470.xlsx
Anzeige

340 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige