Anwesenheitsliste mit Excel und/oder Access?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Outlook kennt VBA. Du könntest ein Makro schreiben, das alle ankommenden Mails daraufhin prüft, ob sie einem bestimmten von dir definierten und an die Anwender kommunizierten Format (z.B. Betreff ANWESENHEIT und im Body weitere relevante Daten, wie z.B. die Nummer des bearbeiteten Projekts) genügen, und die extrahierten Daten dann in eine Excel-Tabelle oder CSV-Datei einträgt.

Trilobit  06.11.2015, 23:18

Das hätte dann außerdem im Vergleich zu einer für alle Mitarbeiter lesbaren Datei den Vorteil, dass der Datenschutz gewahrt bliebe. Bei einer Anzahl von 250 Mitarbeitern kann man ja längst nicht mehr davon ausgehen, dass jeder jeden kennt und sowieso genau weiß, wann der gefehlt hat. Da könnten also faktisch völlig Fremde ein exaktes Anwesenheitsprofil von jedem erstellen, die Daten werden frei Haus geliefert.

0
Benediktiner 
Fragesteller
 08.11.2015, 11:09

Ich glaube das teste ich mal, muss ich mich zwar erst mal in VBA reinfummeln .. aber irgendwas ist ja immer :-)

1

Oh weh, rustikale Variante der Anwesenheitsprüfung.

Ist die Abstimmschaltflächen in Outlook eine Variante für Dich (Neue Mail -> Optionen -> Abstimmschaltflächen?

http://explipedia.de/abstimmungsschaltflaechen-outlook-2010-verwenden/

Das hieße aber, jemand muss täglich aktiv eine Mail rausschicken. Das Zählen wäre halt direkt erledigt und die Mitarbeiter können bei Outlook bleiben.

Mit Excel lässt sich natürlich auch etwas basteln. Ich bin allerdings nicht sicher, ob das unterm Strich für Dich besser wird.

 

Benediktiner 
Fragesteller
 08.11.2015, 11:09

Danke auch Dir für deine Gedanken. Aber ich sehe, das ich um VBA in diesem Zusammenhang wohl nicht herumkommen werde.

0

Habt Ihr ein Netzwerk mit einem zentralen Server und einen allgemein zugänglichen, geschützten Ordner? Nur dann hätte ich eine Idee, wie man durch einfaches Eintragen des Namensanfangs (und ggf noch drücken eines Buttons) eine manipulationssichere Datei erstellen könnte (mit VBA).

Mache ich aber erst, wenn ich AW erhalte.

Idee: Spalte A 250 Namen, Zeile1: Datum Monatserster bis Monatsletzter, 90° gedreht). Zeile 1 als Titel (Fenster einfrieren)

Unterhalb (zB Zeile 260) wird der Namensanfang eingetragen, Auto-Vervollständigen macht den Rest (Dafür, dass bei Maier bis Mai erst Maibaum angezeigt wird, und erst bei Maie Maier, muss der Eingeber selbst sorgen)

Bei Betätigung der Knopfes "Anwesenheit heute abschicken" wird in der Liste , Spalte = heutiger Tag, das heutige Datum eingetragen (heute sei zB Spalte G=7 für den 6. (A ist ja der Name). (braucht der Absender erst mal gar nicht zu sehen, ginge über Ansicht schützen. Die Spalte kann trotzdem schmal sei, man muss das Datum ja nicht erkennen.

in Zeile 260 neben seinem Namenseintrag sieht der Eingebende nur ein Y (für YES) mit der Formel:

=Wenn(index(G1:G259;Vergleich($A260;$A1:$A259;0)=G1;"Y";"")

Der Eingebende sieht also seine eigene Anwesenheitsliste, aber nicht die der anderen. Will er nicht, dass der nächste sie sieht, muss er seinen Namen anschließend wieder löschen. Der nächste gibt seinen Namen ein und schickt ab. Die Formeln kann man entweder per Makro generieren oder in einer Zweiten AnsichtsZeile die Anwesenheit bisher darstellen.(Zeile geschützt)

Das Makro muss kurzzeitig das Blatt entschützen und wieder schützen. Damit auch da kein Schindluder getrieben werden kann, kurzzeitig die Screenaktualisierung ausschalten.

Jeden Monat entweder ein neues Blatt oder Spalten des alten per TitelSPALTE (Namen) wegscrollen (Verbergen gar nicht nötig.) Je nach Möglichkeiten des Blatt-schützens-und-trotzdem-eintragens die Anzeige auf ein Zweites Blatt verlagern.

Versucht der Eingebende nachträglich was zu ändern, wird das erkannt, weil ja das Datum innerhalb der Liste bleibt, er überschreibt allenfalls eine Wiedergabeformel mit Y, woraus man eine Warnmeldung generieren könnte.

(ich hab das deshalb so ausführlich gemacht, damit ich selbst mich wieder an alles erinnere, wenns akut wird)

Ach ja, und wenn sich jemand zweimal am Tag einträgt, ändert das nichts, heute bleibt heute!. Nur gestern nachtragen kann er nicht, auch nicht morgen vortragen, das muss die Sekretärin mit Vollzugriff machen!


Benediktiner 
Fragesteller
 08.11.2015, 11:08

Danke Dir für deine Gedanken. Aber ich sehe, das ich um VBA in diesem Zusammenhang wohl nicht herumkommen werde.

1
Iamiam  08.11.2015, 13:46
@Benediktiner

Nutze die Makroaufzeichnung zum lernen, sie schreibt zwar viel überflüssiges rein - und vor allem kann sie keine bedingten Befehle oder Adressauswahlen wiedergeben, aber für den Anfang sollte das reichen, nur

if  Bedingung then

...

else (ggf elseif then)

...

end if

brauchst Du explizit!

und noch was: Jeder kann ja den Namen eines anderen eingeben und erhält so dessen Anwesenheiten. Das könnte vermieden werden, indem man den Namen mit einer Prüfung des Accounts verbindet (User-Name, PC-ID, etc)

Jedenfalls hat so die Sekretärin nicht die Belastung, jedes Mail in einen Eintrag umzusetzen!

0