13.07.2014, 13:46
Hallo Stefan,
das Ziel ist eine Art "Syncronhalten der Daten"! Sowohl ich User1 als auch User2 haben eigene Dateien mit Userformen in der wir Artikel anlegen können, Angebote anlegen usw....die Daten werden beim Anlegen per Knopfdruck in einer Extra Datenbankdatei "DB.xlsm" geschrieben, hier sind fortlaufende Nummern usw. auch drin! Also wenn ich User1 z.B. einen Artikel anlege gebe ich meine Daten ein in meine User1Datei.xlsm per Userform und beim Klick auf dem Button "Artikel anlegen" wird die Datei "DB.xlsm" geöffnet eine Fortlaufende Artikelnummer generiert aus der DB und der Datensatz wird in der DB reingeschrieben. Soweit so gut? Nun möchte ich über den DatenSync Code den ich in meiner User1Datei (und auch User2 in seiner User2Datei hat) habe die Daten aus der DB kopieren und in meiner User1Datei einfügen! Warum? Per Userform kann ich in meiner User1Datei nicht nur Artikel anlegen sonder auch ansehen abrufen usw. und ich möchte nicht, dass beim Klick in der Listbox auf ein Artikel jedes mal die DB aufgemacht wird, geht also blitzschnell wenn meine Daten in meiner User1Datei drin sind! So, das Problem ist, wenn ich User1 ein Artikel anlege und dieser in der DB geschrieben wird, ist User2 nicht auf dem aktuellsten Stand! Er hat den gleichen Code "Datensync" in seiner DAtei und kann den natürlich auch per Knopfdruck ausführen damit die Daten syncron sind, aber ich möchte, seinen Code "Datensync" in seiner User2Datei aus meiner User1Datei irgendwie Starten, damit wenn die Synchronisierung beim mir stattfindet, gleich auch bei ihm gestartet wird! Wie ich schon in mein letzten Beitrag erklärt habe funktioniert das momentan, aber nur wenn seine User2Datei nicht in Benutzung ist sprich geschlossen! Ist diese von ihm geöffnet/in Benutzung, dann klappt es nicht wie ich in mein letzten Beitrag beschrieben habe!!!
Hoffe das ist einigermaßen verständlich!!
Ach ja hier der Datensync Code:
Vielen Dank
VG
Alexandra
das Ziel ist eine Art "Syncronhalten der Daten"! Sowohl ich User1 als auch User2 haben eigene Dateien mit Userformen in der wir Artikel anlegen können, Angebote anlegen usw....die Daten werden beim Anlegen per Knopfdruck in einer Extra Datenbankdatei "DB.xlsm" geschrieben, hier sind fortlaufende Nummern usw. auch drin! Also wenn ich User1 z.B. einen Artikel anlege gebe ich meine Daten ein in meine User1Datei.xlsm per Userform und beim Klick auf dem Button "Artikel anlegen" wird die Datei "DB.xlsm" geöffnet eine Fortlaufende Artikelnummer generiert aus der DB und der Datensatz wird in der DB reingeschrieben. Soweit so gut? Nun möchte ich über den DatenSync Code den ich in meiner User1Datei (und auch User2 in seiner User2Datei hat) habe die Daten aus der DB kopieren und in meiner User1Datei einfügen! Warum? Per Userform kann ich in meiner User1Datei nicht nur Artikel anlegen sonder auch ansehen abrufen usw. und ich möchte nicht, dass beim Klick in der Listbox auf ein Artikel jedes mal die DB aufgemacht wird, geht also blitzschnell wenn meine Daten in meiner User1Datei drin sind! So, das Problem ist, wenn ich User1 ein Artikel anlege und dieser in der DB geschrieben wird, ist User2 nicht auf dem aktuellsten Stand! Er hat den gleichen Code "Datensync" in seiner DAtei und kann den natürlich auch per Knopfdruck ausführen damit die Daten syncron sind, aber ich möchte, seinen Code "Datensync" in seiner User2Datei aus meiner User1Datei irgendwie Starten, damit wenn die Synchronisierung beim mir stattfindet, gleich auch bei ihm gestartet wird! Wie ich schon in mein letzten Beitrag erklärt habe funktioniert das momentan, aber nur wenn seine User2Datei nicht in Benutzung ist sprich geschlossen! Ist diese von ihm geöffnet/in Benutzung, dann klappt es nicht wie ich in mein letzten Beitrag beschrieben habe!!!
Hoffe das ist einigermaßen verständlich!!

