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

Forumthread: VBA Daten aus variabler Datei kopieren

VBA Daten aus variabler Datei kopieren
06.12.2017 12:47:24
Stefan
Hallo zusammen
ich habe eine Arbeitsdatei welche wöchentlich den Namen ändert z.b. Arbeitsdatei KW1 oder Arbeitsdatei KW2 usw. (C\Daten\Tagesdaten\Arbeitsdatei KW1.xls)
In diesen Dateien befinden sich 7 Tabellen welche für den Wochentag stehen und demenstprechend mit Mo; Di; Mi fest umbenannt wurden.
Diese Tabellenblätter sind vom Aufbau stets gleich.
Ich muß nun aus einer anderen Datei (C\Daten\Auswertung.xls) immer Daten vom aktuellen Tabellenblatt (Tag) der o.g. Arbeitsdatei (z.B. die Zellen A1:B2) kopieren und in die Auswertungsdatei (Tabelle1)einfügen.
Zusammenfassend müßte Code folgendes ausführen:
1. Abfrage welche Datei öffnen - (auch Schreibgeschützt öffnen)
2. Abfrage aus welchem Tabellenblatt - oder autom. aktuellen Tag (Tabellenblatt) auswählen
3. Bereich a1:b2 kopieren (Arbeitsdatei KW1.xls)
4. Datei schliesen.(Arbeitsdatei KW1.xls)
5 In Tabelle 1 - A1:B2 einfügen (Auswertung.xls)
Wie, oder kann man dies überhaupt per VPA umsetzen?
Vielen Dank und liebe Grüße
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Daten aus variabler Datei kopieren
06.12.2017 13:19:08
Burak
Dim importdatei As String
Dim tabellenblatt As Integer
importdatei = Application.GetOpenFilename
tabellenblatt = "Bitte die Tabellenblattnummer eingeben"
Workbooks.Open FileName:=importdatei, UpdateLinks:=3, Notify:=False
Sheets(tabellenblatt).Cells("A1:B2").Copy
Windows("Auswertung.xls").Activate
Sheets(1).Range("A1").PasteSpecial Paste:=xlValues
Windows("Arbeitsdatei KW1.xls").Close
Anzeige
AW: VBA Daten aus variabler Datei kopieren
06.12.2017 13:20:01
Burak
entschuldige bitte, die 5. Zeile muss natürlich lauten
tabellenblatt = InputBox("Bitte die Tabellenblattnummer eingeben")
AW: VBA Daten aus variabler Datei kopieren
07.12.2017 12:34:35
Stefan
Super Danke für Deine Hilfe.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA Daten aus variabler Datei kopieren und einfügen


Schritt-für-Schritt-Anleitung

Um mit VBA Daten aus einer variablen Datei zu kopieren und in eine andere Excel-Datei einzufügen, befolge diese Schritte:

  1. Dateiauswahl: Öffne ein Dialogfeld, um die gewünschte Datei auszuwählen.
  2. Tabellenblatt auswählen: Frage den Nutzer, aus welchem Tabellenblatt die Daten kopiert werden sollen.
  3. Daten kopieren: Kopiere die gewünschten Zellen (z.B. A1:B2) aus dem ausgewählten Tabellenblatt.
  4. Zielarbeitsmappe aktivieren: Aktiviere die Zielarbeitsmappe, in die die Daten eingefügt werden sollen.
  5. Daten einfügen: Füge die kopierten Daten in den gewünschten Bereich ein.
  6. Datei schließen: Schließe die Quell-Datei, um Speicherplatz freizugeben.

Hier ist ein Beispiel für einen VBA-Code, der diese Schritte umsetzt:

Sub DatenKopieren()
    Dim importdatei As String
    Dim tabellenblatt As String
    importdatei = Application.GetOpenFilename("Excel-Dateien (*.xls; *.xlsx), *.xls; *.xlsx")

    If importdatei <> "False" Then
        tabellenblatt = InputBox("Bitte die Tabellenblattnummer eingeben")
        Workbooks.Open FileName:=importdatei, UpdateLinks:=3, Notify:=False
        Sheets(tabellenblatt).Range("A1:B2").Copy
        Windows("Auswertung.xls").Activate
        Sheets(1).Range("A1").PasteSpecial Paste:=xlValues
        Workbooks("Arbeitsdatei KW1.xls").Close SaveChanges:=False
    End If
End Sub

Häufige Fehler und Lösungen

  1. Fehler bei der Dateiauswahl: Wenn das Dialogfeld nicht geöffnet wird, stelle sicher, dass die richtige Datei ausgewählt wird.

    • Lösung: Überprüfe den Dateipfad und die Dateiformate.
  2. Ungültiges Tabellenblatt: Wenn das angegebene Tabellenblatt nicht existiert, kann ein Fehler auftreten.

    • Lösung: Stelle sicher, dass der Benutzer die richtige Tabellenblattnummer angibt.
  3. Kopieren ohne Öffnen: Wenn du Daten aus einer Datei kopieren möchtest, ohne sie zu öffnen, kannst du eine andere Methode verwenden (s. Alternative Methoden).


Alternative Methoden

Falls du Daten aus einer anderen Excel-Datei importieren möchtest, ohne sie zu öffnen, kannst du ADO (ActiveX Data Objects) verwenden, um eine Verbindung zur Excel-Datei herzustellen. Hier ist ein Beispiel:

Sub DatenImportierenOhneÖffnen()
    Dim conn As Object
    Dim rs As Object
    Dim strSQL As String
    Dim dateiPfad As String

    dateiPfad = "C:\Daten\Arbeitsdatei KW1.xls"

    Set conn = CreateObject("ADODB.Connection")
    conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dateiPfad & ";Extended Properties='Excel 8.0;HDR=Yes';"

    strSQL = "SELECT * FROM [Mo$]" ' Beispiel für das Tabellenblatt Mo
    Set rs = conn.Execute(strSQL)

    ' Daten in die Zielarbeitsmappe einfügen
    Sheets(1).Range("A1").CopyFromRecordset rs

    rs.Close
    conn.Close
End Sub

Praktische Beispiele

  1. Daten von Montagsblatt kopieren: Um spezifisch Daten vom Montagsblatt einer Arbeitsdatei zu kopieren, passe die strSQL-Abfrage entsprechend an.

  2. Daten von mehreren Blättern: Du kannst eine Schleife verwenden, um von verschiedenen Tabellenblättern in einer Arbeitsdatei Daten zu kopieren und in deine Auswertungsdatei einzufügen.


Tipps für Profis

  • Automatisierung: Überlege, ob du die Abfragen in eine Benutzerform integrieren kannst, um die Bedienung zu vereinfachen.
  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um sicherzustellen, dass der Code auch bei unerwarteten Ereignissen zuverlässig funktioniert.
  • Datenüberprüfung: Füge eine Datenüberprüfung hinzu, um sicherzustellen, dass die kopierten Daten den erwarteten Formaten entsprechen.

FAQ: Häufige Fragen

1. Kann ich Daten aus mehreren Dateien gleichzeitig kopieren?
Ja, du kannst eine Schleife verwenden, um durch eine Liste von Dateipfaden zu iterieren und die Daten in die Zielarbeitsmappe einzufügen.

2. Wie kann ich sicherstellen, dass die Datei nicht geöffnet wird, wenn ich Daten kopiere?
Verwende ADO, um eine Verbindung zur Excel-Datei herzustellen und die Daten direkt zu importieren, ohne die Datei zu öffnen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige