Anzeige
Archiv - Navigation
1236to1240
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

Datumsformat

Datumsformat
Nico
Hallo
Ich habe folgendes Problem:
Im folgendem Code wird mir das datum was dem Urlaub zugeortnet ist( U) einzeln aufgelistet Private Sub ComboBox1_Click() Dim r As Integer Dim c As Integer Dim Datum As Date ListBox1.Clear ListBox2.Clear ListBox3.Clear ListBox4.Clear For c = 6 To 66 If ComboBox1.Value = Cells(11, c).Value Then Exit For Next c For r = 12 To 377 Datum = DateValue(Cells(r, 2).Value) If Cells(r, c).Value = "U" Then ListBox1.AddItem Datum & " 1" If Cells(r, c).Value = "F" Then ListBox2.AddItem Datum & " 1" If Cells(r, c).Value = "W" Then ListBox3.AddItem Datum & " 1" If Cells(r, c).Value = "K" Then ListBox4.AddItem Datum & " 1" If Cells(r, c).Value = "U½" Then ListBox1.AddItem Datum & " ½" If Cells(r, c).Value = "F½" Then ListBox2.AddItem Datum & " ½" If Cells(r, c).Value = "W½" Then ListBox3.AddItem Datum & " ½" If Cells(r, c).Value = "K½" Then ListBox4.AddItem Datum & " ½" Next r TextBox1.Locked = False TextBox2.Locked = False TextBox3.Locked = False TextBox4.Locked = False TextBox1.Value = "Resturl. = " & Cells(6, c).Value TextBox2.Value = Cells(7, c).Value TextBox3.Value = Cells(8, c).Value TextBox4.Value = Cells(9, c).Value TextBox5.Value = "Anspruch = " & Cells(4, c).Value TextBox1.Locked = True TextBox2.Locked = True TextBox3.Locked = True TextBox4.Locked = True CommandButton1.SetFocus End Sub
Ist es möglich den Code so umzuschreiben das er mir das Datum folgendermaßen anzeigt z.B. "02.01.2012 bis 07.01.2012"
Bin am verzweifeln
LG Nico
Bitte genauer, ...
08.11.2011 06:22:52
Marc
Moin!
Welches Format hast du jetzt, was steht in der Zelle, aus der das Datum kommt? Vielleicht wäre eine Beispieltabelle nicht schlecht.
Nebenbei: Es wäre schöner, wenn du für die 8 If-Bedingungen ein Select Case anlegest. Dann wären es noch 4 Zeilen. Die MS-Hilfe gibt da Unterstützung...
Gruß, Marc
AW: Bitte genauer, ...
08.11.2011 14:54:52
Nico
Hallo Marc
Ich danke Dir für deine Hilfe
Also folgendermaßen Sieht die Tabelle aus
Userbild
Im eingeblendetem Kontoauszug wird Das Datum einzeln aufgeführt
ich hätte gerne den ersten und den letzten Urlaubstag , eines Urlaubszeitraum angezeigt und in folgenden Format 02.01.2012 bis 21.01.2012 im Kontoauszug da ja pro Mitarbeiter weitere Wochen Urlaub dazukommen
ich danke Dir schon mal für deine Hilfe
Gruß Nico
Anzeige
AW: Bitte genauer, ...
09.11.2011 06:53:30
Nico
Bitte um Hilfe
und bei getrennten Urlaub pro Monat ?
09.11.2011 08:13:13
Matthias
Hallo Nico
hier eine Variante für zusammenhängende Urlaubstage

Tabelle1

 ABC
1Sa. 01.01.2011  
2So. 02.01.2011  
3Mo. 03.01.2011  
4Di. 04.01.2011  
5Mi. 05.01.2011UDer Mitarbeiter hat vom 05.01.2011 bis 20.01.2011 Urlaub
6Do. 06.01.2011U 
7Fr. 07.01.2011U 
8Sa. 08.01.2011  
9So. 09.01.2011  
10Mo. 10.01.2011U 
11Di. 11.01.2011U 
12Mi. 12.01.2011U 
13Do. 13.01.2011U 
14Fr. 14.01.2011U 
15Sa. 15.01.2011  
16So. 16.01.2011  
17Mo. 17.01.2011U 
18Di. 18.01.2011U 
19Mi. 19.01.2011U 
20Do. 20.01.2011U 
21Fr. 21.01.2011  
22Sa. 22.01.2011  
23So. 23.01.2011  
24Mo. 24.01.2011  
25Di. 25.01.2011  
26Mi. 26.01.2011  
27Do. 27.01.2011  
28Fr. 28.01.2011  
29Sa. 29.01.2011  
30So. 30.01.2011  
31Mo. 31.01.2011  

Formeln der Tabelle
ZelleFormel
C5{="Der Mitarbeiter hat vom " & TEXT(MIN(WENN(B1:B31="U";A1:A31));"TT.MM.JJJJ") & " bis " & TEXT(MAX(WENN(B1:B31="U";A1:A31));"TT.MM.JJJJ") & " Urlaub"}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4


aber was, wenn ein Mitarbeiter z.B so Urlaub braucht ?
Tabelle1

 AB
5Mi.  05.01.2011 
6Do.  06.01.2011U
7Fr.  07.01.2011U
8Sa.  08.01.2011 
9So.  09.01.2011 
10Mo.  10.01.2011U
11Di.  11.01.2011 
12Mi.  12.01.2011 
13Do.  13.01.2011U
14Fr.  14.01.2011U
15Sa.  15.01.2011 
16So.  16.01.2011 
17Mo.  17.01.2011U
18Di.  18.01.2011 


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Matthias
Anzeige
AW: und bei getrennten Urlaub pro Monat ?
09.11.2011 08:25:25
Nico
Hallo Matthias ich danke Dir schon einmal für deine Hilfe. Der Kontoauszug ist zur Bestätigung des Urlaubsplans für den Mitarbeitet gedacht ,daher sollte wenn möglich die Zusammenfassung in der Userform stattfinden auch wenn nur 1 Tag Urlaub wäre sollte er anzeigen zB 02.01.2012 bis 02.01.2012
das ändert doch nichts an der Formel
09.11.2011 08:33:38
Matthias
Hallo
Nur ein Tag - das geht doch auch damit ...
Tabelle1

 ABC
1Sa.  01.01.2011  
2So.  02.01.2011  
3Mo.  03.01.2011  
4Di.  04.01.2011  
5Mi.  05.01.2011  
6Do.  06.01.2011UDer Mitarbeiter hat von 06.01.2011 bis 06.01.2011 Urlaub
7Fr.  07.01.2011  
8Sa.  08.01.2011  
9So.  09.01.2011  
10Mo.  10.01.2011  
11Di.  11.01.2011  
12Mi.  12.01.2011  
13Do.  13.01.2011  

Formeln der Tabelle
ZelleFormel
C6{="Der Mitarbeiter hat von " & TEXT(MIN(WENN(B1:B31="U";A1:A31));"TT.MM.JJJJ") & " bis " & TEXT(MAX(WENN(B1:B31="U";A1:A31));"TT.MM.JJJJ") & " Urlaub"}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Meine Frage bezog sich ja auf getrennt Urlaubstage innerhalb eines Monats
Gruß Matthias
Anzeige
AW: das ändert doch nichts an der Formel
09.11.2011 08:47:16
Nico
Hallo Matthias in den obigen beitragen habe ich ein Bild meiner Tabelle eingefügt. Deine Formel funktioniert aber ich brauche dieses Format in der Userform ( siehe Bild ).
Datum von bis ins Formular übertragen
09.11.2011 09:12:45
bis
Hallo
Deine Datei werde ich nicht nachbauen, dafür mußt Du Verständnis haben.
Aber was hindert Dich denn daran das Ergebnis der Formel in das Formular zu übertragen
Hier ein kleines Beispiel
https://www.herber.de/bbs/user/77420.xls
Gruß Matthias
AW: Datum von bis ins Formular übertragen
09.11.2011 12:25:19
bis
Hallo Matthias
Das Problem ist das es z.B. 6 Wochen Urlaub gibt also mehrere Makierungen mit U in der Tabelle und er mit der Formel nur den 1 und letzten Urlaubstag im Jahr zusammenfasst. ich brauche jede Urlaubswoche einzeln damit der MA auf einen Blick sieht welche Wochen er im Jahr bekommen hat
Anzeige
..Beispieldatei ?
09.11.2011 15:13:47
robert
Zitat Matthias -Deine Datei werde ich nicht nachbauen, dafür mußt Du Verständnis haben.
Hi,
ohne Deine Datei zu kennen, bzw.welche Darstellungsform Du willst, wird es schwer......
Also-Datei mit einem Beispiel, wie es sein soll, hochladen.
Gruß
robert
AW: ..Beispieldatei ?
09.11.2011 15:33:53
Nico
Hallo Robert hier die Datei
https://www.herber.de/bbs/user/77426.zip
wenn du bei der 2 userform auf kontoauszug Mitarbeiter gehst und den MA Nico Buchholz nimmst wird jeder Urlaubstag einzeln aufgelistet.
Nun ist es für einen MA schwieriger zu sehn wie er Urlaub hat Darum wäre es formhalber schöner wenn die Urlaubswochen angezeigt werden z.B."Urlaub vom 02.01.2012 bis 21.01.2012
hoffe das reicht Dir
Danke schon mal für deine Hilfe
Anzeige
noch nicht klar...
09.11.2011 16:36:31
robert
Hi,
Nico hat lt.Anzeige vom 2.1.2012-21.1.2012 und vom 27.2.2012-3.3.2012 Urlaub
Wie ist nochmals deine Vorstellung?
Soll jetz in der Anzeige was geschehen oder nur im Ausdruck ?
Sollen die Zeiträume oder die Wochen-Nr. angezeigt-gedruckt werden?
Gruß
robert
AW: noch nicht klar...
09.11.2011 16:41:25
Nico
Hi,
Es soll in der Anzeige und im ausdruck folgendes stehen:
02.01.2012 bis 21.01.2012
27.02.2012 bis 03.03.2012
es folgen ja noch mehr Urlaubswochen die sollen dann auch weiter untereinander aufgelistet werden
..jetzt ist es klarer.....
09.11.2011 16:58:45
robert
Hi Nico,
aber ob ich das mit meinem -VBA-bescheiden- hinkriege?
Ich werd's versuchen, lasse den Beitrag aber offen,
viell.findet sich ein VBA-Guter ;-)
Gruß
robert
Anzeige
Datum von ... bis -> erster Versuch ...
10.11.2011 00:11:12
...
Hallo
also wirklich nur ein erster Versuch!

Private Sub ComboBox1_Click()
Dim r As Integer
Dim c As Integer
Dim Datum As Date
Dim DatStart As String
Dim DatEnd As String
ListBox1.Clear
For c = 7 To 52
If ComboBox1.Value = Cells(7, c).Value Then Exit For
Next c
For r = 8 To 377
Datum = DateValue(Cells(r, 2).Value)
If Cells(r, c).Value = "U" Then
ListBox1.AddItem Datum & "   1"
If DatStart = "" Then DatStart = CDate(Cells(r, 2)) 'erstes Datum
DatEnd = Datum   'letztes Datum
End If
Next r
TextBox1.Locked = False
TextBox1.Value = "Resturl. = " & Cells(6, c).Value
TextBox5.Value = "Anspruch = " & Cells(4, c).Value
TextBox1.Locked = True
CommandButton1.SetFocus
MsgBox ComboBox1.Value & " hat vom " & DatStart & " bis " & DatEnd & " Urlaub"
End Sub
Hilft Dir das wenigstens ein Stück weiter ?
Gruß Matthias
Anzeige
AW: Datum von ... bis -> erster Versuch ...
10.11.2011 04:23:02
...
Hi Matthias
der Ansatz ist Ok aber ich brauche diese Zusammenfassung in der Userbox " Kontoauszug- Urlaubszeiten 2012)
Das was jetzt in der MSG Box steht muss in die Userform
Ich danke Trotzdem erstmal :)
und was geht da nicht ...
10.11.2011 09:37:12
Matthias
Hallo Nico
Zitat
Das was jetzt in der MSG Box steht muss in die Userform
Was hindert Dich daran?
Textbox einfügen und rein damit ( statt der MSGBox eben Textbox = ... )
Userbild
Gruß Matthias
AW: Datum von ... bis -> erster Versuch ...
10.11.2011 07:58:41
...
Hi Matthias,
meiner Meinung nicht richtig-denn Nico hat vom
2.1. bis 21.1. Urlaub und dann vom
27.2. bis 3.3.
und nicht vom 2.1. bis .3. - OK, war ja nur ein 1.Versuch ;-)
Ich denke, dass es in dieser Form nicht geht, denn wie soll man jetzt erkennen,
welche Urlaube zusammengehören.
Stell Dir vor, Nico geht noch vom 1.8. bis 6.8. auf Urlaub.........
Gruß
robert
Anzeige
Das weiß ich, robert ...
10.11.2011 08:57:05
Matthias
Hallo robert
... war ja nur ein 1.Versuch
Genau so war es auch gemeint!
... wie soll man jetzt erkennen,
welche Urlaube zusammengehören