Ach ja hier der Datensync Code:
Code:
Sub Datensync()
Dim Quelldateiname As String
Dim Quelle As Object
Dim wsZiel1 As Worksheet
Dim wsZiel2 As Worksheet
Dim wsZiel3 As Worksheet
Dim wsZiel4 As Worksheet
Dim wsZiel5 As Worksheet
Dim wsZiel6 As Worksheet
Dim wsQuelle1 As Worksheet
Dim wsQuelle2 As Worksheet
Dim wsQuelle3 As Worksheet
Dim wsQuelle4 As Worksheet
Dim wsQuelle5 As Worksheet
Dim wsQuelle6 As Worksheet
Quelldateiname = ThisWorkbook.Path & "\" & "DB.xlxm" ' Datei auswählen
'Set Quelle = Workbooks("DB.xlsm") 'Workbooks.Open(Filename:=ThisWorkbook.Path & "\" & "DB.xlsm", ReadOnly:=True, Password:="", WriteResPassword:="") ' Datei öffnen
Set Quelle = Workbooks.Open(Filename:=ThisWorkbook.Path & "\" & "DB.xlsm", ReadOnly:=True, Password:="", WriteResPassword:="") ' Datei öffnen
Set wsZiel1 = ThisWorkbook.Sheets("produkte")
wsZiel1.Cells.ClearContents
wsZiel1.Cells.ClearFormats
Set wsQuelle1 = Quelle.Worksheets("produkte")
wsQuelle1.Cells.Copy Destination:=ThisWorkbook.Sheets("produkte").Cells
Set wsZiel2 = ThisWorkbook.Sheets("kunden")
wsZiel2.Cells.ClearContents
wsZiel2.Cells.ClearFormats
Set wsQuelle2 = Quelle.Worksheets("kunden")
wsQuelle2.Cells.Copy Destination:=ThisWorkbook.Sheets("kunden").Cells
Set wsZiel3 = ThisWorkbook.Sheets("LNA")
wsZiel3.Cells.ClearContents
wsZiel3.Cells.ClearFormats
Set wsQuelle3 = Quelle.Worksheets("LNA")
wsQuelle3.Cells.Copy Destination:=ThisWorkbook.Sheets("LNA").Cells
Set wsZiel4 = ThisWorkbook.Sheets("zwischen")
wsZiel4.Cells.ClearContents
wsZiel4.Cells.ClearFormats
Set wsQuelle4 = Quelle.Worksheets("zwischen")
wsQuelle4.Cells.Copy Destination:=ThisWorkbook.Sheets("zwischen").Cells
Set wsZiel5 = ThisWorkbook.Sheets("Attribute")
wsZiel5.Cells.ClearContents
wsZiel5.Cells.ClearFormats
Set wsQuelle5 = Quelle.Worksheets("Attribute")
wsQuelle5.Cells.Copy Destination:=ThisWorkbook.Sheets("Attribute").Cells
Set wsZiel6 = ThisWorkbook.Sheets("LNK")
wsZiel6.Cells.ClearContents
wsZiel6.Cells.ClearFormats
Set wsQuelle6 = Quelle.Worksheets("LNK")
wsQuelle6.Cells.Copy Destination:=ThisWorkbook.Sheets("LNK").Cells
Quelle.Close SaveChanges:=False
Set wsQuelle1 = Nothing
Set wsQuelle2 = Nothing
Set wsQuelle3 = Nothing
Set wsQuelle4 = Nothing
Set wsQuelle5 = Nothing
Set wsQuelle6 = Nothing
Set wsZiel1 = Nothing
Set wsZiel2 = Nothing
Set wsZiel3 = Nothing
Set wsZiel4 = Nothing
Set wsZiel5 = Nothing
Set wsZiel6 = Nothing
ThisWorkbook.Save
End Sub
Vielen Dank
VG
Alexandra