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

Forumthread: Daten in geschlossene Datei exportieren

Daten in geschlossene Datei exportieren
21.12.2015 16:39:41
Uwe
Hallo zusammen,
gerade eben zerbreche ich mir den Kopf darüber, wie es gelingen kann, via VBA Daten aus einem Tabellenblatt in eine geschlossene Datei zu exportieren. Gewöhnlich lässt sich das ja schon mit dem nachfolgenden Code bewerkstelligen:
Public Sub Schreiben()
Dim sPfad         As String     ' der Ordner-Pfad der Excel-Mappen
Dim sDatei        As String     ' die zu beschreibende Datei
Dim WkSh_Q        As Worksheet  ' das Quell-Tabellenblatt - die Herkunft
Dim WkSh_Z        As Worksheet  ' das Ziel-Tabellenblatt - das Ergebnis
sPfad = "D:\Anwendungsdaten\Exceldaten\Excel-Dateien\"
sDatei = "Dialogdaten.xlsm"
Application.ScreenUpdating = False
If Dir(sPfad & sDatei)  "" Then
Workbooks.Open (sPfad & sDatei)
ThisWorkbook.Activate
'Application.ActiveWindow.Visible = False
Else
MsgBox "Den angegebenen Ordner """ & sPfad & """" & Chr(10) & _
"und/oder die gesuchte Datei """ & sDatei & """ gibt es nicht!", _
16, "   Hinweis für " & Application.UserName
Exit Sub
End If
Set WkSh_Q = ThisWorkbook.Worksheets("Vorgabedaten")
Set WkSh_Z = Workbooks(sDatei).Worksheets("Vorgabedaten")
WkSh_Q.Cells.Range("B1:B27").Copy Destination:=WkSh_Z.Range("B1:B27")
Workbooks(sDatei).Close SaveChanges:=True
Application.ScreenUpdating = True
MsgBox "Die Daten wurden erfolgreich übergeben.", _
64, "   Information für " & Application.UserName
End Sub
Wie aber bekomme ich`s hin, die bereits in der Zieldatei (hier Zelle "B1:B27") vorhandenen Daten - ohne Rückfrage zu überschreiben? Das nämlich funktioniert in diesem Codebeispiel nämlich nicht. ...
Vielen Dank für Eure Hilfe
Uwe

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Application.DisplayAlerts = False
21.12.2015 17:16:33
RPP63
Hi!
Siehe Betreff.
Muss nicht unbedingt wieder auf True gestellt werden, schadet aber auch nicht ;-)
Gruß Ralf

AW: Daten in geschlossene Datei exportieren
21.12.2015 17:16:45
Hajo_Zi
Hallo Uwe,
ich sehe keinen Grund warum das nicht gehen soll.
In welcher Zeile kommt ein Fehler?
Tabelle sollte nicht geschützt sein.
Gruß Hajo

Anzeige
AW: Daten in geschlossene Datei exportieren
21.12.2015 19:43:28
Uwe
Hallo Hajo,
jep, die Tabelle ist tatsächlich nicht geschützt. Und der Fehler erscheint stets bei:
WkSh_Q.Cells.Range("B1:B27").Copy Destination:=WkSh_Z.Range("B1:B27")
Sobald ich in der Eintragung WkSh Z einen anderen Bereich auswähle, funktioniert`s. Das aber ist eindeutig nicht gewollt!
Tja ...
Besten Dank
Uwe

Anzeige
AW: Daten in geschlossene Datei exportieren
21.12.2015 19:53:12
Hajo_Zi
Hallo Uwe,
Du musst das Problem selber lösen, was wohl daran liegt das ich nicht auf fremde Rechner schaue.
Bei mir geht der Code ohne Probleme.
Ich bin dann raus.
Gruß Hajo

AW: Daten in geschlossene Datei exportieren
21.12.2015 20:45:07
Werner
Hallo Uwe,
dann lösch halt vor dem Kopiervorgang den Zellbereich in seinem Zielblatt.
Gruß Werner
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Daten in eine geschlossene Datei exportieren


Schritt-für-Schritt-Anleitung

Um Daten aus einem Excel-Tabellenblatt in eine geschlossene Datei zu exportieren, kannst Du den folgenden VBA-Code verwenden. Dieser Code öffnet die Zieldatei, kopiert die Daten und schließt die Datei wieder. Um bestehende Daten ohne Rückfrage zu überschreiben, solltest Du vor dem Kopiervorgang den Zielbereich löschen.

Public Sub Schreiben()
    Dim sPfad         As String     ' der Ordner-Pfad der Excel-Mappen
    Dim sDatei        As String     ' die zu beschreibende Datei
    Dim WkSh_Q        As Worksheet  ' das Quell-Tabellenblatt - die Herkunft
    Dim WkSh_Z        As Worksheet  ' das Ziel-Tabellenblatt - das Ergebnis

    sPfad = "D:\Anwendungsdaten\Exceldaten\Excel-Dateien\"
    sDatei = "Dialogdaten.xlsm"
    Application.ScreenUpdating = False

    If Dir(sPfad & sDatei) <> "" Then
        Workbooks.Open (sPfad & sDatei)
        ThisWorkbook.Activate

        ' Lösche den Zielbereich, bevor Du die neuen Daten kopierst
        Set WkSh_Z = Workbooks(sDatei).Worksheets("Vorgabedaten")
        WkSh_Z.Range("B1:B27").ClearContents

        Set WkSh_Q = ThisWorkbook.Worksheets("Vorgabedaten")
        WkSh_Q.Cells.Range("B1:B27").Copy Destination:=WkSh_Z.Range("B1:B27")

        Workbooks(sDatei).Close SaveChanges:=True
        Application.ScreenUpdating = True
        MsgBox "Die Daten wurden erfolgreich übergeben.", _
        64, "   Information für " & Application.UserName
    Else
        MsgBox "Den angegebenen Ordner """ & sPfad & """ und/oder die gesuchte Datei """ & sDatei & """ gibt es nicht!", _
        16, "   Hinweis für " & Application.UserName
    End If
End Sub

Häufige Fehler und Lösungen

  • Fehler beim Kopieren der Daten: Wenn Du beim Kopieren der Daten einen Fehler erhältst, überprüfe, ob die Zieltabelle geschützt ist. Ein geschütztes Blatt kann keine Daten übernehmen.
  • Fehlende Datei: Stelle sicher, dass der Pfad zur Datei korrekt ist und dass die Datei tatsächlich existiert.
  • Keine Rückfrage beim Überschreiben: Um sicherzustellen, dass vorhandene Daten überschrieben werden, verwende WkSh_Z.Range("B1:B27").ClearContents vor dem Kopieren.

Alternative Methoden

Anstelle von VBA kannst Du auch Power Query verwenden, um Daten aus einer geschlossenen Datei zu importieren. Dies ist besonders nützlich, wenn Du regelmäßig Daten importieren musst, ohne VBA zu verwenden. Du kannst die Daten abfragen und direkt in Deine Excel-Tabelle laden.

  1. Gehe zu „Daten“ > „Abfragen und Verbindungen“.
  2. Wähle „Daten abrufen“ > „Aus Datei“ > „Aus Arbeitsmappe“.
  3. Wähle die geschlossene Datei aus und wähle die entsprechende Tabelle aus.

Praktische Beispiele

Ein Beispiel zur Anwendung des VBA-Codes:

Angenommen, Du hast eine Excel-Datei mit Verkaufsdaten, die Du regelmäßig in eine zentrale Datei übertragen möchtest. Mit dem obigen VBA-Code kannst Du einfach die Verkaufsdaten aus dem Quellblatt in das Zielblatt der geschlossenen Datei übertragen, ohne die bestehende Daten manuell zu löschen.


Tipps für Profis

  • Automatisierung: Du kannst den VBA-Code in ein Makro umwandeln und es an einen Button auf Deinem Arbeitsblatt binden, um die Datenübertragung zu automatisieren.
  • Fehlerbehandlung: Implementiere eine Fehlerbehandlungsroutine, um das Skript robuster zu machen. Das kann helfen, unerwartete Probleme während der Ausführung zu beheben.
  • Testen: Teste den Code in einer Kopie Deiner Dateien, um sicherzustellen, dass alles wie gewünscht funktioniert, bevor Du ihn in der Produktion verwendest.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die Daten immer korrekt überschrieben werden?
Lösche den Zielbereich vor dem Kopieren der Daten mit ClearContents, um sicherzustellen, dass keine alten Daten stehen bleiben.

2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der Code sollte in den meisten modernen Excel-Versionen ab Excel 2010 funktionieren. Stelle jedoch sicher, dass die erforderlichen Berechtigungen vorhanden sind, um auf die Dateien zuzugreifen.

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