Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Importieren nach ID Prüfen

Betrifft: Importieren nach ID Prüfen von: Ronny
Geschrieben am: 02.07.2015 16:07:33

Hallo zusammen!
Ich hoffe es kann mir jemand helfen. Ich habe in einer Excel-Datei Mitarbeiter und deren Stunden- und Feriensaldo. Ich möchte nun einen monatlichen Vergleich machen wer wie viel Ferien oder Gleitzeit bezogen, respektive aufgebaut hat.
Um die Originaldatei zu behalten möchte ich die Daten von dort in eine andere Excel-Datei kopieren. Ich brauche immer nur den Vergleich zum Vormonat. Leider kann es sein das ein Mitarbeiter dazukommt oder wegfällt, entsprechend sollte er herausfallen oder hinzukommen. Jeder Mitarbeiter hat eine Mitarbeiternummer und wäre somit über eine einmalige ID zu erkennen respektive zu prüfen.

Wie ich ein paar Spalten von einer Excel in die andere bringe ist nicht das Problem das könnte ich lösen, jedoch wie ich die Prüfung machen soll weiss ich nicht.

Hat jemand eine Idee?

Grüsse
Ronny

  

Betrifft: AW:Pivot-Tabelle? von: JoWE
Geschrieben am: 03.07.2015 10:22:31

Hallo Ronny,

ohne Deine Arbeitsmappe zu kennen, denke ich auf Basis Deiner Fragestellung spontan an eine Pivot-Auswertung. Falls ich da aber völlig falsch liege, könntest Du die Hilfsbereitschaft des Forums durch Hochladen einer Beispielarbeitsmappe enorm steigern.

Gruß
Jochen


  

Betrifft: AW: AW:Pivot-Tabelle? von: Ronny
Geschrieben am: 03.07.2015 14:39:38

Hallo Jochen

Das kann sein, jedoch weiss ich nicht ob ich mit einer Pivot Tabelle prüfen kann ob eine Mitarbeiter Nr. schon vorhanden ist oder nicht. Ich werde versuchen eine Datei Hochzuladen. Ich habe es mir gedacht das es einfach ist.

Danke und Gruss
Ronny


  

Betrifft: AW: AW:Pivot-Tabelle? von: Ronny
Geschrieben am: 03.07.2015 15:13:46

Hallo nochmal!

Also das sind meine Dateien!
https://www.herber.de/bbs/user/98620.zip

Meine Idee wäre es in der Datei Vergleich.xlsx die Spalte G-I löschen, dann die Daten von Spalte D-E kopieren und nach G-I einfügen. Die neuen Daten aus Datei Zeitsalden dann in die Spalten D-E einfügen.

Dies wiederum unter der Berücksichtigung das es Veränderungen bei den Personen geben kann, sprich es kommen neue Mitarbeiter dazu oder fallen weg. Als ID kann die Personalnummer verwendet werden.


  

Betrifft: AW: AW:Pivot-Tabelle? von: Ronny
Geschrieben am: 03.07.2015 15:14:09

Hallo nochmal!

Also das sind meine Dateien!
https://www.herber.de/bbs/user/98620.zip

Meine Idee wäre es in der Datei Vergleich.xlsx die Spalte G-I löschen, dann die Daten von Spalte D-E kopieren und nach G-I einfügen. Die neuen Daten aus Datei Zeitsalden dann in die Spalten D-E einfügen.

Dies wiederum unter der Berücksichtigung das es Veränderungen bei den Personen geben kann, sprich es kommen neue Mitarbeiter dazu oder fallen weg. Als ID kann die Personalnummer verwendet werden.


  

Betrifft: Dann mach das doch... von: Frank
Geschrieben am: 04.07.2015 15:08:25

Hallo Ronny,

Super Idee. Woran scheitert's?

Grüsse,
Frank


  

Betrifft: AW: Dann mach das doch... von: Ronny
Geschrieben am: 06.07.2015 07:16:36

Hallo Frank

Woran es scheitert? Ich vermute stark an meinen Fähigkeiten es um zu setzten.
Ich dache es kann mir jemand helfen, ev. hat schon jemand was ähnliches gemacht!?

Ich bringe es gerade mal fertig von einer in die andere Datei zu importieren, und die eine Spalte zu kopieren sollte auch noch gehen. Aber wie ich die Personalnummer als ID verwenden um zu prüfen, da steh ich total an.

Grüsse


  

Betrifft: AW: Dann mach das doch... von: Frank
Geschrieben am: 06.07.2015 10:41:41

Hallo Ronny,

soll's VBA sein? Dann könnte man mal damit beginnen, dass man die gewünschte Personalnummer einer Variablen zuweist:

PersNr=Sheets("Leute").cells(5,3).value

Das würde den Wert der Zelle C5 der Variablen PersNr zuweisen.
Dann kann man prüfen, ob dieser Wert in anderen Blättern vorkommt
lZ=Sheets("Stunden").range("A10000").end(xlup).row
for i=2 to lZ
   if Sheets("Stunden").cells(i,1).value=PersNr then
      'addiere Ferien und Gleitzeit in getrennten Variablen
   end if
next
Das Ganze geht übrigens auch mit Formeln. Stichworte SVERWEIS, SUMMEWENN, ZÄHLENWENN etc.

ev. hat schon jemand was ähnliches gemacht
Sicher gibt's hier einige. Ist aber mit den speziellen Daten immer wieder ne Heidenarbeit. Schau doch mal im Forenarchiv. Dann machst Du ein bisschen Vorarbeit und stellst konkrete Fragen zu konkreten Problemen.

Vielleicht besorgst Du Dir ja auch einen, der das kann. https://www.herber.de/develop.html

Es gibt auch Programme, die das können. Sogar kostenlos
https://www.google.ch/?gws_rd=ssl#q=arbeitszeiterfassung+freeware

Sich hier hinzusetzen und zu sagen: Macht mir mal, damit ich dicke Kohle einstreichen kann, wird eher nicht funktionieren.

Grüsse,
Frank


  

Betrifft: AW: Dann mach das doch... von: Ronny
Geschrieben am: 06.07.2015 14:20:46

Hallo Frank

Also erst mal danke für die Hilfe! Und ja ich möchte lieber VBA.

Das es Tools gibt und Zeiterfassungsprogramme ist mir absolut bewusst. Und wenn das so rüberkam ich möchte nur dick abkassieren dann tut mir das leid. Ich werde in Zukunft die Frage wohl anders formulieren. Das Problem ist das ich für mich eine Auswertung brauche, leider verwenden wir SAP als Tool für die Zeiterfassung. Und wie du vielleicht auch schon gehört hast ist das zwar ein tolles Programm aber wenn du da Auswertungen willst und das programmieren lassen must kostet das viel Geld. Geld die mein Arbeitgeber nicht für mich und meine für ihn kleine Probleme ausgeben will.

Und somit bin ich auf mich gestellt und versuche über diesen Weg eine Lösung zu finden. Bin aber weder ein Genie in Excel noch in VBA.

Gruss
Ronny


  

Betrifft: Genau mein Punkt! von: Frank
Geschrieben am: 06.07.2015 16:21:39

Hallo Ronny,

Geld die mein Arbeitgeber nicht für mich und meine für ihn kleine Probleme ausgeben will.
Dann muss Dein Arbeitgeber eben das Geld in Deine Arbeitszeit stecken. Oder in Deine Weiterbildung. Oder Du schenkst Deinem Chef die Zeit, Dich soweit in XL einzuarbeiten, dass Du das alleine schaffst.

Wir reden hier ja nicht darüber, etwas existierendes zum Laufen zu bringen oder einen Lösungsansatz zu liefern, sondern es geht um eine Komlettlösung, von der noch nicht einmal der Ansatz existiert und bei der der Fragesteller nicht in der Lage ist, selbst tätig zu werden.

Vielleicht findet sich ja noch jemand, der sich das antun möchte, deshalb habe ich die Anfrage wieder offen gestellt.

Grüsse,
Frank


  

Betrifft: AW: Importieren nach ID Prüfen von: Michael
Geschrieben am: 06.07.2015 18:55:17

Hi zusammen,

mir fällt auf, daß in der SAP-Tabelle die Spalte G leer ist - muß das so sein?

Weiterhin sind in beiden Tabellen anscheinend identische Daten - beim Vergleich käme also immer 0 raus.

Soll man das so verstehen, daß das, was in "Vergleich" steht, der Vormonat ist? Also Mai?

Ich laß es erst Mal weiterhin offen.

Schöne Grüße,

Michael


  

Betrifft: AW: Importieren nach ID Prüfen von: Ronny
Geschrieben am: 07.07.2015 15:18:10

Hallo Michael

Die beiden Dateien sind wohl identisch das ist so. Also ist bloss ein Muster wohin ich will.
In den Spalten die leer sind wären die Daten vom Vormonat das ist so. Auch die Mitarbeiter mit deren Nummer sind die selben. Also bei dem Beispiel würde nichts hinzugefügt oder wegfallen.
Die Datei aus dem SAP sieht genau so aus, also da gibt es immer leere Zeilen und Spalten. Aber die Datei wird immer genau so aussehen.

Gruss
Ronny


  

Betrifft: Ansatz von: Michael
Geschrieben am: 07.07.2015 18:50:01

Hi Ronny,

wie Frank bereits sagte: eine fertige Lösung, die "durchprogrammiert" ist, gibt es nicht für lau.

Dummerweise hat es mich in den Fingern gejuckt, mir die Geschichte mal anzusehen.

