Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1788to1792
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

Daten importieren mit Zellenbezug

Daten importieren mit Zellenbezug
22.10.2020 01:14:56
Si
Hallo liebes Forum!
Ich habe jetzt einige Stunden nach einer Lösung für ein Makro gesucht, jedoch nur Fragmente gefunden, die mir nicht wirklich helfen.
Es geht darum, immer eine bestimmte Range aus Tabellenblatt1 aus einer anderen (Excel)Datei zu importieren. Vom Grundsatz her kein Problem, wenn nicht die Hürde besteht, dass jeden Tag eine andere Datei zu importieren ist, heißt, der Pfad und der Dateiname stets dynamisch ist.
Beispiel:
Pfad der zu importierenden Datei: C:\Beispiel\KW1\Montag, 01.01.2020.xls, Dienstag, 02.01.2020.xls, Mittwoch, 03.01.2020.xls, Donnerstag, 04.01.2020.xls, Freitag, 05.01.2020.xls.... bis C:\Beispiel\KW53\...Freitag, 31.12.2020.xls
Bis C:\Beispiel\ ist der Pfad immer konstant, aber je nach Tagesdatum und KW ist das Auslesen aus einem anderen Unterordner und natürlich einer anderen Datei notwenig.
Mein Ansatzpunkt ist nun der, dass ich in meiner Datei in Tabelle1, B2 das Tagesdatum generieren lasse und in C2 die aktuelle KW.
Nun aber komme ich nicht dahinter, wie ich es hinbekomme, dass das Makro folgendes macht:
Aus C:\Beispiel\Tabelle1C2 & Tabelle1B2 die entsprechende Datei findet und und die Range(z.B. A1:D100) in Tabelle2 A1 einfügt.
Jemand eine Idee?

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten importieren mit Zellenbezug
22.10.2020 02:08:20
Werner
Hallo,
teste mal:
Public Sub Import()
Dim strPfad As String, wbInput As Workbook
Application.ScreenUpdating = False
With ThisWorkbook.Worksheets("Tabelle2")
strPfad "C:\Beispiel\" & .Cells(2, "C") & "\" & .Cells(2, "B") & ".xlsx"
Set wbInput = Workbooks.Open(strPfad)
wbInput.Worksheets("Tabelle1").Range("A1:D100").Copy
.Cells(1, "A").PasteSpecial Paste:=xlPasteValues
wbInput.Close False
End With
Set wbInput = Nothing
End Sub
In B2 steht der Dateiname ohne Dateierweiterung
In C2 steht das Verzeichnis ohne Backslash am Ende
Den Blattnamen, aus dem die Daten kommen, mußt du im Code noch anpassen.
Sicher, dass das .xls Dateien sind? Du gibst Excel 2016 an, dann wären das .xlsx
Gruß Werner
Anzeige
AW: Daten importieren mit Zellenbezug
22.10.2020 10:14:38
Si
Hallo Werner und schon mal vielen Dank für deine Hilfe.
Ich habe das Makro entsprechend übernommen und wollte es ausprobieren.
Leider kam dann jedoch eine Fehlermeldung, dass die Datei in C:\Beispiel\\.xlsx nicht gefunden werden kann. Es scheint, dass das Makro wohl nicht den Inhalt der Zellen für den Unterordnernamen und den Dateinamen ausliest. Kann es daran liegen, dass sowohl KW, als auch Tagesdatum durch eine Formel generiert sind?
Und sorry, bei der Excel-Anwendung habe ich mich verdaddelt - ich nutze Excel2013.
Grüße
Si Mon
AW: Daten importieren mit Zellenbezug
22.10.2020 11:09:15
Si
Okay, kleiner Nachtrag - den Fehler, warum er den Pfad nicht richtig gefunden hat, habe ich lösen können. Ein kleines Problem bleibt jedoch, welches das Öffnen der Dateien verhindert.
Ich habe in B2 das Tagesdatum mit =Heute() definiert und durch Zellformation die Ausgabe angepasst, dass eben nicht nur 22.10.2020 in der Zelle steht, sondern Donnerstag, 22.10.2020.
Das Makro sucht jedoch nur nach einer Datei, die 22.10.2020 heißt und nicht Donnerstag,22.10.2020.
Muss in dem Fall bei der Pfadsuche die Formatierung mit berücksichtigt werden?
Anzeige
AW: Daten importieren mit Zellenbezug
22.10.2020 13:01:45
Werner
Hallo,
Public Sub Import()
Dim strPfad As String, wbInput As Workbook
Application.CutCopyMode = False
With ThisWorkbook.Worksheets("Tabelle2")
strPfad = "C:\Beispiel\" & .Cells(2, "C") & "\" & .Cells(2, "B").Text & ".xlsx"
Set wbInput = Workbooks.Open(strPfad)
Application.DisplayAlerts = False
wbInput.Worksheets("Tabelle1").Range("A1:D100").Copy
.Cells(1, "A").PasteSpecial Paste:=xlPasteValues
wbInput.Close False
End With
Application.CutCopyMode = False
Set wbInput = Nothing
End Sub
Gruß Werner
Gruß Werner
AW: Daten importieren mit Zellenbezug
22.10.2020 13:44:02
Si
Hallo Werner!
Vielen Dank für deine Hilfe, jetzt funktioniert das Makro genau so, wie es soll!
Ich hoffe, dass ich irgendwann selbstständig in der Lage sein werde Makros so gut programmieren zu können! Oft sind es ja nur Kleinigkeiten, die einen aber echt in den Wahnsinn treiben können! Aber schön, wenn man hier auf die Hilfe anderer bauen kann, wenn man mal nicht weiter weiß!
Anzeige
Gerne u. Danke für die Rückmeldung. o.w.T.
22.10.2020 14:38:02
Werner
AW: Daten importieren mit Zellenbezug
22.10.2020 19:53:58
Si
Ich nochmal.... die Hilfe, die ich hier bekommen habe, hat wunderbar in meiner Beispieldatei funktioniert. Nun wollte ich das Ganze natürlich für die Datei auf der Arbeit ausarbeiten.
Dazu habe ich nun folgenden Code:
Option Explicit
Sub copieren()
Dim strPfad As String, wbInput As Workbook
Application.CutCopyMode = False
With ThisWorkbook.Worksheets("Invision")
strPfad = "W:\intranet\Teamtreffen\InVison_Listen\" & .Cells(1, "L") & "\" & .Cells(1, "K" _
) & ".xlsm"
Set wbInput = Workbooks.Open(strPfad)
Application.DisplayAlerts = False
wbInput.Worksheets("Tabelle1").Range("A1:D100").Copy
.Cells(2, "A").PasteSpecial Paste:=xlPasteValues
wbInput.Close False
End With
Application.CutCopyMode = False
Set wbInput = Nothing
End Sub

