Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

VBA Makro Urlaub in Kalender eintragen

449 views
Skip to first unread message

RogHB346

unread,
Dec 22, 2009, 8:53:45 AM12/22/09
to
Hallo


ich mᅵchte in einem Kalender "Tabelle1" in der Spalte C den Urlaub mit
"U" kennzeichnen

1. "Taballe1" in der Spalte A start Zelle A1 das Datum von 01.01.2010
bis 31.12.2010 stehen.

2. Im Blatt "Tabelle2" habe ich die Daten fᅵr die Urlaubszeit

A B

1 05.01.2010 15.01.2010
2 14.02.2010 21.02.2010
3 20.05.2010 15.06.2010
4 01.11.2010 15.11.2010

Leider schaffe ich es noch nicht das richtig hin zu bekommen.
Wer kann helfen - Danke

MfG
Heinz


HelmutMit

unread,
Dec 22, 2009, 12:47:57 PM12/22/09
to
On 22 Dez., 14:53, RogHB346 <ROGHB...@t-online.de> wrote:
> Hallo
>
> ich möchte in einem Kalender "Tabelle1" in der Spalte C den Urlaub mit

> "U" kennzeichnen
>
> 1. "Taballe1" in der Spalte A start Zelle A1 das Datum von 01.01.2010
> bis 31.12.2010 stehen.
>
> 2. Im Blatt "Tabelle2" habe ich die Daten für die Urlaubszeit

>
>                         A                                          B
>
> 1                05.01.2010                     15.01.2010
> 2               14.02.2010                      21.02.2010
> 3               20.05.2010                      15.06.2010
> 4               01.11.2010                      15.11.2010
>
> Leider schaffe ich es noch nicht das richtig hin zu bekommen.
> Wer kann helfen -  Danke
>
> MfG
> Heinz

Hallo Heinz,
der Einfachheit halber habe ich die Formel für Deine erste
Urlaubsspanne entwickelt.
Für die volle Schönheit musst Du halt benannte Formeln Urlaub1 bis 4
und benannte Zellen Anfang1 bis 4 und Ende1 bis 4 erstellen und die in
der Wenn-Bedingung Odern.
Deine Formel in B1 muss lauten:
=WENN(ISTZAHL(VERGLEICH($A1;Urlaub;0));"U";""),
dabei ist Urlaub eine benannte Formel:
=ZEILE(INDIREKT(Anfang & ":" & Ende)), die eine Matrix aufspannt von
allen Tagen zwischen Anfang und Ende.
Anfang und Ende sind die benannten Zellen für Urlaubsanfang
(14.2.2010) und Urlaubsende (21.2.2010).
Die Formel in B1 runterkopieren.

Gruß Helmut
www.excelmexel.de

RogHB346

unread,
Dec 23, 2009, 9:38:14 AM12/23/09
to
HelmutMit schrieb:

> On 22 Dez., 14:53, RogHB346 <ROGHB...@t-online.de> wrote:
>> Hallo
>>
>> ich m�chte in einem Kalender "Tabelle1" in der Spalte C den Urlaub mit

>> "U" kennzeichnen
>>
>> 1. "Taballe1" in der Spalte A start Zelle A1 das Datum von 01.01.2010
>> bis 31.12.2010 stehen.
>>
>> 2. Im Blatt "Tabelle2" habe ich die Daten f�r die Urlaubszeit

>>
>> A B
>>
>> 1 05.01.2010 15.01.2010
>> 2 14.02.2010 21.02.2010
>> 3 20.05.2010 15.06.2010
>> 4 01.11.2010 15.11.2010
>>
>> Leider schaffe ich es noch nicht das richtig hin zu bekommen.
>> Wer kann helfen - Danke
>>
>> MfG
>> Heinz
>
> Hallo Heinz,
> der Einfachheit halber habe ich die Formel f�r Deine erste
> Urlaubsspanne entwickelt.
> F�r die volle Sch�nheit musst Du halt benannte Formeln Urlaub1 bis 4

> und benannte Zellen Anfang1 bis 4 und Ende1 bis 4 erstellen und die in
> der Wenn-Bedingung Odern.
> Deine Formel in B1 muss lauten:
> =WENN(ISTZAHL(VERGLEICH($A1;Urlaub;0));"U";""),
> dabei ist Urlaub eine benannte Formel:
> =ZEILE(INDIREKT(Anfang & ":" & Ende)), die eine Matrix aufspannt von
> allen Tagen zwischen Anfang und Ende.
> Anfang und Ende sind die benannten Zellen f�r Urlaubsanfang

> (14.2.2010) und Urlaubsende (21.2.2010).
> Die Formel in B1 runterkopieren.
>
> Gru� Helmut
> www.excelmexel.de

Herzlichen Danke f�r die Hilfe
leide suche ich aber eine VBA - L�sung

Frohe Weihnachten w�nscht
Heinz

Andreas Killer

unread,
Dec 23, 2009, 12:37:49 PM12/23/09
to
RogHB346 schrieb:

> ich mᅵchte in einem Kalender "Tabelle1" in der Spalte C den Urlaub mit
> "U" kennzeichnen
>
> 1. "Taballe1" in der Spalte A start Zelle A1 das Datum von 01.01.2010
> bis 31.12.2010 stehen.
>
> 2. Im Blatt "Tabelle2" habe ich die Daten fᅵr die Urlaubszeit
>
> A B

Wie auch immer die Kennzeichnung von statten geht, die Prᅵfung ist
immer die gleiche:

1. Hole das Datum aus Tabelle1!SpalteA
2. Suche in Tabelle2!SpalteA nach einem Wert >= Datum
3. Wenn gefunden prᅵfe selbe Zeile Tabelle2!SpalteB <= Datum

An dieser Stelle weiᅵ man ob das Datum zwischen den Terminen liegt
oder nicht. Zusᅵtzlich kann man das noch mit einem kleinen Feature
erweitern, wenn man nur einen Urlaubstag hat, dann kann das Datum in
Spalte B entfallen.

Ich denke das sinnvollste ist es das in eine UDF zu packen und diese
als Formel in die Tabelle zu schreiben.

C1 =WENN(IstTermin(A1;Tabelle2!A$1:B$4);"U";"")
und runterziehen.

Andreas.

Function IstTermin(Datum As Date, Termine As Range) As Boolean
'Wahr wenn Datum in den Terminen liegt. Termine ist ein _
2spaltiger Bereich deren ersten Spalte das VON- und 2te _
Spalte das BIS-Datum enthᅵlt. Ist BIS leer, dann wird _
Datum nur mit VON verglichen.

Dim TerminDaten(), I As Integer

'Fehlerbehandlung etablieren, falls der Bereich der Termine _
falsch gesetzt ist und unser Zugriff fehlschlᅵgt
On Error GoTo ExitPoint

'Termine einlesen
TerminDaten = Termine
'Nach dem Datum suchen
For I = LBound(TerminDaten) To UBound(TerminDaten)
'Wenn Datum = VON oder (Datum > VON und <= BIS)
If (Datum = TerminDaten(I, 1) And _
IsEmpty(TerminDaten(I, 2))) Or _
(Datum >= TerminDaten(I, 1) And _
Datum <= TerminDaten(I, 2)) Then
IstTermin = True
Exit Function
End If
Next
ExitPoint:
End Function

RogHB346

unread,
Dec 23, 2009, 1:51:50 PM12/23/09
to
Andreas Killer schrieb:

> RogHB346 schrieb:
>
>> ich mᅵchte in einem Kalender "Tabelle1" in der Spalte C den Urlaub mit
>> "U" kennzeichnen
>>
>> 1. "Taballe1" in der Spalte A start Zelle A1 das Datum von 01.01.2010
>> bis 31.12.2010 stehen.
>>
>> 2. Im Blatt "Tabelle2" habe ich die Daten fᅵr die Urlaubszeit
>>
>> A B
> Wie auch immer die Kennzeichnung von statten geht, die Prᅵfung ist immer
> die gleiche:
>
> 1. Hole das Datum aus Tabelle1!SpalteA
> 2. Suche in Tabelle2!SpalteA nach einem Wert >= Datum
> 3. Wenn gefunden prᅵfe selbe Zeile Tabelle2!SpalteB <= Datum
>
> An dieser Stelle weiᅵ man ob das Datum zwischen den Terminen liegt oder
> nicht. Zusᅵtzlich kann man das noch mit einem kleinen Feature erweitern,
> wenn man nur einen Urlaubstag hat, dann kann das Datum in Spalte B
> entfallen.
>
> Ich denke das sinnvollste ist es das in eine UDF zu packen und diese als
> Formel in die Tabelle zu schreiben.
>

Herzlichen Dank fᅵr die Hilfe es funkt ....... Super -))

Ich wᅵnsche Dir schᅵne Weihnachten
Heinz

PS. Frohe Weihnachten an alle die mit lesen und helfen.

0 new messages