Datei anbei: https://www.herber.de/bbs/user/98684.xlsm

Button "Machen" drücken und sich wohlfühlen...

In den gelb hinterlegten Bereichen gibst Du die beiden zu vergleichenden Blätter ein, wobei Du *unbedingt* als erstes das SAP-Blatt mit dem "festen Format" als erstes nimmst und das andere als zweites. Du kannst die jeweilige Zeilennummer, ab der die Auswertung beginnen soll, händisch festlegen.

Die Zeilen, bis zu der die Daten bearbeitet werden soll, sucht sich das Makro selbst zusammen (die Ausgabe ist rein informativ).

Es kopiert und sortiert, verformelt und sortiert nochmal, und dann ist ein Teil der Daten schlicht Müll (sinnigerweise der, bei dem der Wert WAHR ist, ja der *wahre* Müll, hehe), den kannst Du löschen lassen, indem Du die MsgBox entsprechend beantwortest: Du solltest ihn zum Testen natürlich mal nicht löschen, sondern ansehen, ob alles paßt.

Alles in allem sieht's nicht besonders "schön" aus, aber das kriegste auch nicht für lau: ich hab jetzt zwei, drei Stunden damit verblödelt.

Sagen wir mal so: für Errorhandling, Optik/Komfort und Optimierung würde ich sinnvollerweise noch mal so viel Zeit reinstecken, damit's wirklich paßt.

Schöne Grüße,

Michael


  

Betrifft: AW: Ansatz von: Ronny
Geschrieben am: 08.07.2015 07:23:49

Hallo Michael

Gut ich habe es kapiert! Ich werde in Zukunft nur einzelne Frage zu Teilproblemen stellen. Trotzdem vielen Dank für deine Mühe und Zeit die du aufgewendet hast. Ich werde das natürlich prüfen und ausprobieren ob es so klappt wie gewünscht.

Und sorry nochmal wenn ich so unanständig bin und so ne offene Frage gestallt habe. Ich hatte aber auch schon den Fall das ich am Schluss meinen zuvor Stundenlang geschriebenen Code schmeissen konnte weil das so nicht lösbar war und dann trotzdem jemand fast die ganze Lösung gemacht hat. Aber wie gesagt ich mache es nicht mehr! Sorry euch allen!

Gruss
Ronny


  

Betrifft: AW: Ansatz von: Ronny
Geschrieben am: 08.07.2015 14:50:52

Hallo zusammen

Was ich eigentlich wollte findet ihr in meinen neuen Dateien.
https://www.herber.de/bbs/user/98714.zip
Das klappt ja alles ganz schön bis auf das wenn ein neuer Mitarbeiter hinzu kommt oder einer weg geht.

Falls noch jemand den nerv hat einen Tipp abzugeben wie ich das nun prüfe und in meine Version einbauen kann habe ich nichts dagegen.

Gruss
Ronny


  

Betrifft: AW: Ansatz von: Michael
Geschrieben am: 10.07.2015 17:55:49

Hallo Ronny,

hast Du jetzt meine Datei ausprobiert oder nicht? Und wenn ja, tut es nicht genau das, was Du wolltest? Nämlich neu hinzugekommene bzw. fehlende Mitarbeiter berücksichtigen *und* bei den anderen die Differenz bilden?

Ob das nun in zwei Blättern oder zwei Datein ist, war mir erst mal zweitrangig...

*Ich* fange jetzt jedenfalls nicht noch mal von vorne an, wenn Du meine Lösung nicht mal anzusehen scheinst.

Schöne Grüße,

Michael


  

Betrifft: AW: Ansatz von: Ronny
Geschrieben am: 12.07.2015 20:54:40

Hallo Michael,

ich habe deine Datei ausprobiert. Aber aus meiner Sicht macht es nicht was ich wollte. Ich muss die ganze Liste zuerst in die Datei kopieren was umständlich ist und mein Ziel von weniger Aufwand nicht erfüllt. Der Ansatz ist schon sehr gut aber ich muss die Liste danach auch wider sortieren das es alles umstellt. Mir ist klar das du nicht von null an beginnen willst. Und ich habe auch Respekt für deinen Aufwand. Aber ich kann nicht ganz nachvollziehen was genau passiert. Neue Mitarbeiter können zudem bloss in der Tabelle 1 dazukommen nicht in der Tabelle 2. Auch wegfallen würden sie immer in Tabelle 1 nie in Tabelle 2. Da ich bei deiner Version so viel umbauen muss das es passt, macht es für mich leider keinen Sinn. Deshalb habe ich meine Version online gestellt. Weil von dem gehe ich auch aus.

Es tut mir leid!
Freundliche Grüsse
Ronny


 

Beiträge aus den Excel-Beispielen zum Thema "Importieren nach ID Prüfen"