PDA

Vollständige Version anzeigen : 52 Wochenblätter(Tabellen A4), wie organisieren?


optimfish
29.06.2006, 10:20
Hallo zusammen

Ich trete da mit einem Problem auf euch zu, das ich eigentlich auch selber lösen könnte. Ich bin mir aber nicht sicher, was die beste Lösung ist!

52 Wochenblätter mit je einer Tabelle, welche genau ein A4 Blatt ausfüllen, möchte ich in eine Datei bringen. Auf dieser Tabelle werden Stunden der Mitarbeiter erfasst und Ferien grafisch dargestellt. Zuerst dachte ich daran, jede Tabelle in ein eigenes Sheet zu bringen. Aber das ist wenig flexibel und auch nicht praktisch, wenn ich vielleicht ab und zu etwas aus einer vorhergenden Tabelle kopieren möchte. Also müssen diese 52 Tabellen in ein Blatt! Das scheint mir also klar zu sein.

Jetzt kommt aber die eigentliche Frage: Wie organisiere ich die Navigation? Es werden ja damit wohl an die 3000 Zeilen sein, am Schluss. Wie garantiere ich, dass jede Seite einem A4 Blatt entspricht? Das ist wichtig, denn ich möchte manchmal mehrere Wochen mit einem Klick ausdrucken. So könnte ich also die Tabellen übers Druckmenu anwählen, vorausgesetzt, dass jede Tabelle genau eine Seite gross ist (keine Überschneidungen)

Über Ideen zu diesem Problem würde ich mich sehr freuen.

R J
08.07.2006, 11:55
Hallo zusammen

Ich trete da mit einem Problem auf euch zu, das ich eigentlich auch selber lösen könnte. Ich bin mir aber nicht sicher, was die beste Lösung ist!

52 Wochenblätter mit je einer Tabelle, welche genau ein A4 Blatt ausfüllen, möchte ich in eine Datei bringen. Auf dieser Tabelle werden Stunden der Mitarbeiter erfasst und Ferien grafisch dargestellt. Zuerst dachte ich daran, jede Tabelle in ein eigenes Sheet zu bringen. Aber das ist wenig flexibel und auch nicht praktisch, wenn ich vielleicht ab und zu etwas aus einer vorhergenden Tabelle kopieren möchte. Also müssen diese 52 Tabellen in ein Blatt! Das scheint mir also klar zu sein.

Jetzt kommt aber die eigentliche Frage: Wie organisiere ich die Navigation? Es werden ja damit wohl an die 3000 Zeilen sein, am Schluss. Wie garantiere ich, dass jede Seite einem A4 Blatt entspricht? Das ist wichtig, denn ich möchte manchmal mehrere Wochen mit einem Klick ausdrucken. So könnte ich also die Tabellen übers Druckmenu anwählen, vorausgesetzt, dass jede Tabelle genau eine Seite gross ist (keine Überschneidungen)

Über Ideen zu diesem Problem würde ich mich sehr freuen.
Hi Franz,

ist das Problem noch aktuell oder schon gelöst? Falls es noch aktuell ist, schick mir mal Deine Vorlage. Das ist kein unlösbares Problem.

Ciao, Ralf

optimfish
08.07.2006, 22:15
Hoi Ralf

Freut mich natürlich, dass du mir da weiterhelfen willst. Ich habe mal die ersten 5 Wochen gemacht. Aber es bleibt da noch viel Arbeit. Zum Beispiel ist da das Problem mit der Monatsangabe. Die hätte ich am liebsten auch automatisiert. Es gibt aber Wochen, wo 2 Monate in einer Woche "vorhanden" sind, da habe ich im Moment keine Ahnung, was für eine Formel ich da anwenden könnte. Auch ist die Frage der Navigation noch ungelöst. Ich möchte ja eine bestimmte Woche anwählen können. Ich habe gedacht mit Schaltflächen (52 Stück auf der ersten Seite, und pro Woche 3...eine für eine Woche vor und eine für zürück und die Mittlere zu Seite eins, wo dann die 52 Wochen direkt anwählbar wären) Aber wie man das am schlauesten macht, da bin ich noch im Fragezeichen.

Ich freue mich auf jeden Hinweis, auch wenn er noch so klein ist!

R J
09.07.2006, 12:26
Hi Franz,

bei allem Respekt vor Deiner Mühe und Deinem Vorhaben, aber Deine Vorlage ist aus datentechnischer Sicht so vorteilhaft wie eine Beinprothese bei der Bewerbung zur Miss World Wahl. Ich habe selten eine solche Anhäufung von Redundanzen gesehen. Deshalb folgende Vorschläge:

Wenn möglich, löse dieses Problem mit Access.
Falls nicht, erstelle Dir ein 3-dimensionales Datenbild.
1. Dim.: Wochentabelle, Mitarbeitertabelle, Aufgabentabelle, evtl. Ergebnistabelle
2. Dim.: Mitarbeiter - Zeilen
3. Dim.: Zeit - Spalten

Die Wochentabelle brauchst Du ja nur 1 x zu erstellen und jeweils bei Bedarf neu erstellen (lassen). Dort werden alle Mitarbeiter (aus der Mitarbeitertabelle - somit flexibel) und die Stunden erfasst. Die Aufgaben kannst Du in eine Listbox aus der Tabelle Aufgaben einlesen und dann im Wochenblatt dem Mitarbeiter zuweisen. Also nix mit kopieren müssen.
Da Du in diesem Fall Wochenarbeitsblätter erstellst, hat sich auch die Frage nach dem Druck einer Woche über 2 Monate hinweg erledigt.
Bist Du des Teufels fette Beute? 52 Buttons? Wen willst Du denn damit erschlagen? Nimm besser ein Textfeld (von mir aus auch eine Inputbox) und lass den User dort das Datum eingeben. Oder benutze ein Kalendersteuerelement zur Datumsauswahl, aber um Himmels Willen keine 52 Buttons!!!
Was bist Du? Ein besonders skrupelloser Sklavenhalter? Du lässt Deine Mitarbeiter zwischen 7 und 8.00 Uhr teilweise bis zu 75 Min. arbeiten...tztztz... oder arbeiten sie nur 60 und Du bezahlst ihnen 75 ?...;-) Weiter so!!! Im Ernst, solche Fehleingaben solltest Du versuchen zu verhindern.

Good Luck!

Ralf

optimfish
09.07.2006, 18:59
Hallo Ralf

Herzlichen Dank für deinen ausführlichen Bericht! Ich muss dir allerdings verraten, diese Tabelle habe ich nicht gemacht, nur übernommen. Ich weiss nicht von wem meine Chefin diese Tabelle bekommen hat. Sie macht dann einfach für eine Stunde eine 1 oder eine 1.5 und die werden dann addiert. Von 22.00 Uhr bis 7.00 Uhr ist Nachtzeit, da gelten Besondere Bestimmungen. Wenn dann ein schon um halb Sieben anfangen muss, macht sie einfach ein 1.5 bei 7 bis 8 Uhr. Wenn ich der Chefin nur schon das Wort "Access" nenne, bekommt sie wackelnde Ohren. Sie möchte am Layout möglichst nichts verändern. Am liebsten scrollt sie mit der Maus :grins: Auch ist meine Zeit beschränkt, die ich dafür aufwenden kann.

Ich werde also die Datei im grossen und ganzen so lassen (Sie wünscht sich alle 52 Wochen die sie von oben nach unten scrollen kann) Mir ist klar, dass dies keine profesionelle Lösung ist, aber wenn sie's so will :rolleyes: Ich mache jetzt halt vorallem auf Schadensbegrenzung. Vorallem wie ich diese 52 Wochen ansteuern soll. Da hast du ja einige Vorschläge gebracht, die mir noch Neuland sind.

Aber man muss auch sagen, die Datei funktioniert und ist eigentlich übersichtlich. Ich kann jede Woche in beiliebeiger Anzahl bequem über das Druckmenu ausdrucken, da jede Woche exact einer A4 Seite entspricht. Das Wichtigste war überhaupt das automatisierte eingeben der Datumsdaten. So kann sie schon viel Zeit sparen. Stell dir vor, die hat jedes Datum von Hand hineingeklempert, bis jetzt. Zuweilen kam das Datum doppelt vor oder es stimmte nicht mit dem Wochentag überein. Mit jeder Woche hat sie eine neue Datei generiert.

Sobald ich Zeit habe, werde ich mich dem widmen und ich hoffe du wirst mir helfen, diese 52 Wochen anzusteuern. Meistens bleibt sie ja bei der gleichen Woche, wo sie aufgehört hat. Diese wird ja beim erneuten öffnen automatisch wieder geladen. Und vergiss nicht, es geht auch darum, diese Daten im Archiv zu halten. So sind die Wochen einfach zu sichern und man findet jede schnell wieder. Der Nachteil, dass die Datei schnell gross wird, mit all diesen Farben :rolleyes:

Also, ich melde mich dann wieder!

R J
10.07.2006, 16:47
Hi Franz,

die Datenbank, die Ihr bräuchtet, wäre leichter zu bedienen als eine Textverarbeitung...:-)

Ok, Du, bzw. Deine Chefin wollen keine Veränderungen. Scrollen ist ja auch was feines! Ich werde mich jedoch nicht an der Kultivierung halbherziger Lösungen beteiligen. Dazu ist mir meine Zeit zu schade.
Deine Lösung 'funktioniert' nur, solange keine Änderungen eintreten. Was, wenn ein Mitarbeiter hinzugefügt werden muss? Da fängst Du wieder von vorn an...

Wie dem auch sei. Die Ansteuerung der Wochen ist ja kein großer Akt. Füge folgenden Code in das Modul von 'DieseArbeitsmappe' ein:

Option Explicit

Private Sub Workbook_Open()
Gehe_zu_KW
End Sub

Sub Gehe_zu_KW()

Dim Woche$, aktuell$
aktuell = CStr(KW(Date))
Woche = InputBox("Geben Sie die gewünschte Woche ein.", "Gehe zu Kalenderwoche...", aktuell)
Cells.Find(What:=Woche, After:=Range("A1"), LookIn:=xlValues, LookAt:= _
xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
End Sub

Function KW(Datum As Date) As Integer
Dim t&
t = DateSerial(Year(Datum + (8 - Weekday(Datum)) Mod 7 - 3), 1, 1)
KW = (Datum - t - 3 + (Weekday(t) + 1) Mod 7) \ 7 + 1
End Function

Er bewirkt, dass beim Öffnen der Mappe der Nutzer gefragt wird, welche KW er ansteuern möchte. (Standard ist die jeweils aktuelle KW). Nach Bestätigung wird die Zeile, die in Spalte A die angegebene Woche enthält, aktiviert. Das Makro lässt sich mit Alt + F8 beliebig oft neu aufrufen.

Viel Spaß!

Ciao, Ralf

optimfish
10.07.2006, 17:48
Herzlichen Dank, Ralf!

Ich begreife, dass du die Sache als Mist betrachtest aber ich habe die Änderungen nicht halbherzig gemacht und einen Mitarbeiter habe ich auf Reserve kommt noch dazu, dass das Heim jetzt schon überbelegt ist. Also ich glaube mit deinem Modul reicht das ganze für meine Chefin, die konnte schon gar nicht glauben, dass Datumsangaben jetzt automatisch eingefügt werden.

Aber was Access betrifft, das würde mich persönlich sehr interessieren. Würdest du mir dabei helfen? Aber Achtung, ich habe vor 10 Jahren mal so ein Tutorial durchgearbeitet, war ne halbe Buchhaltung für einen Kleinbetrieb, seither habe ich mich nicht mehr damit beschäftigt. Allerdings fand ich die Funktionen schon toll! In dem Fall würde ich aber wohl einen neuen Thread im Access Forum erstellen. Wobei ich im Moment keine Zeit dazu habe. Aber ich denke schon, das wäre ein Muster-Problem für Access, das würde ich gerne lernen. Meinst du ist das für mich machbar übers Forum, ohne wirkliche Access-Kenntnisse?

Tschüsss und nochmals vielen Dank für deinen Code

R J
10.07.2006, 21:55
Hi Franz,

niemand hat von 'Mist' gesprochen. Und jeder hat mal klein angefangen. Das ist nix ehrenrühriges, sondern ganz normal.

Wenn Du Dich für Access interessierst, solltest Du mal mit Deiner Chefin reden ob sie Dich nicht zu einem Lehrgang schickt. Ein Forum kann das
a) nicht leisten und
b) ist es auch nicht Sinn und Zweck eines Forums.

Foren dienen m.E. nach der Hilfe zur Selbsthilfe. D.h., Eigenbemühungen und Grundkenntnisse werden vorausgesetzt.
Speziell bei Access sind mehr oder weniger umfangreiche theoretische Kenntnisse der Datenbanktheorie erforderlich. Ich persönlich kenne kein Fachbuch unter 100 A4 Seiten. Und das sind nicht unbedingt die empfehlenswerten. Wie willst Du das so nebenbei und bei Deinem angesprochenen Zeitmangel managen?

Es ist auch nicht Sinn und Zweck von Foren Komplettlösungen zu liefern. Zumal der Lerneffekt bei dieser Vorgehensweise hart gegen Null tendiert. Selbstverständlich kannst Du diesbezüglich einen neuen Access Thread eröffnen. Ich persönlich würde aber davon abraten. Erfahrungsgemäß stiftet diese Vorgehensweise ohne ausreichendes Hintergrundwissen mehr Verwirrung als Nutzen. Es ist besser, die Informationen sinnvoll geordnet und aus einer Hand zu bekommen.

Kurz gesagt, versuche zum Erlernen von Access einen Kurs zu belegen oder eine fundierte, ggf. problemorientierte Mitarbeiterschulung vor Ort zu organisieren.
Für Komplettlösungen einen Fachmann engagieren. Beides kostet zwar Geld, ist langfristig aber die bessere Alternative. Kein Landwirt käme auf die Idee, ein Huhn werden zu wollen nur um das Hühnerfutter für die Frühstückseier legenden Hühner sparen zu können.

Ciao, Ralf

PS: Zu Schulungen und/oder Komplettlösungen kannst Du bei Bedarf gern bei mir nachfragen.

optimfish
11.07.2006, 06:21
Hallo Ralf

Genauso wie du es schreibst, habe ich mir gedacht, dass es so ist. Ich mache im Moment so viel in meiner Freizeit, da kann ich unmöglich noch einen fundierten Access Kurs in der Freizeit besuchen. Ich sag's ja mal der Chefin, aber wie's aussieht, ist sie höchst zufrieden mit meinen Excel Hobbykünsten.

Alles Gute und viel Erfolg mit deinem Geschäft! Gibst du denn auch Kurse in der Schweiz??

Tschüsss

R J
11.07.2006, 11:57
Hi Franz,

>Gibst du denn auch Kurse in der Schweiz??

Warum denn nicht? Wenn es gewünscht wird. Ich hab sogar schon Kurse in Bayern gegeben... ;)

Ciao, Ralf