Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
Antworten 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
Antworten 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ß
Antworten 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ß
Antworten Top
#5
(13.02.2017, 20: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
Antworten Top
#6
(14.02.2017, 10: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
Antworten Top
#7
Hey Doc,
meine damit, dass ich weitere Dateien mit einbeziehen will, in denen das ganze gespeichert werden soll.
Danke und Gruß
Antworten 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
Antworten 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ß
Antworten Top
#10
(14.02.2017, 13: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
Antworten Top


Gehe zu:


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