Wenn ich das Makro starten möchte, dann sehe ich auch, dass er genau den richtigen Pfad anspricht und ich weiß auch, dass die Datei dort liegt. Aber es führt dennoch nicht die Funktion aus.
Es erscheint der Fehlerhinweis: Leider konnte "Pfad...\ nicht gefunden werden (es wird der richtige Pfad genannt). Ist es möglich, dass der Pfad verschoben, umbenannt oder gelöscht wurde?
Klicke ich dann auf okay öffnet sich der VBA-Editor und weist den Laufzeitfehler '1004' aus, wo steht, dass auf die gewünschte Datei nicht zugegriffen werden kann, Gründe:
- Name des Dokuments oder Pfad nicht vorhanden --> doch, ist er!
- Das Dokument wird von einem anderen Programm verwendet --> ja, es handelt sich um eine Liste, die auch in einer anderen Excel eingelesen wird - diese Datei MUSS auch den ganzen Tag über geöffnet sein und wird auch ggf. durch einen anderen Nutzer bedient.
-Der Name der Arbeitsmappe, die gespeichert werden soll, ist identisch zu dem Namen eines anderen Dokuments, welches schreibgeschützt ist. --> keine Ahnung, was das Programm mir sagen will?!
Fakt: Wenn ich die Datei manuell/händisch aufrufe, erhalte ich keine Fehlermeldung. Es scheint wohl daran zu liegen, dass ich es über ein Makro mache.
Ich will an der Datei aber keine Änderungen vornehmen, sondern lediglich einen bestimmten Bereich kopieren.
Gibt es eine Möglichkeit, diese Fehlermeldung zu umgehen? Ggf. durch einen Zusatz, o.ä.? Mit der Ergänzung "ReadOnly:=True" etc. habe ich es bereits probiert - klappt leider nicht.
Ich hoffe, es kann mir jemand helfen? Bin für jede Antwort dankbar!!
Anzeige
AW: Daten importieren mit Zellenbezug
22.10.2020 21:46:21
Si
Nachtrag:
Es wird folgender Bereich im Debugger markiert:
Set wbInput = Workbooks.Open(strPfad, UpdateLinks:=False, ReadOnly:=True)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige