Anzeige
Archiv - Navigation
1956to1960
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 in eine geschlossene Datei kopieren

Daten in eine geschlossene Datei kopieren
10.01.2024 10:30:42
Kettenriss
Als neuer Teilnehmer grüsse ich alle. Meine Excel-Kenntnisse stufe ich als gut ein, mein Wissen betreffend Makro ist jedoch eher bescheiden. Ich habe folgendes Problem:

In einer Tabelle erfasse ich meine E-Bike Touren. Insbesondere notiere ich nach einer Tour den Reststrom im Akku, allenfalls die Zwischenladung während der Tour zusammen mit der Strecke (Kilometer) und die gesamthaft bewältigten Höhenmeter. In einer zweiten, geschlossenen Tabelle möchte ich mit den einkopierten Daten berechnen, wie viele Höhenmeter mit einem vollen Akku möglich gewesen wären. Grundsätzlich funktioniert alles unter der Voraussetzung, dass sich beide Dateien (Bike-Erfassen.xlsm und Bike-Akku.xlsm) direkt im Laufwerk D:\ befinden. Wenn ich beide Dateien im Unterverzeichnis D:\Daten\Bike-Touren\ einkopiere und mein Makro entsprechen Anpasse, funktioniert es nicht mehr. Ich bekomme vom Makro die Fehlermeldung, dass das Verzeichnis oder die Datei nicht vorhanden sei. Nachfolgend könnt ihr mein Makro - eben das welches ohne Unterverzeichnis (also direkt in D:\ gespeichert) funktioniert einsehen. Wo liegt der "Hund" begraben? Danke im Voraus für die Hilfestellung. und Gruss, Kettenriss

Sub Akku_kopieren() ' Daten in geschlossene Datei kopieren

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:\" ' Datenverzeichnis
sDatei = "Bike-Akku.xlsm" ' Dateiname mit Endung in welche die Daten kopiert werden

' 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("Erfassen") ' Name Tagellenblatt Originaldatei Bike-Erfassen.xlsm
Set WkSh_Z = Workbooks(sDatei).Worksheets("Akku") ' Name Tabellenblatt Bike-Akku.slsm

WkSh_Q.Cells.Range("A12:F171").Copy Destination:=WkSh_Z.Range("A35:F194") ' Datum bis und mit Zwischenladung
WkSh_Q.Cells.Range("H12:H171").Copy Destination:=WkSh_Z.Range("G35:G194") ' Kilometer
WkSh_Q.Cells.Range("Q12:Q171").Copy Destination:=WkSh_Z.Range("H35:H194") ' Höhenmeter

Workbooks(sDatei).Close SaveChanges:=True

Application.ScreenUpdating = True

MsgBox "Die Daten wurden erfolgreich übergeben.", _
64, " Information für " & Application.UserName

End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten in eine geschlossene Datei kopieren
10.01.2024 11:06:41
daniel
Hi
wenn die DIR-Funktion ein "" ergibt, dann existiert die Datei im angegebenen Pfad nicht.
vielleicht hast du dich irgendwo vertippt?
du hast ihn hier zwar drin aber in solchen Fällen vergisst man gerne mal den letzten Backslash zwischen Ordner und Dateinamen und schreibt nur:

sPfad = "D:\Daten\Bike-Touren"
anstelle von
sPfad = "D:\Daten\Bike-Touren\"

und die Datei "Bike-TourenBike-Akku.xlsm" gibts natürlich nicht im Verzeichnis "D:\Daten"

denn korrekten Pfad kannst du dir auch Anzeigen lassen.
öffne die Datei und gib im Direktfenster den Befehl:
?ActiveWorkbook.FullName
ein, dann kannst du den vollständigen Namen inklusive Pfad von dort kopieren und in deinen Code einfügen, dass vermeidet Tippfehler.

Gruß Daniel
Anzeige
AW: Daten in eine geschlossene Datei kopieren
10.01.2024 11:40:11
Kettenriss
Grüezi Daniel
Herzlichen Dank für Deine schnelle Antwort. Nun hat alles geklappt. Allerdings verlangt mein Makro nach - sPfad = "D:\Daten\Bike-Touren" - einen Backslash.

Nun sieht es so aus und es funktioniert. Vielleicht sucht jemand anders nach dem gleichen Problem, also kopiere ich an dieser Stelle das nun funktionierende Makro ein.
---------------------------------------------------------------------------------------
Sub Akku_kopieren() ' Daten in geschlossene Datei kopieren

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:\Daten\Bike-Touren\" ' Datenverzeichnis
sDatei = "Bike-Akku.xlsm" ' Dateiname mit Endung in welche die Daten kopiert werden

' 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("Erfassen") ' Name Tagellenblatt Originaldatei Bike-Erfassen.xlsm
Set WkSh_Z = Workbooks(sDatei).Worksheets("Akku") ' Name Tabellenblatt Bike-Akku.slsm

WkSh_Q.Cells.Range("A12:F171").Copy Destination:=WkSh_Z.Range("A35:F194") ' Datum bis und mit Zwischenladung
WkSh_Q.Cells.Range("H12:H171").Copy Destination:=WkSh_Z.Range("G35:G194") ' Kilometer
WkSh_Q.Cells.Range("Q12:Q171").Copy Destination:=WkSh_Z.Range("H35:H194") ' Höhenmeter

Workbooks(sDatei).Close SaveChanges:=True

Application.ScreenUpdating = True

MsgBox "Die Daten wurden erfolgreich übergeben.", _
64, " Information für " & Application.UserName

End Sub
---------------------------------------------------------------------------------------
Danke und en schöne Tag
Kettenriss
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige