Tabelle leeren nach ändern der Personalnummer
#1
Hallo liebe Excel-Freunde,

ich versuche so gut es geht mein Problem zu beschreiben und werde auch die Datei diesem Beitrag anhängen.

Ich habe in Excel 14 Tabellenblätter angelegt. Einmal jeweils die Monate von Januar bis Dezember, eine Jahresübersicht ( kann grundsätzlich erstmal ignoriert werden ) und eine Tabelle mit dem Namen "Bezug"

Es handelt sich hier um die Stundenerfassung von Mitarbeitern ( Schichtdienst). Meine Berechnung funktioniert und auch das bei mir der Monat am 20. beginnt ist so gewollt und korrekt.

Allerdings finde ich es etwas umständlich, für jeden Mitarbeiter eine neue Excel-Datei zu erstellen.

Deswegen habe ich ein simples Tabellenblatt mit dem Namen "Bezug" Dort
ist vermerkt:

Name Personalnummer Vorname.

Ändere ich jetzt z.B. im Tabellenblatt Januar B2 die Personalnummer, so ändert sich auch DE2 und GH2 ( also der Name wird eingetragen )

allerdings soll genau an dieser Stelle die Tabelle "geleert" werden um neue Eingaben zu machen.
Zum besseren Verständnis:

B2 ist Personalnummer 1 eingetragen = Max Mustermann
in der Tabelle befinden sich bereits Berechnungen ( Beginn, Ende, Pause )

Ändere ich jetzt B2 zu Personalnummer 2 = Marie Musterfrau,
soll sich die Tabelle leeren.

Allerdings soll beim Wechsel zu Personalnummer 1 ( Max Mustermann ) die Daten nicht verändert worden sein, sondern erhalten bleiben.

Im Klartext: ich möchte im Endeffekt beim Wechsel der Personalnummer die jeweiligen Zeiten angezeigt bekommen, die ich für die Personalnummer auch eingegeben habe. Es sollen keine Daten gelöscht werden.

Ich hoffe das war jetzt nicht zu kompliziert. Ich frag mich gerade ob dies überhaupt mit Excel möglich ist.

Ich bedanke mich für Eure Geduld. :)

Malte

Betreff korrigiert.
Moderator
[Bild: smilie.php?smile_ID=1810]


Angehängte Dateien
.xlsm   Zeitkonto-anonymisiert.xlsm (Größe: 144,38 KB / Downloads: 11)
Top
#2
Hi Malte,

geht sicher, aber nicht auf einem für alle geltenden Eingabemonatsblatt, denn deine Forderung, bei PersNr Wechsel soll alles leer sein, aber die Daten für Nr. 1 erhalten bleiben, ist m.E. so nicht umsetzbar.

Warum erfaßt du die Daten nicht über eine Eingabemaske/Userform in einer Gesamttabelle oder direkt in einer Gesamtabelle für alle gemeinsam unbd wertest die dann aus?

Aber gibt sicher auch andere Lösungsansätze.
Mit freundlichen Grüßen  :)
Michael
Top
#3
Hallo Michael,

an die Möglichkeit habe ich natürlich auch schon gedacht. ich habe irgendwo eine Denkblockade und bin ich auch nicht gerade der VBA-Crack :D
Eine Eingabemaske sollte grundsätzlich dennoch kein Problem sein.
Ich sehe die Probleme vielmehr beim "zuordnen" der verschiedenen Tabellen.

Eine Möglichkeit sehe ich noch im Bereich Eingabemaske:
in der Userform wird Start- End- und Pausenzeit eingetragen und über einer ListBox sind dann entsprechende Mitarbeiter auswählbar.
dann wird es im Grunde einfach nur ein Tabellenblatt pro Mitarbeiter geben.

In der Theorie ja recht "einfach" nur das ganze in die Praxis umzusetzen mit den ganzen Verweisen und Spalten deklarieren. ui ui ui...

ich dachte es gäbe da eventuell eine einfach Art über eine "WENN-Formel" aber logisch das die Tabelle nicht einfach unsichtbar im Hintergrund verschwinden kann.
Ich glaube ich muss das Konzept noch einmal gründlich überdenken.

Gruß

Malte
Top
#4
(29.10.2014, 13:30)Malte1983 schrieb: Ich glaube ich muss das Konzept noch einmal gründlich überdenken.

Hi Malte,

das ist sicher ein guter Gedanke.
Zum praktischen: mach dir nicht so viel Gedanken über Lösungen, wie exceltechnisch umsetzbar oder sowas, sondern beschreibe sehr genau, was du vorhast. Also wie sollen deine Prozesse ablaufen, macht das nur 1 Person, arbeitet die lieber über Eingabemasken/Userforms oder direkt in der Gesamttabelle?
Welche Auswertungen werden benötigt? Wie oft, denke monatsbezogen und pro Person? Sollen die Auswertungen nur in der Datei erzeugbar sein oder auch archiviert werden (Datei, Ausdruck)?
Muß die Lösung übergeordneten Kriterien genügen (Steuer, Buchhaltung oder sowas, wo ggf. bestimmte Vorgaben gelten könnten).
Denke, da hast du schon mal genug Stoff zum Nachdenken, danach meldest du dich einfach und erzählst deine Überlegungen hier.
Mit freundlichen Grüßen  :)
Michael
Top
#5
Hey Michael,

der Grundgedanke ist folgender:

Ich habe eine Tabelle in Excel die die Stunden meiner Mitarbeiter erfassen soll.
Die Tabelle dient dazu am Monatsende ( bzw. am 20. eines Monats ) schnell eine Übersicht über die geleisteten Stunden meines Mitarbeiters zu
bekommen, da diese die Berechnungsgrundlage für das Gehalt der Mitarbeiter darstellt. Die Stunden werden wöchentlich erfasst, sowie Krankheitstage und Urlaubstage
sind auch in der Tabelle vermerkt.

Für mich wäre es also Ideal wenn ich:

A.) Eine Eingabemaske hätte mit einer Art "Liste der Mitarbeiter" aus den ich wählen kann, um für diesen dann die erforderlichen Eingaben zu machen.
( Start,Ende, Pause, U, K, F ) U = Urlaub, K = Krank , F = Feiertag. Ideal wäre, wenn es in der Eingabemaske dazu 3 Checkboxen für U K und F gäbe. ) dann wird mit pauschal z.b. mit 8 Stunden gerechnet.

B.) Für jeden Mitarbeiter eine Tabelle hätte in der die Daten von Punkt A eingetragen werden.

C.) Eine Auswertung für den Mitarbeiter wäre nicht schlecht. Ich denke allerdings Wenn die Tabelle korrekt erstellt worden ist mit ID Vergabe, sollte das über Crystal Reports kein Problem darstellen, entsprechende Abfragen zu generieren die die relevanten Daten beinhalten. Dies reicht allerdings einmal im jahr ( eine Art Übersicht )

Ich habe mal ein Bild von der Form gemacht wie ich mir das ganze ungefähr vorstelle.
Im Grunde habe ich keine großen Anforderungen :D Meine Arbeitsmappe ist schon sehr überladen.. ich weiß ^^


Angehängte Dateien Thumbnail(s)
   
Top
#6
Hallo,

ich bin es mal wieder. Ich habe Tabelle soweit komplett.

In der Eingabemaske habe ich nun zwei Listboxen: in einer ListBox stehen die Mitarbeiter ( Jeder Mitarbeiter hat sein eigenes Tabellenblatt ) . Sobald ich den entsprechenden Mitarbeiter ausgewählt habe, springt er automatisch zu der Tabelle. Das funktioniert schon mal.

Ich habe allerdings noch eine zwei ListBox mit den Einträgen von 4 - 52, also ungefähr so:

4
5
6
7
8
usw usw usw:

Dies Zahlen sind die Kalenderwochen.

Ich möchte es erreichen, dass wenn ich beispielsweise 6 auswähle, er automatisch in die Zeile bei A springt in der 6 steht.

Meine Tabelle ist so angeordnet:

A
KW
6--< ( Kalenderwoche )
6
6
6
6
6
6
7
7
7
usw usw

Das heißt, ich möchte das wenn ich in der Listbox die "6" auswähle das er zu der ersten "6" in Spalte A Springt.
Dort werden dann die Eingaben gemacht ( siehe Eingabemaske ) also die Zeiten eingegeben und sollen in der Zeile dann an der richtigen Stelle eingefügt werden.

Ich hänge meine Datei mit an, damit es deutlich wird.

Vielleicht hat jemand eine Idee wie ich das schaffen könnte.

Lieben Dank!


Angehängte Dateien
.xlsm   Forum.xlsm (Größe: 83,75 KB / Downloads: 10)
Top
#7
Hallo Malte,

hier eine Lösungsvariante:

Code:
Private Sub ListBox2_Click()
   Dim lngKw
   lngKw = Application.Match(ListBox2, Columns("A"), 0)
   If Not IsError(lngKw) Then
      Application.Goto Cells(lngKw, 1), True
   Else
      MsgBox "Kalenderwoche " & ListBox2 & " nicht vorhanden"
   End If
End Sub

Noch ein Tipp, wenn Du schon mit einer Userform arbeitest, dann versuch so wenig wie möglich
selber Eintragungen zu machen. Stattdessen besser mit Auswahlfeldern arbeiten. So, wie Du es
mit der Listbox machst. Zum Beispiel würde ich die Zeiten nicht manuell in Textboxen
eingeben, sondern aus Comboboxen auswählen. So kannst Du nur mit der Maus arbeiten und
eliminierst Fehlerquellen.

Dazu kannst Du ein Zeitstrahl in einer Spalte einer Hilfstabelle anlegen und die Comboboxen aus
dieser Spalte befüllen.
Gruß Atilla
Top
#8
Hallo Atilla,

vielen Dank für deine Antwort und den Lösungsvorschlag. Ich werde morgen direkt versuchen diesen umzusetzen.
Die Idee mit den ComboBoxen ist super, auch da werde ich mich direkt morgen mir befassen.

Ich werde im jeden Falle eine Rückmeldung geben.


Gruß

Malte
Top
#9
Hey Atilla,

also dein Lösungsweg hat total super funktioniert. Sobald ich jetzt die KW auswähle, springt er in Spalte A zu dem entsprechenden Eintrag.
Ich habe auch deinen Rat befolgt und für die Uhrzeiten/Pausen ComboBoxen angelegt in 30 minuten Schritten, anschließend habe ich die ComboBoxen als hh:mm deklariert. Funktioniert
hervorragend!

Jetzt fehlt mir zu meinem Glück nur noch die Sache um das was in den ComboBoxen steht auch an der richtigen Stelle in der Tabelle einzutragen. Ich habe zwar schon recht viel Erfahrung mit Excel, bei VBA allerdings ist bei mir dann auch schnell Schluss, zu mal mein vorhaben recht spezifisch ist und ich gar nicht weiß wie ich das bei Google eingeben könnte.

Es sollte so funktionieren:

Wenn ich die entsprechende KW ausgewählt habe, springt er ja direkt zu dieser Zeile:

Nehmen wir hier als Beispiel meine angehängte Datei von einem meiner früheren Beiträge:

Ich bin in der Eingabemaske, wähle den Mitarbeiter Max Mustermann und die KW aus. Sagen wir ich möchte für in diesem Beispiel für KW 9 die Einträge vornehmen.

er springt zu KW 9 und die Daten würden dann ja wie folgt eingetragen werden:

Montag:Beginn: 37;4
Montag:Ende:37;5
Monatg:Pause:37;6
Montag:Urlaub/Krank:37;12

Dienstag:Beginn: 38;4
Dienstag:Ende:38;5
Dienstag:Pause:38;6
Dienstag:Urlaub/Krank:38;12

usw usw..
manuell dies der Box zuzuweisen ginge vielleicht noch, aber sobald ich die KW ändere, ändert sich ja auch die Zeile. Gibt es da eine Möglichkeit?
die Spalten ändern sich ja nicht, nur die Zeile.

Beste Grüße

Malte
Top
#10
Hi Malte,

jetzt mal wieder eine doofe Frage von mir:

(01.11.2014, 10:52)Malte1983 schrieb: also dein Lösungsweg hat total super funktioniert. Sobald ich jetzt die KW auswähle, springt er in Spalte A zu dem entsprechenden Eintrag.

Warum muß bei KW-Auswahl zum entsprechenden Eintrag in der Tabelle gesprungen werden?

Durch die Überlagerung der Tabelle mit der Userform kann ich doch sowieso nicht sehen, was drin steht. Der Eintrag in die Zeile kann auch erfolgen, wenn der Cursor nicht drin steht, bzw. die Zeilen nicht angesprungen werden. Deswegen verwende ich doch eine Userform, damit ich nicht die Zeilen anspringen muß, sonst könnte ich es gleich in die Zeile eintragen.

Außerdem ist bei Auswahl von KW 1-4 das Jahr 2015 dran und bei 4-52 das Jahr 2014 (KW 4 steht teilweise in beiden Jahren). Da sollte vielleicht noch eine Jahresauswahl in die Userform eingebaut werden.
Top


Gehe zu:


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