Im Grunde bin ich der gleichen Meinung!
Vielleicht könnte man in der Schleife schon die beiden nächsten Tage checken(auf ungleich "U")
Wenn also 2 Zellen unter einem eingetragenen "U" leer sind, dann ist dieses "U" das Ende einer separate Urlaubsperiode
Ist allerdings alles ein bisschen unklar, da der Samstag mit Urlaub angegeben ist.
Ändert sich das irgendwann einmal das Sa und So frei sind, dann geht diese Variante ebene nicht mehr
und man müsste auf 3 leere Zellen nach dem "U" prüfen.
Eine Endlösung habe ich nicht.
Aber man könnte ja weitertüffteln ...
Gruß Matthias
Anzeige
AW: Das weiß ich, robert ...
10.11.2011 09:05:13
robert
Hallo Matthias,
mein Beitrag war keine Kritik, ich hoffe, dass Du es nicht so aufgefasst hast ;-)
Was mich auch wundert, dass Nico schreibt, das es so OK ist, bis auf die MSGBOX
Naja, vielleicht meldet er sich noch........
Gruß
robert
AW: @ robert/Matthias
10.11.2011 09:26:57
hary
Hallo Robert und Matthias
hab das ganze verfolgt. Mit 8 verschiedenen Angaben(incl."U") Muesste wohl geschliefen(Schleife) werden ohne Ende.
An Nicos Stelle waere es evtl. einfacher die Urlaube ueber ein UserForm mit 2 Textboxen und einer Combo einzugeben. Diese dann mit Namen in ein separates Blatt zu schreiben und von dort auszulesen.
Is aber nur ein Gedanke.
gruss hary
AW: @hary
10.11.2011 09:38:00
robert
Hi Hary,
machbar ist es, aber schau dir mal die (relativ einfache)Einstiegsfrage an, dann schau dir die Datei an,
also wenn er das selbst gemacht hat-alle Achtung-aber....
dann sollte er auch einen Weg zu seinem Problem finden können.
Denn die Lösungsmöglichkeiten erfordern schon einen ziemlichen Aufwand-
bzw. Umbau in seiner Datei-meine ich ;-)
Gruß
robert
hier meine Lösungsvorschlag für getrennte Perioden
10.11.2011 11:47:19
Matthias
Hallo zusammen
So in der Art würde ich das machen
Userbild
https://www.herber.de/bbs/user/77431.xls
Das lässt sich für verschiedene Namen natürlich auch in einem einzigen Code unterbringen.
Dazu müsste man nur immer die Spalte ändern.
Die Umsetzung in seine Datei überlasse ich nun Nico selbst
Viel mehr kann ich nun auch nicht mehr tun.
Gruß Matthias
AW: hier meine Lösungsvorschlag für getrennte Perioden
10.11.2011 19:14:55
Nico
Hallo Ihr fleißigen Bienchen
Ich danke euch für eure Unterstützung ich habe den Code von Matthias umgeschrieben
Private Sub ComboBox1_Click()
Dim r As Integer
Dim c As Integer
Dim Datum As Date
Dim strg, UStart, UEnd
ListBox1.Clear
For c = 6 To 52
If ComboBox1.Value = Cells(7, c).Value Then Exit For
Next c
For r = 8 To 377
Datum = DateValue(Cells(r, 2).Value)
If Cells(r, c).Value = "U" Then
If UStart = "" Then UStart = CDate(Cells(r, 2))
If UEnd = "" Then
If Cells(r + 1, c) = "" And Cells(r + 2, c) = "" Then UEnd = Cells(r, 2)
End If
If UEnd  "" Then ListBox1.AddItem " Urlaub vom " & UStart & " bis " & UEnd: x = x + 2:  _
UStart = "": UEnd = ""
End If
Next r
TextBox1.Locked = False
TextBox1.Value = "Resturl. = " & Cells(6, c).Value
TextBox5.Value = "Anspruch = " & Cells(4, c).Value
TextBox1.Locked = True
CommandButton1.SetFocus
End Sub
Und es Funktioniert:)
Übrigens diese Exceldatei habe ich nicht selbst geschrieben nur an meine Bedürfnisse angepasst.
Dank an allen Mitwirkenden

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige