Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen

Daten aus geschlossener Datei in Zieldatei kopiere


Betrifft: Daten aus geschlossener Datei in Zieldatei kopiere von: Andreas
Geschrieben am: 06.09.2019 09:48:23

Hallo Excelfreunde,

Habe folgendes Problem bei dem ich dringend Eure Hilfe benötige.
Habe eine Master QuellDatei.xlsm auf Netzlaufwerk H:\
und eine ZielDatei.xlsm welche sich auf einem anderen Netzlaufwerk befindet.
Im Moment teste ich die beiden Dateien im gleichen Ordner auf Netzlaufwerk H:\

was möchte ich tun:
Die Daten aus dem Tabellenblatt "Erfassung_Bearbeitung Zellbereich ("A5:NA13")" sollen in die ZielDatei.xlsm an gleicher Stelle in das identisch gleiche Tabellenblatt "Erfassung_Bearbeitung Zellbereich ("A5:NA13")" eingefügt werden.
Grund dieser Vorgehensweise ist das mehrere Mitarbeiter mit den Daten der MasterDatei arbeiten müssen.
jeder Kollege holt sich über einen CommandButton im Tabellenblatt seiner Datei die Daten aus der MasterDatei
(es kann aber sein das die MasterDatei durch einen Mitarbeiter geöffnet ist oder noch bearbeitet wird. In diesem Fall soll das Makro aber auch funktionieren.

Hier mal mein Ansatz der aber nicht ganz funktioniert.



Sub WerteHolenRessorcenplanung()    'hat AndreasRohrbeck angepasst

Dim sPfad As String ' der Ordner-Pfad der Excel-Mappen
Dim sDatei_Quelle As String ' die Datei aus der die Daten geholt werden sollen
Dim sDatei_Ziel As String ' die Datei in die Daten importiert werden sollen
Dim WkSh_Q As Worksheet ' das Quell-Tabellenblatt - die Herkunft
Dim WkSh_Z As Worksheet ' das Ziel-Tabellenblatt - das Ergebnis



sPfad = "H:\SuS RB Süd\05Organisation\Team PM M2\"

sDatei_Quelle = "Ressorcenplanung 2019_Entwicklerversion_04.09.2019_Quelldatei.xlsm"             _
 _
 _
 _
 _
     'geändert Ursprung sDatei (jetzt sDatei_Quelle)
sDatei_Ziel = "Ressorcenplanung 2019_Entwicklerversion_05.09.2019_Zieldatei.xlsm"      'geä _
ndert Ursprung Zeile war noch nicht vorhanden (jetzt sDatei_Quelle)


Application.ScreenUpdating = False

If Dir(sPfad & sDatei_Quelle) <> "" Then
Workbooks.Open (sPfad & sDatei_Quelle)
ThisWorkbook.Activate
'Application.ActiveWindow.Visible = False
Else
MsgBox "Den angegebenen Ordner """ & sPfad & """" & Chr(10) & "und/oder die gesuchte Datei """ & _
 _
 _
 _
 _
 sDatei_Quelle & """ gibt es nicht!", 16, " Hinweis für " & Application.UserName
Exit Sub
End If

'+++++ ab hier komme ich selbst nicht mehr weiter +++++
'es sollen die Daten aus der "QuellDatei.xlsm" im Tabellenblatt "Erfassung_Bearbeitung" Zellen ( _
 _
 _
 _
 _
"NA5:NC13")
'in die Zieldatei "ZielDatei.xlsm" im Tabellenblatt "Erfassung_Bearbeitung" Zellen ("A5:NC13")   _
 _
 _
_
_
an gleicher Stelle eingetragen werden
'
Set WkSh_Z = Workbooks(sDatei_Ziel).Worksheets("Erfassung_Bearbeitung")  '=Originalzeile
'Set WkSh_Q = Workbooks(sDatei_Quelle).Worksheets("Erfassung_Bearbeitung")   'hat  _
AndreasRohrbeck angepasst   Daten von Datei HolmFriedrich
Set WkSh_Q = Workbooks(sDatei_Quelle).Worksheets("Erfassung_Bearbeitung") '=Originalzeile
'Set WkSh_Z = ThisWorkbook.Worksheets("Erfassung_Bearbeitung")  


With WkSh_Z
WkSh_Q.Cells.Range("A5:NC13:").Copy Destination:=.Range("NC5")
'.Range("A5:NC13").Value = .Range("ND5:NF:13").Value
End With
''Workbooks("Entwicklerversion_04.09.2019_Quelldatei.xlsm").Sheets("Erfassung_Bearbeitung"). _
Range("A5:NC13").Value.Copy Workbooks("Ressorcenplanung 2019_Entwicklerversion_05.09. _
2019_RohrbeckAndreas_05.09.2019.xlsm").Sheets("Erfassung_Bearbeitung").Range("A5: NN612").Value

'++++++++++++ bis hierhin meckert mir bei jeder Änderung die ich gemacht habe der Debugger

Workbooks(sDatei_Quelle).Close SaveChanges:=True
Application.DisplayAlerts = False
Application.EnableEvents = False
Application.ScreenUpdating = False

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

End Sub

wo liegt mein Fehler?
kann mir einer von Euch das Makro nach meiner Vorstellung anpassen?

für Eure Hilfe und Unterstützung bedanke ich mich bereits
Gruß Andreas

  

Betrifft: AW: Daten aus geschlossener Datei in Zieldatei kopiere von: Daniel
Geschrieben am: 06.09.2019 10:17:32

HI
öffne die Datei schreibgeschützt.
dann wird eine zeitgleiche Bearbeitung durch andere nicht gestört.

Workbooks.Open (sPfad & sDatei_Quelle, readOnly:=True)


Gruß Daniel


  

Betrifft: AW: Daten aus geschlossener Datei in Zieldatei kopiere von: Andreas
Geschrieben am: 06.09.2019 14:05:20

Hallo Daniel,

habe Deinen Vorschlag umgesetzt.
Das Makro habe ich jetzt nochmals verändert.
läuft bis Zeile
sDatei_Quelle.Sheets("Erfassung_Bearbeitung").Range("A5:NC13").Value.Copy.Datei_Ziel.Sheets("Erfassung_Bearbeitung").Range("A5:NC13").Value

hier meckert mir jetzt der Debugger.
Was mache ich falsch?

kannst du mir nochmals helfen?

hier mein geänderter Code:

Sub WerteHolenRessorcenplanung()
Dim sPfad As String ' der Ordner-Pfad der Excel-Mappen
Dim sDatei_Quelle As String ' die Datei aus der die Daten geholt werden sollen
Dim sDatei_Ziel As String ' die Datei in die Daten importiert werden sollen
Dim WkSh_Q As Worksheet ' das Quell-Tabellenblatt - die Herkunft
Dim WkSh_Z As Worksheet ' das Ziel-Tabellenblatt - das Ergebnis



sPfad = "H:\SuS RB Süd\05Organisation\Team PM M2\"

sDatei_Quelle = "Ressorcenplanung 2019_Entwicklerversion_04.09.2019_HolmFriedrich.xlsm"
sDatei_Ziel = "Ressorcenplanung 2019_Entwicklerversion_05.09.2019_RohrbeckAndreas.xlsm"


Application.ScreenUpdating = False

If Dir(sPfad & sDatei_Quelle) <> "" Then
Workbooks.Open (sPfad & sDatei_Quelle)
'Workbooks.Open (sPfad & sDatei_Quelle), ReadOnly:=True
ThisWorkbook.Activate
'Application.ActiveWindow.Visible = False
Else
MsgBox "Den angegebenen Ordner """ & sPfad & """" & Chr(10) & "und/oder die gesuchte Datei """ & _
 sDatei_Quelle & """ gibt es nicht!", 16, " Hinweis für " & Application.UserName
Exit Sub
End If



'+++++ ab hier komme ich selbst nicht mehr weiter +++++
'es sollen die Daten aus der "QuellDatei.xlsm" im Tabellenblatt "Erfassung_Bearbeitung" Zellen ( _
"NA5:NC13")
'in die Zieldatei "ZielDatei.xlsm" im Tabellenblatt "Erfassung_Bearbeitung" Zellen ("A5:NC13") _
an gleicher Stelle eingetragen werden

sDatei_Quelle.Sheets("Erfassung_Bearbeitung").Range("A5:NC13").Value.Copy.Datei_Ziel.Sheets(" _
Erfassung_Bearbeitung").Range("A5:NC13").Value

'End With
''Workbooks("Entwicklerversion_04.09.2019_Quelldatei.xlsm").Sheets("Erfassung_Bearbeitung"). _
Range("A5:NC13").Value.Copy Workbooks("Ressorcenplanung 2019_Entwicklerversion_05.09.2019_RohrbeckAndreas_05.09.2019.xlsm").Sheets("Erfassung_Bearbeitung").Range("A5: NN612").Value


Workbooks(sDatei_Quelle).Close SaveChanges:=True
Application.DisplayAlerts = False
Application.EnableEvents = False
Application.ScreenUpdating = False

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



  

Betrifft: AW: Daten aus geschlossener Datei in Zieldatei kopiere von: Piet
Geschrieben am: 06.09.2019 14:25:12

Hallo

ich sehe auf Anhieb einen Fehler in dieser Zeil, weiss aber nicht ob damit das Problem gelöst ist???
sDatei_Quelle.Sheets("Erfassung_Bearbeitung").Range("A5:NC13").Value.Copy .Datei_Ziel.Sheets("Erfassung_Bearbeitung").Range("A5:NC13").Value


Du kannst nicht hinter .Value noch den Copy Befehl setzen! Siehe .Value.Copy! Da spielt Excel wahrscheinlich nicht mit! Das sind zwei getrennte Befehle!
Entweder machst du .Copy und laesst das vorherige Value weg, oder mache es so: - .Range("A5:NC13").Value = .Datei_Ziel.Sheets usw. OHNE Copy Befehl.
Beides funktioniert. Bei Copy kopierst du aber auch alle Formate, Schriftfarben und Rahmen mit! Ohne Copy werden nur die Werte als Zahl od. Text übertragen.

Mein Rat ist aus fremden Dateien nur den reinen Text zu übertragen, den der Copy Befehl kopiert Intern, ohne das man es sieht, auch unerwünschten Müll mit!
Man beachte den feinen aber wichtigen Unterschied! zwischen Copy und - Nur Werte einfügen!!

mfg Piet


  

Betrifft: AW: Daten aus geschlossener Datei in Zieldatei kopiere von: Torsten
Geschrieben am: 06.09.2019 15:06:32

Hallo Piet,

das stimmt nicht zu 100%. Auch mit Copy kann man nur Werte uebertragen, naemlich wenn man dann _ zum einfuegen das

PasteSpecial xlPasteValues
benutzt.

An Andreas: Aendere deine Kopierzeile so in 2 Zeilen:
sDatei_Quelle.Sheets("Erfassung_Bearbeitung").Range("A5:NC13").Copy
Datei_Ziel.Sheets("Erfassung_Bearbeitung").Range("A5").PasteSpecial xlPasteValues

Den Rest des Codes hab ich mir jetzt aber noch nicht angesehen.

Gruss Torsten


  

Betrifft: AW: Daten aus geschlossener Datei in Zieldatei kopiere von: Andreas
Geschrieben am: 07.09.2019 16:55:17

An alle Helfer hier im Forum

Danke für die Unterstützung
hat super funktioniert
Gruß Andreas


  

Betrifft: OT: @Piet von: Luc:-?
Geschrieben am: 06.09.2019 15:21:51

Jen hatte dir heute morgen geantwortet, Piet;
mit weiteren Wünschen:
https://www.herber.de/forum/archiv/1708to1712/1710431_Formel_in_VBA_umwandeln.html#1711482
Gruß, Luc :-?


  

Betrifft: AW: OT: @Piet von: Piet
Geschrieben am: 06.09.2019 17:56:45

Hallo Luc & Jens

bin im Augenblick im Babysitter Einsatz und habe die Nachricht schlicht übersehen. Gedanklich etwas daneben. Danke für den Hinweis.
Schau es mir an, habe heute aber keine Zeit dafür....

mfg Piet


  

Betrifft: OT: Jen (f), nicht Jens (m), Piet! ;-) owT von: Luc:-?
Geschrieben am: 06.09.2019 19:34:24

:-?


Beiträge aus dem Excel-Forum zum Thema "Daten aus geschlossener Datei in Zieldatei kopiere"