VBA: Daten von einer in andere Datei schreiben
#1
Hallo zusammen,
ich stehe (mal wieder) vor einer Herausforderung. Und zwar habe ich eine Datei, in der ich alle Infos auf verschiedene Tabellenblätter von einem Masterblatt aus verlinke.
Nun würde ich gern für jedes dieser Tabellenblätter einen Button einfügen, der die gesammelten Infos auf Knopfdruck in eine andere Datei schreibt. Mein Code sieht bisher wie angehängt aus, funktioniert nur leider nicht... Hat jemand eine Idee?
Danke!


Code:
Private Sub CommandButton1_Click()

Const strZiel As String = "C:\Dokumente\Orga_01\Vorlage_B.xlsx"   'Pfad + Dateiname
Dim WB_B As Workbook
Dim WsQuelle As Worksheet
Dim WsZiel As Worksheet

'Quellesheet definieren
   Set WsQuelle = ThisWorkbook.Tabelle1 ' <= eventuell falsch angepasst? Hier muss der Name des Ausgangsblattes hin, oder?


 'Ziel öffnen
   Set WB_B = Workbooks.Open(strZiel)

'Zielsheet definieren:
   Set WsZiel = WB_B.Worksheets(1)              ' <= wie "richtig" anpassen?

'kopieren:
   WsZiel.Range("A1").Value = WsQuelle.Range("A1").Value


 End Sub


Private Sub UserForm_Click()

End Sub
Top
#2
Hallo Herr Dr...
ungetestet:

Code:
Set WsQuelle = ThisWorkbook.sheets("Tabelle1")
Code:
Set WsZiel = WB_B.Sheets(1)
Gruß der AlteDresdner
Gruß der AlteDresdner (Win11, Off2021)
[-] Folgende(r) 1 Nutzer sagt Danke an AlterDresdner für diesen Beitrag:
  • DrWahnsinn
Top
#3
Hallo kurze Frage,

Wie kann ich den Inhalt aus einem Tabellenblatt kopieren und in einer anderen Datei in ein Tabellen Blatt einfügen, rein über Marco und ohne dass man viel davon sieht? Quasi Botton drücken, er öffnet die andere Datei, überschreibt die Daten, speichert und schließt.
 
Gruß
Top
#4
Hallo,
habe deine Formel mal Probiert, klappt auch. wie kann ich jetzt das auch in weitere Dateien einspielen und wie speichert es das ganze automatisiert und schließt es?
Gruß
Top
#5
(13.02.2017, 21:40)AlterDresdner schrieb: Hallo Herr Dr...
ungetestet:

Code:
Set WsQuelle = ThisWorkbook.sheets("Tabelle1")
Code:
Set WsZiel = WB_B.Sheets(1)
Gruß der AlteDresdner


KLASSE! Daran lags, vielen Dank für den Hinweis :)

Gruß Doc
Top
#6
(14.02.2017, 11:28)tw3aker schrieb: Hallo,
habe deine Formel mal Probiert, klappt auch. wie kann ich jetzt das auch in weitere Dateien einspielen und wie speichert es das ganze automatisiert und schließt es?
Gruß

Moin Tweaker,

was du mit "in weitere Dateien einspielen" meinst weiß ich leider nicht,
automatisch speichern und schließen kiann du mit folgendem Befehl:
Code:
'Zieldatei speichern und schließen
   WB_B.Close savechanges:=True
Würde diesen nach dem "kopieren" Block, vor dem löschen der Variablen einfügen.
Gruß Doc
[-] Folgende(r) 1 Nutzer sagt Danke an DrWahnsinn für diesen Beitrag:
  • tw3aker
Top
#7
Hey Doc,
meine damit, dass ich weitere Dateien mit einbeziehen will, in denen das ganze gespeichert werden soll.
Danke und Gruß
Top
#8
Grundsetzlich so:


Code:
Sub M_snb()
  with getobject("G:\OF\beispiel.xlsx")
    thisworkbook.sheets(1).range("A1:K10")=.sheets(1).range("A1:K10").value
    .close 0
  end with
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#9
Hey Doc,
aktuell hast du ja den Speicherort so:
Code:
Const strZiel As String = "C:\Dokumente\Orga_01\Vorlage_B.xlsx"   'Pfad + Dateiname

Will dort quasi nur ein oder zwei weitere Dateien öffnen, in denen ich die Mappe aktualisieren will.

Gruß
Top
#10
(14.02.2017, 14:14)tw3aker schrieb: Hey Doc,
aktuell hast du ja den Speicherort so:
Code:
Const strZiel As String = "C:\Dokumente\Orga_01\Vorlage_B.xlsx"   'Pfad + Dateiname

Will dort quasi nur ein oder zwei weitere Dateien öffnen, in denen ich die Mappe aktualisieren will.

Gruß
Sorry, fällt mir auf die schnelle keine elegante Lösung ein.
Im Zweifelsfall einfach den gesamten Block 3 mal kopieren und mit jeweils eigenen Variablen zum jeweiligen Pfad laufen lassen. Evtl. findest du dann sowieso eine Möglichkeit zur Vereinfachung.
Der Speichern Befehl klappt aber, oder?

Gruß Doc
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste