Anwesenheitsliste mit Excel und/oder Access?
Hallo liebe Office-Fachleute,
ich bin eigentlich ein Linux-Admin und Entwickler von PHP-Anwendungen. Im Moment bin ich aber in einer Firma in der strikt Office verwendet werden muss, und das natürlich auf Windows-Systemen. Jetzt ist der Task, das eine Anwesenheit täglich frisch aus einer Gruppe von 250 Leuten erstellt werden soll. Zur Zeit (ohne Scherz!) schicken 250 Leute eine Email an eine zentrale Email-Adresse und jemand zählt die dann! wtf? Da ich kein Linux-Server aufsetzen darf, und damit keine entsprechende Anwendungt zu entwickeln ist, muss ich mit Office auskommen.
Gibt es irgendeinen Knopf in Outlook, wo der entsprechende Mitarbeiter bei Anwesenheit sich in irgendeine Anwesenheitsliste eintragen kann?
Gibt es sonst einen brauchbaren Ansatz? Excel mit Freigabe? Ein Access-Formular?
LG Benediktiner
3 Antworten
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.
Ich glaube das teste ich mal, muss ich mich zwar erst mal in VBA reinfummeln .. aber irgendwas ist ja immer :-)
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.
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.
Danke auch Dir für deine Gedanken. Aber ich sehe, das ich um VBA in diesem Zusammenhang wohl nicht herumkommen werde.
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!
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!
Danke Dir für deine Gedanken. Aber ich sehe, das ich um VBA in diesem Zusammenhang wohl nicht herumkommen werde.