Anzeige
Archiv - Navigation
1264to1268
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
Inhaltsverzeichnis

Urlaubsplan - fcs

Urlaubsplan - fcs
Thomas
Hallo Franz!
Nachdem ichzu meinen Beitrag "SVERWEIS" weder aufrufen noch scrollen kann habe ich über o. g. Betreff
noch folgende Frage.
Unter: cmderfassen
'Urlaubstage in der KW, min. von Werte falls 1/2 Tage angegeben sein sollten
iUtage = Application.WorksheetFunction.Min(Werte, fncNettoArbeitstage(dat1, dat2))
erwähnst du "halbe Tage". Heisst das, man kann auch halbe Tage erfassen? Und wenn ja, wie?
Gruß
Thomas

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Urlaubsplan - fcs
15.06.2012 08:36:56
fcs
Hallo Thomas,
ich hab das jetzt nicht bis zum Ende getestet.
Bei einzelnen Tagen gibt man gegebenfalls 0,5 ein
Bei mehreren Tagen ändert man die ermittelten Tage in 2,5 oder auch 6,5
Meine Ides war, dass wenn der Urlaub mehr als 1 KW umfasst inklusive eines Tages mit einem halben Tag, dann muss der halbe Tag einer der Wochen zugeordnet werden. Der halbe Tag sollte hier automatisch der 1. KW des Zeitraums zugeordnet werden.
Das klappt aber noch nicht.
Die Variable iUtage ist falsch deklariert.
Sie muss Sie muss als Double deklariert werden nicht als Integer.
  Dim iUtage As Double

Sinnvoller Weise sollte dann die Variable iUtage in der Prozedur in dUtage umbenannt werden.
Dann funktioniert es bei Eingaben für einzelne Tage oder Eingabe für eine KW aber noch nicht bei Eingabe über einen Zeitraum von mehren KW.
Da muss ich nochmal prüfen, wie das machbar ist.
Gruß
Franz
Anzeige
AW: Urlaubsplan - fcs
15.06.2012 17:54:53
Thomas
Hallo Franz!
Ich hab heute in der Arbeit schon umdeklariert von Integer auf Double. Es funktioniert auch.
Ausserdem habe ich auch einen Commandbutton hinzugefügt, der die Eingaben löscht und
den Focus auf ComboBox1 wieder setzt. Mein Vorgesetzter ist diese Woche krank, wie andere Mitarbeiter auch. So bleibt mir nicht anderes übrig, als die Änderungen in meiner Mittagspause vorzunehmen.
Die halben Tage sind, so denke ich, eher die Ausnahme. Wobei ich dafür plädiere, die Woche, in der der halbe Tag anfällt separat zu erfassen. Z. B. von Mo bis Mi 02.01. bis 04.01. und dann die 3 Tage (dUtage)
überschreiben mit 2,5. So kann der Urlaub mit dem halben Tag auch genau der KW zugeordnet werden, in der er auch anfällt. Ich denke das ist vom Aufwand her das Einfachste.
Gruß
Thomas
Anzeige
AW: Urlaubsplan - fcs
16.06.2012 22:21:24
Thomas
Hallo Franz!
Wie kann ich denn über eine neue Textbox7 "Bemerkungen" in den entsprechenden KW´s übernehmen?
Ich komm da einfach nicht voran.
Kannst du mir wieder helfen?
Gruß
Thomas
AW: Urlaubsplan - fcs
17.06.2012 23:55:17
fcs
Hallo Thomas,
wenn du für für mehrere KW jewweils unterschiedliche Bemerkungen angeben können möchtest, dann legst du entsprechend viele (z.B. 4) Textboxen an.
Im Code für denErfassen-Button muss du dann an der entsprechenden Position folgendes ergänzen:
        'Folgewoche
.Cells(Zeile, 19).Value = sFolgewoche
'Bemerkung - Spalte W
Select Case iKW - iKW1
Case 0
.Cells(Zeile, 23).Value = Me.TextBoxBem1
Case 1
.Cells(Zeile, 23).Value = Me.TextBoxBem2
Case 2
.Cells(Zeile, 23).Value = Me.TextBoxBem3
Case 3
.Cells(Zeile, 23).Value = Me.TextBoxBem4
Case Else
MsgBox "Mehr als 4 Wochen Urlaub am Stück gibt es nicht!"
End Select
Gruß
Franz
Anzeige
AW: Urlaubsplan - fcs
18.06.2012 17:49:17
Thomas
Hallo Franz!
Vielen Dank! Ich hab vergessen, dass ja einige Spalten ausgeblendet sind!! Jetzt hab ich die Spalte angegeben, die ausgeblendet war. Den Eintrag hab ich natürlich nicht gesehen. Jetzt muss ich über meinen Fehler lachen!!! :-))
Ich hab noch eine Menüleiste Programmiert, in der die KW´s in einem DropDownMenü angezeigt werden.
Da geht dann die Suche schneller. Was noch gut wäre ist ebenfalls eine Menüleiste, in der ich die einzelenen KW´s ausdrucken kann, aber nur bestimmte Bereiche und nicht alles.
Sub KW01_drucken()
On Error GoTo fehler
Dim Mldg, Stil, Titel, Antwort, Text1
Mldg = "Name :   " & Application.UserName & vbLf & _
"Datum:   " & Date & vbLf & _
"Uhrzeit: " & Time & " Uhr" & vbLf & _
"Möchten Sie diese KW wirklich drucken?"
Stil = vbYesNo + vbInformation + vbDefaultButton2
Titel = "                                                       H I N W E I S"
Antwort = MsgBox(Mldg, Stil, Titel)
If Antwort = vbYes Then
Sheets("KW01").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Else
Text1 = "Nein"
End If
Exit Sub
fehler:
MsgBox "Achtung, diese Tabelle existiert in dieser Arbeitsmappe nicht!", vbInformation
End Sub
Gedruckt soll aber nur der Bereich, z. B. B bis S und die Spalte W mit den Bemerkungen
Bei meiner Anweisung Sheets("KW01").Select wird ja alles gedruckt. Das ist aber nicht nötig.
Wie muss ich hier die Anweisung abändern, dass nur die die Bereiche B bis S und Spalte W gedruckt werden?
Dann haben wir es aber.
Die halben Tagen laufen dann über einen Eintrag in den Bemerkungen, z. B Mittwoch halber Tag.
Ansonsten ist alles super!!!
Gruß
Thomas
Anzeige
AW: Urlaubsplan - fcs
19.06.2012 19:41:50
Thomas
Hallo Franz!
Momentan habe ich diese Lösung zum Drucken:
Worksheets("KW01").Range("B18:S23", "W18:W23").PrintOut , Preview:=True
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sollte es was Besseres geben bin ich für jede Verbesserung dankbar.
Gruß
Thomas
AW: Urlaubsplan - fcs
19.06.2012 23:16:02
fcs
Hallo Thomas,
ich würde es wie folgt lösen.
Die Spalten, die nicht gedruckt werden sollen werden vor dem Drucken ausgeblendet, danach wieder eingeblendet.
Wenn die Vorschau nicht gefällt, dann Vorschau schliessen, ansonsten dort den Druck bestätigen.
Am einfachsten wird es wohl, wenn du das gewünschte Blatt selektierts/aktivierts. Dann das Makro
"print_ActiveKW" startest.
Gruß
Franz
Sub print_KW01()
Call PrintSheet(strSheetname:="KW01")
End Sub
Sub print_ActiveKW()
If Left(ActiveSheet.Name, 2) = "KW" Then
Call PrintSheet(strSheetname:=ActiveSheet.Name)
Else
MsgBox "Dieses Makro nur starten wenn aktives Blatt ein KW-Blatt ist", _
vbInformation, "Drucken-Makro ""print_ActiveKW"""
End If
End Sub
Sub PrintSheet(strSheetname As String)
With Worksheets(strSheetname)
.Columns(1).Hidden = True  'Spalte A ausblenden
.Columns(20).Hidden = True 'Spalte T ausblenden
.PrintOut Copies:=1, Collate:=True, preview:=True
.Columns(1).Hidden = False  'Spalte A einblenden
.Columns(20).Hidden = False 'Spalte T einblenden
End With
End Sub

Anzeige
AW: Urlaubsplan - fcs
20.06.2012 17:28:32
Thomas
Hallo Franz!
Zuerst die Frage: Hast du meine Email erhalten?
Danke für deine professionelle Hilfe.
Heute habe ich erfahren, dass die KW´s nicht gedruckt werden sollen, sondern als PDF-File auf den
Deskop ausgelagert werden sollen.
In den einzelnen KW´s sind unzähliger Filter. Es soll aber die Spalte Status gefiltert werden.
Und zwar nach "Genehmigung". Es sollen also nur die Mitarbeiter noch angezeigt werden, die den
Status "Genehmigung" haben. Danach soll der Bereich A:W in ein PDF.Format umgewandelt werden
und auf den Deskop gespeichert werden. Am besten soll das, wenn möglich, mit "Row" geschehen, damit bis zum letzten Mitarbeiter mit dem Status "Genehmigung" in PDF umgewandelt wird. Ansonsten pauschal A17:W50 z. B. Zu beachten ist aber, dass in den Zeilen 229 auch noch Einträge vorhanden sind!
Ich hab heute mal damit begonnen:
Worksheets("Sheet1").Range("A1").AutoFilter _
field:=1, _
Criteria1:="Otis"
VisibleDropDown:=False
Funktioniert aber nur, wenn ich zuerst die Filter entferne, sonst wird gar nichts gefilter!
Mann müsste also den Filter in der entsprechenden Tabelle zuerst entfernen. Mit o. g. Anweisung den Filter setzen. Dann Umwandlung der Filtereinträge nach "Genehmigung" in PDF und auf Desktop auslagern, danach die ursprünglichen Filter wieder setzen.
Das Drucken, wie ich es gemacht habe hätte schon gepasst, aber sie wollen es als PDF.
Ansonsten läuft alles gut!
Gruß
Thomas
Anzeige
AW: Urlaubsplan - fcs
20.06.2012 21:08:01
Thomas
Hallo Franz!
Mit Hilfe von Klaus habe ich nun folgenden Quellcode erstellt:
Sheets("KW01").Activate
ActiveSheet.AutoFilterMode = False
Worksheets("KW01").Range("K23:K100").AutoFilter _
field:=1, Criteria1:="Genehmigung" ', VisibleDropDown:=False
Dim sPath As String
sPath = ThisWorkbook.Path 'ANPASSEN
If sPath = "" Then
MsgBox "Die Datei muß zuerst gespeichert werden"
Exit Sub
End If
sPath = IIf(Right$(sPath, 1) = Application.PathSeparator, sPath, sPath & Application. _
PathSeparator)
Dim rng As Range
Set rng = ActiveSheet.Range("A1:W40") 'ANPASSEN
'On Error GoTo ENDE
Application.DisplayAlerts = False
Dim PDF_NAME As String
PDF_NAME = sPath & "Export vom " & Format(Date, "dd.mm.yyyy") & ".pdf" 'ANPASSEN
If Not PDF_NAME = "Falsch" Then
rng.ExportAsFixedFormat Type:=xlTypePDF, Filename:=PDF_NAME, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End If
'ENDE
Application.DisplayAlerts = True
Was aber noch fehlt ist, dass der Autofilter in A22 : W22 wieder gesetzt sein soll, d. h. die Filterpfeile sollen wieder sichtbar sein. Sonst muss das manuell erfolgen. Aber ein Anfang ist schon mal gemacht.
Gruß
Thomas
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige