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.

Listen jedes Monat zusammenführen und updaten
#1
Hallo in die Runde, ich bin hier neu und hoffe, dass ich einiges Lernen kann. Bisher hab ich nur ganz einfache XLS Listen zur Bearbeitung gehabt, nun wird es für mich zuviel.

Folgende Ausgangslage:
Ich habe ein XLS mit folgendem Inhalt als Basis: Kdnr - rufnummer - adresse alles einzeln von strasse, plz, ort usw - Datum - Inhalt - Bearbeiter - Email - Info

Dies ist aktuell mit ca. 1500 Datensätzen gefüllt. Es kann sein, dass eine Kundennummer mehrmals vorkommt, da er 5 Rufnummern hat. Somit ist die Rufnummer die einzige einmalige Info in dieser Datei!!!
Die Datei wird nun von mehreren Mitarbeitern bearbeitet. Erstes Problem für eine Lösung: Unter Bearbeiter werden die 6 Mitarbeiter zugeteilt, dies ist noch einfach, jedoch können ja nicht 2 Leute gleichzeitig mit XLS arbeiten und speichern.
Besteht nun die Möglichkeit eines Filters, an dem nur die Zeilen vom Mitarbeiter A sichtbar sind und diese zu exportieren (wichtige Info noch - die Liste ist nach PLZ und in 2. Ebene nach Kdnr. sortiert), damit dieser auf einem eigenen Laptop diese bearbeiten kann und am Monatsende automatisiert in die Basisdatei reingefügt wird ? Kein anderer Benutzer greift diese zugeordneten Zeilen an, macht nur Mitarbeiter A.

Die 2. Aufgabe ist nun folgende:
Am Monatsanfang bekommen wir eine Updatedatei namens September.xls (diese Datei hat ALLE Datensätze von der Basis inkludiert, ausgenommen die bereits erledigten (diese sind nicht mehr vorhanden, müssen aber in der Basisdatei bestehen bleiben - ganz wichtig!!))zusätzlich sind ca. 300 neue Daten hinzugekommen.
Wie finde ich diese 300 raus, die fehlen und füge diese in die Basis ein? Die Basis MUSS unverändert bleiben, da unter Notizen, email usw wichtige Infos stehen, die eben 1 Monat später in der Updatedatei nicht zur Verfügung stehen.
Einfacher wärs, eine Datei zu bekommen als Update, wo nur die NEUEN drin sind, die gibts jedoch leider nicht.
Dieser Vorgang wiederholt sich dann jedes Monat mit der Basis und dann eben Liste Oktober/November.
Antworten Top
#2
Hallo,

zum 2. Teil der Frage:

Excel ist bekanntlich kein Datenbankprogramm, d.h. (vermutlich) muss man diese Funktionalität per VBA programmieren. Dies geht und das Forum kann (vermutlich) einen Code liefern, aber der Anwender sollte in der Lage sein, bei Änderungen in der Datenstruktur den Code "zu pflegen".

mfg
Antworten Top
#3
(31.08.2018, 15:27)Fennek schrieb: Hallo,

zum 2. Teil der Frage:

Excel ist bekanntlich kein Datenbankprogramm, d.h. (vermutlich) muss man diese Funktionalität per VBA programmieren. Dies geht und das Forum kann (vermutlich) einen Code liefern, aber der Anwender sollte in der Lage sein, bei Änderungen in der Datenstruktur den Code "zu pflegen".

mfg
Die Datenstruktur bleibt exakt gleich.
es ändert sich lediglich der name der updatei.
diesen kann ich dann natürlich immer auf einen fixen Namen ändern, diese wird ohnehin gelöscht.
Antworten Top
#4
Hallo,
als erstes lad mal die beiden Dateinen (gekürzt) hoch. Ins blaue arbeitet hier "fast" keiner.

Vorab Frage : Kann man die erzeugte Datei die zugesandt wird jeden Monat noch modiifzieren? Oder seit Ihr hier wie einen Bahnschiene.
Grüße aus Nürnberg
Armin
Ich benutze WIN 10 (64bit) und Office 19 (32bit)
Antworten Top
#5
Hallo,

nur mal ganz nebenbei: Die Beschreibung der Problemstellung ist recht gut, aber, zumindest ich, fahre ohne eine aussagekräftige (anonymisierte) Datei nicht einmal den PC hoch.

mfg
Antworten Top
#6
2 Musterfiles im Anhang.
Zur Erklärung nochmals:
Die Basis muss unverändert bleiben.

Es sind im Update ein paar Zeilen von der basis gelöscht und ein paar dazugekommen.
genau die neuen brauch ich in der Basis drin.

Ja wir können die Xls files ändern wenn es ist.

Was unter Name, Kundennummer steht ist in dem Beispiel egal. Es MUSS lediglich Spalte B verglichen werden. Der Eintrag der fehlt in der Basis.
Wenn z.b. in der Datei Update eine neue Spalte dazukommt, damit diese neuen mit x automatisch markiert werden, dann danach sortiert, kann man diese ohne x ja einfach mit copy/paste in die basis einfügen.
Dies ist kein Problem.


Angehängte Dateien
.xlsx   update.xlsx (Größe: 147,65 KB / Downloads: 9)
.xlsx   Basisdatei.xlsx (Größe: 149,9 KB / Downloads: 10)
Antworten Top
#7
Hallo,

nach einer ersten, kurzen Prüfung ist die Idee, einen Code in der Datei "Basis" mit einem Application.Match für die Spalte B durchzuführen. Eine Fehlermeldung bedeutet: nicht in der "Basis" enthalten. Dann kann die ganze Zeile von update zur Basis kopiert werden.

Wie neue Spalte bei update behandelt werden, muss ich mir noch einmal genauer anschauen.

Heute werde ich das nicht mehr probieren, falls bis morgen mittag keine Lösung hier gezeigt wird, werde ich es mal versuchen.

mfg
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • carlo1
Antworten Top
#8
Hallo

Zu Problem 1.
Wenn die Datei auf OneDrive oder Sharepoint liegt dann können mehrere Personen die Datei gleichzeitig bearbeiten.
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top
#9
das geht aus datenschutzrechtlichen Gründen leider nicht.

Irgendwo hab ich mal was gesehen mit einer Stundenliste.
Es hat auch hier einer alle Mitarbeiter drin und jeder MA nur seine eigenen Stunden. Mit Berechtigungen ging dies, aber mir war dass zu kompliziert zum verstehen.

reicht auch 1x im Monat das ganze.
Trotzdem danke.
Antworten Top
#10
Hallo,

teste mal mit diesem Makro. Noch muss die Datei "update.xlsx" heißen, der Code in "Basis.xls" -> Basis.xlsm" eingefügt werden.

Code:
Sub T_1()
Dim BS As Worksheet: Set BS = ActiveSheet
Dim Up As Workbook

Set Up = Workbooks.Open(ThisWorkbook.Path & "\update.xlsx")
'Set Up = Workbooks("update.xlsx")
Set Rng = BS.Range("B1:B" & Cells(Rows.Count, 2).End(xlUp).Row)
With Up.Sheets(1)
    For i = 2 To .Cells(Rows.Count, 2).End(xlUp).Row
        r = Application.Match(.Cells(i, 2), Rng, 0)
        If IsError(r) Then
            Debug.Print i, r
            .Range(.Cells(i, 1), .Cells(i, "L")).Copy BS.Cells(Rows.Count, 1).End(xlUp).Offset(1)
            BS.Cells(Rows.Count, 1).End(xlUp).Resize(, 12).Interior.Color = vbYellow
        End If
    Next i
End With
Up.Close 0
End Sub

mfg
Antworten Top


Gehe zu:


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