Supportnet / Forum / Tabellenkalkulation
Excel VBA Worksheets synchronisieren
Frage
Guten Tag zusammen,
Ich habe ein Problem bezüglich Worksheet synchronisation in Excel. Und zwar möchte ich dass der mir automatisch wenn ich in dem einen Worksheet was ändere, der das auch direkt nach Eingabe in dem anderen ändert, ohne dass ich dabei auf einen Knopf drücke zum ausführen eines Makros. Mein bisherige Lösung ist dass ich die wichtigen Spalten nach Knopfdruck synchronisiere.
Fragen:
Wie kann man auch den gesamten Inhalt eines Worksheets in einen anderen kopieren ohne dabei die Formatierung zu verliren?
Wie starte ich ein Makro nach änderung eines Inhalts in einer Spalte?
Bisherige Versuche:
nach Knopfdruck kopiere Spalten:
Sub ourSynch()
´Es werden die folgenden Spalten kopiert...
ActiveWorkbook.Worksheets("STabelle1").Range("AY:AY", "AZ:AZ").Copy _
Destination:=ActiveWorkbook.Worksheets("STabelle2").Range("AY:AY", "AZ:AZ")
Application.StatusBar = "Synchronisation " & " " & Date & " | " & Time
MsgBox "Fertig! Daten wurden Synchronisiert!"
End Sub
Wie kann ich das auf eine/mehrere Spalte ausbauen?
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A1" Then MsgBox "Makro startet", , "Meldung"
End Sub
Bin für jeden Support dankbar
Antwort 1 von Saarbauer
Hallo,
wenn du alle Seiten auf denen deine Eintragungen erfolgen sollen aktivierst, geht mit Umschaltung oder Strg und aufTabellennamen klicken, dann werden die Daten u.ä. in allen Blättern gleichzeitig eingetragen
Gruß
Helmut
wenn du alle Seiten auf denen deine Eintragungen erfolgen sollen aktivierst, geht mit Umschaltung oder Strg und aufTabellennamen klicken, dann werden die Daten u.ä. in allen Blättern gleichzeitig eingetragen
Gruß
Helmut
Antwort 2 von Booyeoo
Ja aber das wissen die User dieser Tabelle nicht :(
Aber danke, den Trick kannte ich auch noch nicht.
Möchte halt dass mein Makro nach EIngabe startet, oder dass der jetzt beim öffnen der Datei direkt diese beiden Sheets aktiviert hat.
Aber danke, den Trick kannte ich auch noch nicht.
Möchte halt dass mein Makro nach EIngabe startet, oder dass der jetzt beim öffnen der Datei direkt diese beiden Sheets aktiviert hat.
Antwort 3 von Saarbauer
Hallo,
dann versuch es mal damit
muss vielleicht angepasst werden
Gruß
Helmu
dann versuch es mal damit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.Worksheets("STabelle1").Range("AY:AY", "AZ:AZ").Copy _
Destination:=ActiveWorkbook.Worksheets("STabelle2").Range("AY:AY", "AZ:AZ")
Application.StatusBar = "Synchronisation " & " " & Date & " | " & Time
MsgBox "Fertig! Daten wurden Synchronisiert!"
ThisWorkbook.Saved = True
Application.Quit
End Sub
muss vielleicht angepasst werden
Gruß
Helmu
Antwort 4 von Event
Hallo
Das könnte so gehen..
Gruß
Das könnte so gehen..
Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("Tabelle2").Range(Target.Address) = _
Sheets("Tabelle1").Range(Target.Address)
End Sub
Gruß
Antwort 5 von Booyeoo
JUUHUUU, dickes Dank an Event.
soviele fragen mit 4 Zeilen haben sich erledigt :)
Vielen Dank auch an Saarbauer, aber das was Event mir geschickt hat ist genau was ich bruache.
Schönen Tag euch noch
DANKE!!!!
soviele fragen mit 4 Zeilen haben sich erledigt :)
Vielen Dank auch an Saarbauer, aber das was Event mir geschickt hat ist genau was ich bruache.
Schönen Tag euch noch
DANKE!!!!
Antwort 6 von Booyeoo
dzzzzzz
Antwort 7 von Booyeoo
Hallo zusammen,
Das hat auch alles wunderbar geklappt, bis ich versucht habe Zeilen aus anderen Sheets einzufügen, denn dann passiert nix. Man kann zwar einzelne Felder kopieren aber ab 2 gehts nimmer.
Und der Zurückbutton funktioniert jetzt auch nicht mehr. Ich denke mal das liegt daran, dass es Ein "Worksheetmakro" ist und nicht ein "Modulmakro", oder?!
Gibt es dafür eine Lösung?
Das hat auch alles wunderbar geklappt, bis ich versucht habe Zeilen aus anderen Sheets einzufügen, denn dann passiert nix. Man kann zwar einzelne Felder kopieren aber ab 2 gehts nimmer.
Und der Zurückbutton funktioniert jetzt auch nicht mehr. Ich denke mal das liegt daran, dass es Ein "Worksheetmakro" ist und nicht ein "Modulmakro", oder?!
Gibt es dafür eine Lösung?
Antwort 8 von Event
Hallo
Du siehst das ziemlich richtig;
Das Worlsheet_Change-Ereignis / Prozedur tritt und wirkt nur in dem Tabellenblatt auf, in dem der Code steht.
Adhoc Lösung: Das Makro in den Code Bereich der Anderen Tabellenblätter kopieren - oder Dein Vorhaben nachvollziehbar(er) darstellen.
Gruß
Du siehst das ziemlich richtig;
Zitat:
Wie starte ich ein Makro nach änderung eines Inhalts in einer Spalte?
Wie starte ich ein Makro nach änderung eines Inhalts in einer Spalte?
Das Worlsheet_Change-Ereignis / Prozedur tritt und wirkt nur in dem Tabellenblatt auf, in dem der Code steht.
Adhoc Lösung: Das Makro in den Code Bereich der Anderen Tabellenblätter kopieren - oder Dein Vorhaben nachvollziehbar(er) darstellen.
Gruß
Antwort 9 von Booyeoo
Also habe eigentlich nur zwei Worksheets mit dem gleichen Inhalt. Die Spalten sind nur verschieden zurechtgerückt. D.h ist sehe auf beiden Worksheets verschiedene Daten, obwohl in beiden die gleichen drinnstehen, klingt komisch #, deswegen ein beispiel:
In worksheet 1 sehe ich die Spalten A B C D E F G .. bis AZ und in worsheet 2 sehe ich nur A B C und P und AZ.
und ich möchte eigentlich "nur" dass wenn ich jetzt in worksheet 1 was eintrage dass er mir das automatisch in worksheet 2 "synchronisiert."
Das Makro hat mir schon geholfen,
Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("Tabelle2").Range(Target.Address) = _
Sheets("Tabelle1").Range(Target.Address)
End Sub
jedoch entstehen dadurch ungewollte effekte:
- man kann den Rückgängigpfeil mehr benutzen (kann vernachlässigt werden)
- wenn ich jetzt aus worksheet x mehrere zellen mittels copy&paste in eine von den beiden worksheets reinkopiere dann nimmt der das gar nicht an. Thats strange. (luxus auf den ich nicht verzichten will)
PS:
Kann ich Eintrag 6 irgendwie löschen?
PS2: Kann man euch was spenden?
In worksheet 1 sehe ich die Spalten A B C D E F G .. bis AZ und in worsheet 2 sehe ich nur A B C und P und AZ.
und ich möchte eigentlich "nur" dass wenn ich jetzt in worksheet 1 was eintrage dass er mir das automatisch in worksheet 2 "synchronisiert."
Das Makro hat mir schon geholfen,
Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("Tabelle2").Range(Target.Address) = _
Sheets("Tabelle1").Range(Target.Address)
End Sub
jedoch entstehen dadurch ungewollte effekte:
- man kann den Rückgängigpfeil mehr benutzen (kann vernachlässigt werden)
- wenn ich jetzt aus worksheet x mehrere zellen mittels copy&paste in eine von den beiden worksheets reinkopiere dann nimmt der das gar nicht an. Thats strange. (luxus auf den ich nicht verzichten will)
PS:
Kann ich Eintrag 6 irgendwie löschen?
PS2: Kann man euch was spenden?
Antwort 10 von Event
Hallo
In den Code-Bereich von Tabelle1 kopierst Du:
Das bewirkt, dass beim Verlassen (deactivate) des Tabellenblattes der gesamte benutze Bereich aus Tabelle1 nach Tabelle2 kopiert wird.
Gruß
In den Code-Bereich von Tabelle1 kopierst Du:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("Tabelle2").Range(Target.Address) = _
Sheets("Tabelle1").Range(Target.Address)
End Sub
Private Sub Worksheet_Deactivate()
Dim rng
Set rng = Range("$A$1:" & _ Cells(ActiveSheet.Rows.SpecialCells(xlCellTypeLastCell).Row, _
ActiveSheet.Columns.SpecialCells(xlCellTypeLastCell).Column).Address)
rng.Copy Destination:=Worksheets("Tabelle2").Range("A1")
End Sub
Das bewirkt, dass beim Verlassen (deactivate) des Tabellenblattes der gesamte benutze Bereich aus Tabelle1 nach Tabelle2 kopiert wird.
Gruß
Antwort 11 von Booyeoo
Danke dir Event, kann man dir was zu Weihnachten schicken oder so? Das hat mir sehr geholfen.
Der Trick mit Strg+ das andere Blatt ist auch sehr gut.
Dazu muss man ja allerdings einmal was drücken und man könnte es ja vergessen :)...
Schönen Tag und eine schöne Woche Dir und Saarbauer noch.
Der Trick mit Strg+ das andere Blatt ist auch sehr gut.
Dazu muss man ja allerdings einmal was drücken und man könnte es ja vergessen :)...
Schönen Tag und eine schöne Woche Dir und Saarbauer noch.