Urlaubsplaner
#21
Hi,

hier mal eine überarbeitete Version ohne VBA:


.xlsx   Urlaubsplaner neu gebaut.xlsx (Größe: 276,3 KB / Downloads: 9)

Hier noch eine Datei, die für alle Excelversionen bis 2021 alle Funktionen auflistet. Vielleicht kannst Du ja die Funktionen für 2024 ergänzen Huh 19


.xlsx   Alle_Funktionen_Version_4.xlsx (Größe: 201,72 KB / Downloads: 5)
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
[-] Folgende(r) 1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag:
  • Hobbit
Antworten Top
#22
Hallo Edgar,
 
Danke für die Nachdenkbeispiele.
Also VSTAPELN() gibt es in O2024 und soweit ich es jetzt auf die Schnelle erkennen kann werden Array untereinander(vertikal) angefügt. 
Ja, da hätte ich auch darauf kommen können, dass das 1. Zeichen zum Vergleich ran zuziehen hier völlig ausreicht. 
 
Ja, das Aufsummieren der beantragten Urlaubstage enthält TRO_TRAILING , welche in O2024 noch nicht vorhanden ist. Die ist in MS Hilfe noch nicht aufzufinden. 
Hast du da einen Link für mich?
 
Ich werde mal in deiner Datei die neueren Funktionen was ich entdecken kann mit Einbauen (keine Garantie auf Vollständigkeit).

Wie schon früher mal geschrieben benutze ich Formeln meist nur. Ich hänge eben lieber in VBA rum.
Hier habe ich einfach mal zugschlagen und dies als Möglichkeit betrachtet die neuen Funktionen einzubauen und die Möglichkeiten zu testen.
 
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Egon12 für diesen Beitrag:
  • Hobbit
Antworten Top
#23
(03.10.2025, 16:08)Egon12 schrieb: Hallo Jens,
 
anbei mal noch den Rest an Abwesenheitsgründen eingebaut und auch das Leeren der Zellbereiche für die Abwesenheiten ohne weiteres Userform.

 
Gruß Uwe

Moin Uwe,

soweit ist es schon TOP, aber wenn ich Daten habe z.B. vom 26.06.26 - 07.7.26, dann trägt er nichts ein.
Nur wenn ich im 1. Halbjahr oder im 2. Halbjahr bleibe.

Kannst du mir noch einen Tipp geben?

Vielen Dank für die Mühen

MFG Jens
Antworten Top
#24
Hallo Edgar,
 
eine prinzipielle Sache ist mir eben aufgefallen, als ich mir deine 2. Formel angeschaut habe. Sowohl O2021 als =O2024 kommt mit dem ":." im Range nicht klar.
Ist da was im O365, dass mit dem zusätzlichen Punkt im Range damit umgehen kann? 
Ich habe dies in der letzten Zeit des Öfteren mal gesehen und kann aber in MS Hilfe keine Beschreibung dazu finden.
 
Ich habe deine Formel mal entsprechend für die Nachwelt korrigiert:
Code:
=LET(
aktDt; B$6;
aktMA; $A14;
xa; FILTER(Rohdaten!$A$3:$E$200; Rohdaten!$A$3:$A$200 = aktMA);
xb; INDEX(xa;;2);
xc; INDEX(xa;;3);
xd; (xb <= aktDt) * (xc >= aktDt) * (REST(aktDt;7) > 1) * (ZÄHLENWENNS(System!$G$3:$G$28; aktDt; System!$H$3:$H$28; 1) = 0) > 0;
XVERWEIS(WAHR; xd; INDEX(xa;;4); ""; 0))
Den #Calk! kann man ja behandeln, wenn kein Eintrag existiert.

Der Weg mit XVerweis + Zählenwenn ist auch eine Möglichkeit um die Feiertage direkt zu verwursten. 

Das hatte ich absichtlich nicht in die LET() integriert, da es zusätzlich Rechenleistung fordert. In meiner ursprünglichen Vorgehensweise ab D12 wird nur der Range für die Feiertage herangezogen, welche bereits berechnet (Filter()) da vorliegen. 

Gruß Uwe

Hallo Jens,

du beziehst dich sicherlich aufs Eintragen via Userform.

da hatte ich beim kleiner als vergessen den Value der Textboxen in Datum umzuwandeln.

Ändere diese Zeile (Zeile 11) so:
Code:
If CDate(TextBox1) > CDate(TextBox2) Then Exit Sub
Beantworte bitte mal meine bereits gestellte Frage: Was für eine Excelversion nutzt ihr auf Arbeit?

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Egon12 für diesen Beitrag:
  • Hobbit
Antworten Top
#25
Moin,
vielen Dank, jetzt klappt es.

Wir benutzen leider noch O2013.

Es soll wohl bald geändert werden, aber wann weiß ich nicht.

Vielen Dank für die Mühen.

MFG Jens
Antworten Top
#26
Hallo Jens,

wenn dann mal auf O365 umstellt wird, kannst du die Datei von Edgar nutzen, ansonsten für O2024 die hier:

.xlsm   Urlaubsplaner neu gebaut.xlsm (Größe: 654,51 KB / Downloads: 1)
Eintragungen ins Listobjekt (ohne Listobjekt habe ich noch nicht ausprobiert) per VBA führen allerdings mit den neuen Funktionen zu deftigen Laufzeitproblemen.

Ansonsten hat diese Vorgehensweise sehr viele Vorteile.
 
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Egon12 für diesen Beitrag:
  • Hobbit
Antworten Top
#27
Hallo Uwe,

hier mal ein paar Beiträge, die die verschiedenen Möglichkeiten beschreiben, einen Bereich einzugrenzen:

https://www.tabellenexperte.de/dynamisch...e-raender/
https://www.excel-nervt.de/sandwich/
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
[-] Folgende(r) 1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag:
  • Hobbit
Antworten Top
#28
Hallo Edgar,

Danke. 
Eigentlich würde ich gern wissen, welche Funktion sich hinter TRO_TRAILING() verbirgt:

=LET(aktDt;B$6;aktMA;$A12;xa;FILTER(_xlfn._TRO_TRAILING(Rohdaten!$A$3:$E$200);_xlfn._TRO_TRAILING(Rohdaten!$A$3:$A$200)=aktMA);xb;INDEX(xa;;2);xc;INDEX(xa;;3);xd;(xb<=aktDt)*(xc>=aktDt)*(REST(aktDt;7)>1)*(ZÄHLENWENNS(System!$G$3:$G$28;aktDt;System!$H$3:$H$28;1)=0)>0;WENNFEHLER(XVERWEIS(WAHR;xd;INDEX(xa;;4);"";0);""))

Deshalb meine Frage nach einem Link.
So kann ich mir einfach mal in der MS Hilfe nachschauen was sich dahinter verbirgt. Vielleicht kann man diese als UDF nachbauen.

O365 lege ich mir dafür nicht extra zu. Es ist eben nur dafür da meine grauen Zellen in Schuss zu halten.

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Egon12 für diesen Beitrag:
  • Hobbit
Antworten Top
#29
Hallo Uwe,

das bedeutet nur, dass überflüssige Zeichen (hier: Punkt aus :.) entfernt wurden, da Dein Excel damit nicht umgehen kann.

Die Formel funktioniert auch so:

Code:
=LET(aktDt;B$6;aktMA;$A12;xa;FILTER(Rohdaten!$A$3:$E$200;Rohdaten!$A$3:$A$200=aktMA);xb;INDEX(xa;;2);xc;INDEX(xa;;3);xd;(xb<=aktDt)*(xc>=aktDt)*(REST(aktDt;7)>1)*(ZÄHLENWENNS(System!$G$3:$G$28;aktDt;System!$H$3:$H$28;1)=0)>0;WENNFEHLER(XVERWEIS(WAHR;xd;INDEX(xa;;4);"";0);""))

oder auch so:

Code:
=LET(aktDt;B$6;aktMA;$A12;ya;VERWEIS(9;1/(Rohdaten!$A:$A<>"");ZEILE(Rohdaten!$A:$A));xa;FILTER(Rohdaten!$A$3:INDEX(Rohdaten!$E:$E;ya);Rohdaten!$A$3:INDEX(Rohdaten!$A:$A;ya)=aktMA);xb;INDEX(xa;;2);xc;INDEX(xa;;3);xd;(xb<=aktDt)*(xc>=aktDt)*(REST(aktDt;7)>1)*(ZÄHLENWENNS(System!$G$3:$G$28;aktDt;System!$H$3:$H$28;1)=0)>0;WENNFEHLER(XVERWEIS(WAHR;xd;INDEX(xa;;4);"";0);""))
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#30
Alles Klar. 

Schau ich mir nachher an.

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Egon12 für diesen Beitrag:
  • Hobbit
Antworten Top


Gehe zu:


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