Anzeige
Archiv - Navigation
684to688
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
684to688
684to688
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Neues Blatt nach aktueller KW ?? HILFE !!!

Neues Blatt nach aktueller KW ? HILFE !!!
22.10.2005 18:34:03
Jürgen
Hallo,
Mal wieder habe ich ein Problem, es dürfte aber zunächst das letzte sein.
Ich habe eine Mappe mit 6 Blätter. Diese sind nach Kalenderwochen bezeichnet.
,
42 .. 43 .. 44 .. 45 .. 46 und 47 (dazu kommt ein Blatt "Vorlage")
,
es sollen also immer 6 Wochen sichtbar sein.
Nun kommt das schwierige:
Nächste Woche ist die 43. KW, die dann vorne stehen müsste. Zum ersten Aufruf in der 43. Woche müsste die 42. KW gedruckt und gelöscht werden (ggf. kleiner Hinweis, damit manche Kollegen den Druck nicht verschlampen), die 48. KW müsste hinzukommen, wobei die Daten aus dem Blatt Vorlage kopiert werden. Dabei muss die Zahl 48 auf das Blatt der 48. Woche in Zelle C3 eingetragen werden.
Problematisch wird es auch sein, die Kalenderwochen richtig zu übernehmen, mal mit 53. Woche und mal ohne, halt abhängig vom Jahreskalender.
,
Es würde aber auch ausreichen, das macro manuell auszulösen über einen Button, dem das macro zugeordnet ist. Also Klick auf "neue Woche anlegen" und die neue Woche wird kopiert und entsprechend bezeichnet. (Blattname und C3)
Es wäre schön, wenn jemand eine Idee dazu hat. Ich weiss auch nicht, ob ich mich verständlich genug ausgedrückt habe, hoffe es aber.
Ein schönes Rest-Wochenende an alle
Gruß und Danke
Jürgen

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Neues Blatt nach aktueller KW ? HILFE !!!
22.10.2005 19:48:32
Rausch
Hi Jürgen
stell doch mal eine beispieldatei hier hinein, werde mich der sache dann annhehmen.
mfg Kurt
AW: Neues Blatt nach aktueller KW ? HILFE !!!
22.10.2005 20:15:50
Jürgen
Hi,
Ich hab momentan keine Datei zur Verfügung, da die datei auf der Arbeit ist.
Es ist ein Dienstplan, in dem nur die KW eingetragen wird. (in C3)
Dadurch ändern sich alle Datumswerte und die Schichten, Stärken und andere Abhängigkeiten.
Jetzt sollen halt nur 6 Wochen dargestellt werden. Aktuelle Woche und weitere 5 Wochen.
Das Makro müsste (z.B. über Button) eine neue Woche hinzunehmen (z.B. 48), das Blatt danach benennen und den den Wert auch in C3 eintragen, und weiterhin die abgelaufene Woche (42) drucken und löschen.
Also nicht nur ein Blatt hinzufügen. Es müsste auch kalendarisch stimmen, damit nach Woche 53 nicht Woche 54 aufgemacht wird, die es nicht gibt. (Problem: manchmal nur 52 Wochen, manchmal 53)
Gruß, Jürgen
Anzeige
AW: Neues Blatt nach aktueller KW ? HILFE !!!
22.10.2005 20:16:19
Erich
Hallo Jürgen,
versuchs mal mit folgenden Code.
Außer "Vorlage" muss kein Blatt in der Mappe enthalten sein. Im Blatt "Vorlage" sollte C3 als Text formatiert sein.
Alle gewünschten Wochen-Blätter werden, wenn sie fehlen, angelegt.
(Das "Public" vor der Fkt. gehört vor "Functi...", also "Public Functio...". Die Funktion ist übrigens auch in Excelformeln nutzbar (z. B. A2=KwDIN(A1) , wenn in A1 ein Datum steht.)
Sub Wochenblsetter() Dim strWo(6) As String, ii As Integer Dim sollWeg As Boolean, istDa As Boolean, ws As Worksheet ' sechs Soll-Wochen ermitteln For ii = 0 To 5 strWo(ii) = Format(KwDIN(Date + 7 * ii), "00") Next ii ' Vorlage als 7. Soll-Woche strWo(6) = "Vorlage" ' prüfen, überflüssige Wochen vorhanden For Each ws In ThisWorkbook.Worksheets sollWeg = True For ii = 0 To 6 If ws.Name = strWo(ii) Then sollWeg = False: Exit For Next ii If sollWeg Then MsgBox "Bitte Woche " & ws.Name & " ausdrucken und löschen." ws.Select Exit Sub End If Next ws ' prüfen, ob sechs Soll-Wochen vorhanden For ii = 0 To 5 istDa = False For Each ws In ThisWorkbook.Worksheets If ws.Name = strWo(ii) Then istDa = True: Exit For Next ws If Not istDa Then If ii = 0 Then Worksheets("Vorlage").Copy Before:=Sheets(1) Else Worksheets("Vorlage").Copy After:=Sheets(ii) End If ActiveSheet.Name = strWo(ii) Cells(3, 3) = strWo(ii) End If Next ii Sheets(1).Select End Sub
Public Function KwDIN%(DD As Date) ' DIN-Kalenderwoche aus Datum Dim tt% tt = (DD - 2) Mod 7 KwDIN = (DD - DateSerial(Year(DD + 3 - tt), 1, tt - 9)) \ 7 End Function Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Neues Blatt nach aktueller KW ? HILFE !!!
22.10.2005 20:27:19
Jürgen
Hi,
Das klappt ja schon absolut SUPER.
Er macht die Wochen auf und fügt die Werte in C3 ein.
Ändere ich das Systemdatum auf nächste Woche, kommt die Aufforderung zum Drucken und löschen.
Es wäre toll, wenn dies automatisch passieren würde halt nur mit dem Hinweis, dass die ausgedruckte Woche im Drucker liegt.
Und es müsste eine weitere Woche aufgemacht werden.
Ist der Wochenkalender richtig? Weil es da wohl verschiedene Definitionen gibt?
Schon mal riesigen Dank
Jürgen
AW: Wochenblätter - Beispielmappe
22.10.2005 20:24:18
Erich
Hallo Jürgen,
das Ganze mal in einer Beispielmappe, die gerade die 41. bis 46. Woche enthält:
https://www.herber.de/bbs/user/27726.xls
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Wochenblätter - Beispielmappe
22.10.2005 20:45:31
Jürgen
ABSOLUT SPITZE !!
Es müsste halt nur automatisch gedruckt und gelöscht werden.
Würde heißen, dass beim Öffnen der datei geprüft wird, welche Woche aktuell ist und ob gelöscht und hinzugefügt werden muss oder nicht.
Kaum zu glauben, dass die Antworten schon binnen Minuten hier einfliegen.
DANKE, Jürgen
AW: Wochenblätter - Beispielmappe
22.10.2005 22:13:37
Peter
Hallo Jürgen,
ist 'Es müsste halt nur automatisch gedruckt und gelöscht werden.' wirklich so toll?
Stell dir vor, dein Drucker fällt aus, das Blatt wird zerrissen (was zuweilen auch im besten Drucker geschehen soll) oder irgendetwas anderes geschieht, was dein Blatt nicht auffindbar macht - und dein Blatt ist gelöscht!
So, wie die jetzige Lösung ist, kann man (der Kollege) das Geschehen noch verfolgen und überwachen.
Viele Grüße Peter
Das Forum lebt auch von den Rückmeldungen.
Anzeige
AW: Automatisch drucken/löschen?
22.10.2005 23:06:43
Erich
Hallo Jürgen,
kein Programm sollte so geschrieben sein, dass es seine Aufgaben nur unter optimalen Rahmenbedingungen erfüllt.
Peter hat durchaus realistische Situationen beschrieben, in denen ein automatisches Löschen nachteilig wäre. Ich sehe das genau wie Peter, habe die Prozedur bewusst so geschrieben - nach etlichen Jahren Erfahrung mit betrieblichen Realitäten...
Noch wichtiger finde ich - auch das hat Peter angesprochen -, dass ein Programm seine Benutzer wohl unterstützen und anleiten, nicht aber über Gebühr gängeln oder bevormunden sollte. Gegen Letzteres müssen wir uns schon oft genug wehren - IMHO besonders bei M$-Produkten wie Windows und den Office-Programmen.
Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Automatisch drucken/löschen?
23.10.2005 16:50:36
Jürgen
Hallo,
Sorry, hatte Dienst.
Ihr habt recht. Es ist besser so. So vergisst man auch nicht den Druck abzuheften und löscht anschließend.
Das macro wird jetzt automatisch gestartet und prüft sofort, ob ne alte Woche raus muss. Die neue Woche gibt es dann über einen Button oder wird beim nächsten Aufruf automatisch erstellt.
Ich glaube, ich bin zu blöd für die kleinsten Sachen.
Jetzt fehlt mir u.a. doch noch eine Formel für die bedingte Formatierung oder für eine benutzerdefinierte Zellenformatierung, wenn das auch geht:
Wenn die Schicht in E6 ="Nacht" ist, soll die Stärke in C10 bis K10 kleiner als 13 ROT angezeigt werden. Ist die Schicht "Spät" oder "Früh", soll erst ab kleiner als 15 ROT angezeigt werden.
Heisst: im Nachdienst werden mind. 13 gebraucht, im Spät und Frühdienst mind. 15.
Am Wochenende sieht es wieder anders aus. Aber wenn ich mal die Formel habe, ist es ja sehr viel einfacher.
Ich lade mal die Datei hoch, ist vielleicht besser.
Upload hat nicht geklappt, habs daher bei mir hochgeladen.
http://www.dive-indonesia.de/vorplanung.xls
Gruß und Danke
Jürgen
Anzeige
AW: Bedingte Formatierung
23.10.2005 20:28:21
Erich
Hallo Jürgen,
Dienst ist eben Dienst...
Ich hab zwar die Bedeutung nicht nachvollzogen, aber das muss ja auch nicht sein. So sollte die bedingte Formatierung klappen (für C10 einrichten und nach rechts kopieren):
 
 BCDEFGHIJKLMNOPQ
6KW:  42FrühDienst vom:  17.10.05bis23.10.05 
7 
8 17. Okt.18. Okt.19. Okt.20. Okt.21. Okt.22. Okt.23. Okt.Bemerkungen
9 MoDiMiDoFrSaSo
10Stärke gesamt14343434343434 
Formeln der Tabelle
C10 : =ZÄHLENWENN(C12:C45;"")+C11
Bedingte Formatierungen der Tabelle
ZelleNr.: / BedingungFormat
C101. / Formel ist =($E$6="Nacht")*(C10<13)Abc
C102. / Formel ist =(($E$6="Spät")+($E$6="Früh"))*(C10<15)Abc
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: @ Erich G.
23.10.2005 20:33:12
Rausch
Hallo Erich,
ich glaub du hast das hier falsch reingestellt. Das Problem mit der formatierung bei dem besipiel, habe ich bereits gelöst, aber nix für ungut :))
mfg Kurt
AW: Nachtrag
23.10.2005 20:35:49
Rausch
Hi,
konntest nicht wissen, er hat weiter oben nochmals gepostet.
schönen Sonntag noch, mfg Kurt
AW: @Kurt
23.10.2005 20:44:02
Erich
Hallo Kurt,
naja, ich hätt's schon wissen können, hatte aber nicht nach evtl. anderen Threads von Jürgen geschaut. Jetzt kann Jürgen sich aussuchen, was er verwenden will.
Danke für deine Grüße und auch noch einen schönen Rest-Sonntag
Grüße von Erich aus Kamp-Lintfort
Danke an Kurt und Erich G.
25.10.2005 11:26:16
Jürgen
Hi,
Vielen Dank für eure Hilfe. Hab die Formatierungen jetzt richtig übernommen, klappt alles wunderbar.
Habe mir jetzt nur ein weiteres Problem eingebaut, was eine kleine Überarbeitung der Formel von Erich notwendig machen würde.
Es existiert ein Blatt Zukunft, was bleiben soll. Dieses Blatt müsste in dem Macro berücksichtigt und ignoriert werden. Es kommt ansonsten immer die Meldung, dass Zukunft gedruckt und gelöscht werden soll.
In diesem Blatt sollen nämlich Daten eingetragen werden, die über die 6 Wochen hinaus gehen, was nicht so oft vorkommt. Und wenn die Zeit gekommen ist und die entsprechende Woche aufgemacht wurde, soll eine Meldung kommen, dass ein Eintrag aus Zukunft übernommen werden muss. Ist er übernommen und im Blatt Zukunft gelöscht, kommt keine Meldung mehr.
Kann man das in das bestehende Macro mit einbauen?
Müsste ja dann in etwa so lauten:
Wenn Daten aus Blatt Zukunft in den Bereich aktueller KW plus weiterer 5 KW fällt, dann gib Meldung.
Nochmals besten Dank, speziell an Kurt und Erich
Gruß, Jürgen
Habe das Problem weiter oben schon mal neu beschrieben.
Anzeige
AW: Planung mit Zukunft
25.10.2005 17:33:29
Erich
Hallo Jürgen,
schau mal, ob die Planung jetzt schon eine Zukunft hat:

Sub Wochenblaetter()
Dim strWo(7) As String, ii As Integer, zz As Long
Dim sollWeg As Boolean, istDa As Boolean, ws As Worksheet
'                                     sechs Soll-Wochen ermitteln
For ii = 0 To 5
strWo(ii) = Format(KwDIN(Date + 7 * ii), "00")
Next ii
strWo(6) = "Vorlage"   ' Vorlage als 7. Soll-Woche
strWo(7) = "Zukunft"   ' Zukunft als 8. Soll-Woche (evtl.)
'                                  prüfen, ob überflüssige Wochen vorhanden
For Each ws In ThisWorkbook.Worksheets
sollWeg = True
For ii = 0 To 7
If ws.Name = strWo(ii) Then sollWeg = False: Exit For
Next ii
If sollWeg Then
MsgBox "Bitte Woche " & ws.Name & " ausdrucken und löschen."
ws.Select
Exit Sub
End If
Next ws
'                                     prüfen, ob sechs Soll-Wochen vorhanden
For ii = 0 To 5
istDa = False
For Each ws In ThisWorkbook.Worksheets
If ws.Name = strWo(ii) Then istDa = True: Exit For
Next ws
If Not istDa Then
If ii = 0 Then
Worksheets("Vorlage").Copy Before:=Sheets(1)
Else
Worksheets("Vorlage").Copy After:=Sheets(ii)
End If
ActiveSheet.Name = strWo(ii)
Cells(3, 3) = strWo(ii)
End If
Next ii
'                 Hinweis auf Blatt "Zukunft", falls vorhanden,
'                 und ein Datum nicht zu weit in der Zukunft liegt
istDa = False
For Each ws In ThisWorkbook.Worksheets
If ws.Name = strWo(7) Then istDa = True: Exit For
Next ws
If istDa Then
With Worksheets(strWo(7))
istDa = False
For ii = 3 To 4
For zz = 3 To .Cells(Rows.Count, ii).End(xlUp).Row
If Not IsEmpty(.Cells(zz, ii)) Then
If IsDate(.Cells(zz, ii)) Then
If .Cells(zz, ii) <= Sheets(strWo(5)).Range("O8") Then
Worksheets(strWo(7)).Select
Cells(zz, ii).Select
istDa = True
MsgBox "Bitte Daten von 'Zukunft' übertragen."
Exit For
End If
End If
End If
Next zz
If istDa Then Exit For
Next ii
End With
End If
If Not istDa Then Sheets(1).Select
End Sub

Geändert habe ich auch etwas im

Private Sub Workbook_Open()
' autoopen Makro
' Makro am 23.10.2005 von Juergen aufgezeichnet
'    Application.Run "vorplanung.xls!Wochenblaetter"
Call Wochenblaetter
End Sub

Dann darf sich auch mal der Name der Mappe ändern - und es läuft trotzdem noch.
Mich hat die Größe der Mappe sehr gewundert (870 kB bei den paar Daten) und mal viele ungenutzte Zellen gelöscht. Mit zwei Blättern hat die Datei jetzt 58 kB, mit allen 7 Blättern 152 kB. So lässt sich die Datei dann auch hier hochladen:
https://www.herber.de/bbs/user/27822.xls
Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Planung mit Zukunft
25.10.2005 18:33:53
Jürgen
Hi Erich,
Wirklich absolute Klasse. Tausend mal Dank, auch mit Sicherheit von all meinen Kollegen.
Klappt alles wunderbar.
Kannst ja noch mal schauen. Ich habe in Zukunft noch einen Button "sortieren" eingefügt, ist sehr praktisch bei neuen Einträgen. Und wenn nicht neu sortiert wird, spätestens mit neuem Aufruf der Datei. ;-)
http://www.dive-indonesia.de/vorplanung.xls
Und in den Wochenblättern kann man auch prüfen, ob eine neue Woche aufgemacht werden kann. Wenn sich nichts tut, dann eben keine neue Woche ;-)
Werde mir die datei zur Arbeit schicken und heute nacht direkt loslegen.
Nochmals vielen Dank und Grüße
Jürgen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige