Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1960to1964
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 aus offner Datei in schreibgeschützte Datei einfügen

Daten aus offner Datei in schreibgeschützte Datei einfügen
12.01.2024 10:07:54
Kettenriss
Grüezi allerseits. Ich habe ein Makro mit welchem Auswahldaten in eine geschlossene Datei einkopiert werden. Das Makro funktioniert einwandfrei, wenn die geschlossene Datei nicht schreibgeschützt ist. Mein Problem besteht darin, dass ich zu wenig VBA-Kenntnisse habe an welcher Stelle im Makro der Schreibschutz aufgehoben, bzw. nach dem Kopiervorgang wieder aktiviert wird. Vielleicht ist es möglich, dass jemand die erforderlichen Befehle gleich am richtigen Ort in mein beigefügtes Makro einfügen kann. Danke für die Hilfeleistung und allen ein schöner Tag, 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:\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 Tabellenblatt 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
______________________________________

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Rückfrage: welchen Schreibschutz meinst Du?
12.01.2024 12:37:56
Heli
Hi,

Rückfrage dazu: Schreibschutz = Blattschutz oder Datei ist schreibgeschützt (weil z. B. schon von jemand anderem geöffnet)?

Servus, Heli
AW: Rückfrage: welchen Schreibschutz meinst Du?
12.01.2024 13:57:50
Kettenriss
Hallo Heli. Sorry für meine Ungenauigkeit. Ich meine den Blattschutz. Danke für Deine Meldung.
Kettenriss
AW: Rückfrage: welchen Schreibschutz meinst Du?
12.01.2024 14:03:15
Heli
Hi,

dazu musst Du vor dem kopieren den Blattschutz aufheben

WkSh_Q.Unprotect, Password:="DeinPasswort" '(sofern eines gesetzt ist)

... und nach dem kopieren wieder setzen

WkSh_Q.Protect, Password:="DeinPasswort" '(sofern eines gesetzt ist - und natürlich die restlichen Schutzeinstellungen nicht vergessen wie AllowFiltering etc.)

Am Besten mal mit dem Rekorder aufzeichnen dann siehst Du gleich die Logik für Protect und Unprotect :-)

Servus, Heli
Anzeige
AW: Rückfrage: welchen Schreibschutz meinst Du?
12.01.2024 14:33:38
Kettenriss
Entschuldige Heli, dass ich immer noch einen Knopf in meiner Leitung habe. Leider sind meine VBA-Kenntnisse noch bescheiden. Wo genau vor dem Kopieren bzw. nach dem kopieren müssten die Befehle eingesetzt werden? Darf ich Dich bitten sie gleich in mein nachfolgendes Makro einzusetzen. Danke für Deine Hilfe. Ketttenriss
------------------
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 Tabellenblatt 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
------------------
Anzeige
AW: Rückfrage: welchen Schreibschutz meinst Du?
12.01.2024 18:25:15
Heli
Hi,

hier in Deinem Code mal eingefügt ohne weitere Bedingungen beim Sperren:

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

'Blattschutz aufheben
WkSh_Z.Unprotect Password:="DeinPasswort" 'Anpassen!

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

WkSh_Z.Protect Password:="DeinPasswort" 'Anpassen!

Workbooks(sDatei).Close SaveChanges:=True

Application.ScreenUpdating = True

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

End Sub


Ungetestet!

Servus, Heli
Anzeige
AW: Rückfrage: welchen Schreibschutz meinst Du?
12.01.2024 19:40:59
Kettenriss
Guten Abend Heli. Ganz herzlichen Dank für Deine Hilfe. Es funktioniert alles so wie ich es wollte. Mit jedem Ratschlag in diesem Forum kann ich etwas dazu lernen. Das ist wunderbar. Nochmals Danke und Gruss, Kettenriss

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige