Urlaubsplaner mit Combobox
#1
Guten Abend liebe Community ,

ich suche nach etwas Hilfe da ich noch nicht erfahren bin in Excel.

Ich brauche eine Lösung für folgendes Problem:
Combobox1 ist für die Mitarbeiter eingestellt ( ab Spalte A3)
Combobox2 ist für das Datum eingestellt ( ab Spalte B2 ,fortlaufend C2, D2 ,E2 usw.)
Combobox3 ebenfalls.
Combobox4 ist mit der Urlaubsbezeichnung "U" und "G" gekennzeichnet.

Jetzt möchte ich gerne wenn ich das Formular öffne und den Mitarbeiter auswähle ,das Datum wähle "von" "bis" und die Urlaubskennzeichnung dass er mir dass genau in der richtigen Zelle einträgt.

Beispiel = Mitarbeiter: David ; Datum: 03.01 bis 04.01 ;Urlaubskennzeichen: U
= In Zelle D3 und E3 müsste nun das U eingetragen sein.

Das müsste doch ähnlich funktionieren wie "Index" ,da wird doch auch die Schnittstelle via Zeile und Spalte ermittel und der Wert der drinne steht ausgelesen. Nur will ich nicht auslesen sondern eintragen :)

Im Anhang befindet sich die aktuelle Version meines vorhabens [Bild: biggrin.gif]


.xlsm   Urlaub_2.xlsm (Größe: 24,99 KB / Downloads: 36)






Gestellt habe ich die Frage auch bei:
http://www.ms-office-forum.net/forum/sho...p?t=339716
leider keine Antwort bis jetzt :22:
Top
#2
Hallo,

ersetze den gesamten bisherigen Code hinter der Userform mit unten stehendem:


Code:
Private Sub ComboBox3_Change()
 ComboBox4.Column = Range(Cells(2, Me.ComboBox3.ListIndex + 2), Cells(2, 366)).Value
End Sub

Private Sub CommandButton1_Click()
 Range(Cells(Me.ComboBox1.ListIndex + 3, Me.ComboBox3.ListIndex + 2), Cells(Me.ComboBox1.ListIndex + 3, Me.ComboBox4.ListIndex + 2)) = Me.ComboBox5
End Sub

Private Sub UserForm_Initialize()
       'Mitarbeiter
       Me.ComboBox1.RowSource = "A3:A10"
       ComboBox3.Column = Range("b2:nb2").Value
       With Me.ComboBox5
       .AddItem "U"
       .AddItem "G"
       End With
End Sub


Danach werden sicher noch andere Probleme ersichtlich und neue Fragen werden auftauchen.
Gruß Atilla
Top
#3
Ja Atilla vielen vielen Dank das klappt ja super. Habe es vorhin auf der Arbeit ausprobiert , top !

Du hattest recht eine kleine Frage habe ich noch , ist es möglich in der Dropdownliste "Urlaub" an zu zeigen aber dann in der Zelle "U" ein zu tragen ?!

Gruß David
Top
#4
Hallo an alle , speziell an atilla  :s 

in meiner Testdatei "Urlaub_2" habe ich rumgetestet und folgendes Problem ist aufgetaucht:

Wenn ich zB Urlaub eintragen möchte vom 08.01 - 08.03 dann trägt er mir diesen nur bis zum 01.03 ein :s ?!

Ich habe mal meine Datei hochgeladen an der ich arbeite ,natürlich passt der obrige Code nicht dazu. Kann mir jemand dabei bitte behilflich sein diesen korrekt zu ändern ?

Gruss
David


Angehängte Dateien
.xlsm   Die_Urlaubsplanung.xlsm (Größe: 100,86 KB / Downloads: 20)
Top
#5
Hallo,

ich habe Da mal etwas vorbereitet:


.xlsm   Die_Urlaubsplanung(ati).xlsm (Größe: 113,07 KB / Downloads: 37)

Jetzt müssten die Daten (Datum)  noch ohne Wochenenden und Feiertage eingelesen werden.
Und das Schreiben sollte dann wahrscheinlich nicht in die Wochenende Spalten erfolgen.

Am besten in einer weiteren Tabelle die Feiertage auflisten
Wenn die Datumsreihe als Datum aufgebaut ist, können dann die WE abhängig vom Datum sich mittels Bedingter Formatierung automatisch färben.
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • Okrian
Top
#6
Wink 
Vielen vielen dank , das ist echt mega.

Gruss David
Top
#7
Guten Abend liebe Community , hallo atilla :18:

folgende Frage wirft sich bei meinem Vorhaben auf :

Ich möchte gerne für jeden Tag einen Ausdruck anfertigen können ,wobei der Bereich der Mitarbeiter + Die Spalte des aktuellen Datums auf einem Blatt ausgedruckt werden soll.

Meine Idee war es jeweils eine Schaltfläche über dem Datum zu legen und den Druck durch (beispiel für 2.Jan) :

Code:
Sub Drucken_Jan2()

   'Bereich Auswählen und innerhalb des Bereiches Spalten ausblenden ,drucken und wieder einblenden
   
   Columns("B:B").Select
   Selection.EntireColumn.Hidden = True
   ActiveSheet.PageSetup.PrintArea = "$A$5:$C$47"
   ActiveSheet.PrintPreview
   ActiveSheet.PageSetup.PrintArea = ""
   Columns("B:B").Select
   Selection.EntireColumn.Hidden = False
   
End Sub

auszuführen.

Ihr stimmt mir bestimmt zu dass es sehr umständlich ist für jeden Tag der ausgedruckt werden soll ,solch ein Makro zu schreiben Huh 

Könnt ihr mir helfen ,vielleicht wieder über ein "Formular" und 2 Dropdownlisten (Mitarbeiter + Datum) dieses zu meistern ? Heart

Ich danke euch für eure Mitarbeit und Hilfe

Gruss David

Anhang mit dem Tagesdruck als Printpreview


.xlsm   Die_Urlaubsplanung(ati)_Tagesdruck.xlsm (Größe: 114,13 KB / Downloads: 13)
Top
#8
Hallo,

mach das in einer extra Tabelle.
Bau da ein Formular auf, wie Du es gerne drucken möchtest.

Danach kann man nach Auswahl von Mitarbeiter und Datum das Formular entsprechend drucken.
Bei der Umsetzung des letzt Genannten können wir gerne helfen.
Gruß Atilla
Top
#9
Guten Abend ,

ich habe mal eine Schaltfläche und ein Formular gebaut.
Demnach braucht man nur den Tag (Datum) auswählen und auf "Drucken" drücken.

Als Beispiel habe ich ein Bild gemacht wie es beim Druck aussehen soll wenn ich den 02.01.17 ausgewählt habe:

   



Ich verstehe nicht ganz wieso ich das in einer anderen Tabelle machen sollte ,tut mir leid wenn ich da nicht ganz mitkomme. Schliesslich will ich den Ausdruck aus der 1.Tabelle mit dem aktuellen Stand was Urlaub ,Kranke etc betrifft. Huh

Vielen dank für eure bemühen.

Gruss David

Anhang mit aktuellem Formular für den Tagesausdruck

.xlsm   Die_Urlaubsplanung(ati)_Tagesdruck.xlsm (Größe: 115,65 KB / Downloads: 34)
Top
#10
Hallo,

unten alles Code in das Code Modul der Tabelle:


Code:
Sub ausgewählte_Spalte_sichtbar()
 'alle Spalten bis auf die ausgewählte werden ausgeblendet.
 ausblenden_alle_Spalten 'erst alle ausblenden
 Columns(Selection.Column).Hidden = False    'dann nur die ausgewählte einblenden
'  In den unteren Zeilen das erste Hochkomma löschen, wenn die Befehle ausgeführt werden sollen
'  ActiveSheet.PageSetup.PrintArea = "$A$1:$NB$47"  'Druckbereich festlegen
'  ActiveSheet.PrintOut   'Drucken
End Sub

Sub ausblenden_alle_Spalten()
'alle ausblenden
 Columns("B:NB").Hidden = True
End Sub


Sub einblenden_alle_Spalten()
'alle einblenden
 Columns("B:NB").Hidden = False
End Sub


Bitte kein PN. Alle Probleme hier weiter-besprechen oder ein neues Thema eröffnen.
Gruß Atilla
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste