ich habe mal wieder eine Idee und weiß nicht wie ich es umsetzen könnte. Zur Grundstruktur. Ich hole mir mit folgende Zeilen die Daten in den Excel-Dateien von verschiedenen Mitarbeiter, um diese dann weiter zu verarbeiten.
Sub BÜTool_Zusammenfügen_Klicken()
Dim Dat
Dim rgQ As Range
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each Dat In Application.GetOpenFilename(FileFilter:="Excel-Dateien (*.xls*), *.xls*", MultiSelect:=True)
'öffne Datei:
With Workbooks.Open(Dat)
'kopieren Daten-MA ohne erste Zeile
Set rgQ = .Worksheets(1).Range("A1").CurrentRegion
Set rgQ = Intersect(rgQ, rgQ.Offset(1, 0))
Debug.Print Dat, .Worksheets(1).Name, rgQ.Rows.Count, rgQ.Columns.Count
rgQ.Copy
'Füge in BÜ-Tool-Bearbeitung ein:
ThisWorkbook.Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
'Schließe Datei-MA:
.Close SaveChanges:=False
End With
Next Dat
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Da hattet ihr mir schon geholfen und es klappt super.
Leider hat diese Variante den Nachteil, dass die einzelnen Mitarbeiter nicht auf die kompletten Datensatz Zugriff haben und somit zB falsch eingetragene Daten nicht prüfen können (ich habe bei der Eingabe der eigenen Daten eine Suche und Lösch Funktion hinterlegt, ob der Datensatz bereits vorhanden ist und ggf. gelöscht werden soll. Diese Suche/Löschen funktioniert aber nur in der eigenen Tabelle, also mit den eigenen Daten. )
Deshalb hatte ich die Idee beim Öffnen der eigenen Datei, die Daten aus der "Datenback" (Datei BÜ-Tool-Bearbeitung, Tabellenblatt BÜ-Tool) abzufragen (also rein zu kopieren) und dann beim Schließen die Daten in "Datenbank" wieder zu aktualisieren. Keine Ahnung ob und wie das geht. Und eine Frage fällt mir dabei ein, was passiert wenn mehrere Mitarbeiter gleichzeitig ihre Datei öffnen bzw gleichzeitig speichern.
Ich hoffe es war verständlich und ihr könnt mir helfen. Danke