Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1920to1924
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten aktualisieren

Daten aktualisieren
09.03.2023 08:57:17
Friederich
Guten Morgen,
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

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aktualisieren
09.03.2023 09:55:46
Rudi
Hallo,
Ich hoffe es war verständlich
Nicht wirklich.
Die Komplettliste wird doch aus den Einzellisten generiert. Oder meinst du, dass die MA prüfen sollen, was du in der Komplettliste verpfuscht hast? ;-)
Ich glaube, dass dein Konzept falsch ist. Wahrscheinlich wärst du mit einer richtigen DB (z.B. Access) besser bedient.
Gruß
Rudi
AW: Daten aktualisieren
09.03.2023 12:55:42
Friederich
Access oder andere Möglichkeiten kommen leider nicht in Frage. Geht nur über Excel.
jeder Mitarbeiter hat ein Excel-Tool um Daten zu sammeln. Diese hole ich mir momentan selbst und kopiere die Daten dann in meiner Datenbank (weitere Excel-Datei).
Ich möchte gerne, dass die Datei die im Excel-Tools des Mitarbeiters eingegeben werden mit speichern automatisch in meiner Datenbank landen und am besten, wenn das Tool geöffnet wird, die aktuelle Datenbank dem Mitarbeiter angezeigt wird, so dass er diese Daten auch durchsuchen, löschen oder bearbeiten kann. Die aktuelle Version wird dann wieder in meiner Datenbank übermittelt.
Aber ich vermute, dass sprengt den Rahmen von Excel. Oder?
Anzeige
AW: Daten aktualisieren
09.03.2023 19:38:26
Yal
Hallo Severine,
verwende bitte den "Code"-Schalter (neben "Formel") um dein Code formatiert zu posten. Es wird wesentlich einfacher zu lesen:
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
Dieser Code hat aber keine Änderung seit letzter Version bekommen.
Du bist auf eine Reise und erzählt uns, wo Du bist, aber nicht wohin Du gehen möchtest. Es macht uns schwer, dich zu beraten in welcher Richtung Du weitergehen sollst.
Du hast dezentrale Dateien, 1 pro Mitarbeiter(MA), die jede MA seine Daten eingeben/löschen kann, wie er möchte. Dann möchtest Du die Daten "zentralisieren". Bis hier alles machbar.
Wie ich es verstehe, möchtest Du dann in der zentrale Version auch Änderungen vornehmen und anschliessend sicherstellen, dass diese Änderungen wieder an den MA verteilt wird. Habe ich es so richtig wiedergeben?
Es ist mit Excel machbar. Die Verteilung an den MA erfolgt durch das Erzeugen von neuen Dateien auf Basis der zentralen Datei, aber es muss organisatorisch sichergestellt, dass zwischen den Moment, wo Du deren Daten sammlest, bearbeitest und zurückspielst, keine Änderungen in den dezentralen Dateien gemacht werden sollen. Da diese Änderungen durch die neuen Dateien gelöscht werden, werden die MA Spätestens nach 2mal vertanden haben, was sie nicht tun sollen. Es muss nur vorher angekündigt worden.
VG
Yal
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige