Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1348to1352
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
bedingte Formatierung über vba
18.02.2014 07:31:06
WolfgangA
Hallo miteinander,
leider bin ich nicht so der Profi, der sich in vba auskennt, aber ich habe bzw. stelle mir vor, dass mein Problem evtl. gelöst wird.
Es geht um einen "Urlaubsplaner", der über eine UF alles so einträgt, was rein muss.
Nun ist es so, dass bei bestimmten Einträgen die Wochenenden nicht mit einem "U" versehen werden, was ja für die Berechnung von Vorteil ist, aber der Urlaub das Wochenende mit einschließt.
Nun habe ich mir gedacht, dass bei der Eingabe des Datenbereiches für den Urlaub, dieser mit einer Farbe in den Zellen markiert wird, sodass man optisch den Urlaubsbereich sehen kann.
Ist sowas möglich?
Die Musterdatei von Herrn Oppermann ist hier zu finden:
https://www.herber.de/bbs/user/89333.xls
Hoffe auf Hilfe ...

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: bedingte Formatierung über vba
18.02.2014 08:21:29
Beverly
Hi Wolfgang,
änder diesen Teil:
For r = sp To sp2                                           ' sonst Schleifenstart für  _
Tabelleneintrag
'    Cells(3, r).Select                                      ' Zellen selektieren
If Weekday(Cells(4, r), 2) 
Ich frage mich allerdings, weshalb die Zellen selektiert werden müssen - ich habe diese Zeilen mal auskommentiert.


AW: bedingte Formatierung über vba
18.02.2014 08:39:20
WolfgangA
Hallo Karin,
vielen Dank für die Hilfe, aber ...
habe mir das Makro geladen, aber das was du hier geschrieben hast, finde ich darin nicht so vor. Ich weiß nun nicht, wo ich genau was ändern soll.
Finde im Makro "For r = sp To sp2" öfters ?
Werde mal löschen und probieren, wird sich schon was ergeben ;-)
Gruss WolfgangA

Anzeige
AW: bedingte Formatierung über vba
18.02.2014 08:57:17
Beverly
Hi Wolfgang,
ich habe der Übersichtlichkeit wegen mal die Kommentare entfernt (ich denke, Dieter wird mir das verzeihen) - hier der gesamte Code:
Private Sub CommandButton1_Click()
' Urlaubsplaner
' geschrieben am 26.07.2001
' postmaster@klaus-dieter-2000.de
Dim dat As Date, dat2 As Date, dat3 As Date
dat = Me.TextBox1
dat2 = Me.TextBox2
Worksheets("1. Halbjahr").Activate
If dat2 > Cells(3, 182) And dat  Cells(3, 182) Then Worksheets("2. Halbjahr").Activate
sp = 1
Do While Cells(3, sp)  dat
sp = sp + 1
Loop
sp2 = 1
Do While Cells(3, sp2)  dat2
sp2 = sp2 + 1
Loop
z = 4
Do While Cells(z, 1)  Me.ComboBox1
z = z + 1
Loop
If dat3 > 0 Then GoTo Seitenwechsel
For r = sp To sp2
'    Cells(3, r).Select
If Weekday(Cells(4, r), 2)  dat3
sp3 = sp3 + 1
Loop
For s = 2 To sp3
'    Cells(3, s).Select
If Weekday(Cells(4, r), 2) 


Anzeige
AW: bedingte Formatierung über vba
18.02.2014 09:23:36
WolfgangA
Hallo Karin,
danke für den gesamten Code. Hat ja funktioniert, nur im 2. Halbjahr wird nichts mehr markiert ;-(
Vielleicht habe ich auch bei dem "Paste and Copy" einen Fehler gemacht ;-)
Oder muss ich die Kommentare wieder einfügen ?
Gruss WolfgangA

AW: bedingte Formatierung über vba
18.02.2014 09:32:18
WolfgangA
Hallo Karin,
was mir noch aufgefallen ist, warum steht da nun:
[Or Cells(2000, r) = 2 Then Cells(z, r) = "U"]
Benötige ja max. 150 Zeilen, habe diesen Wert entsprechend geändert!!
Auf dem 2. Halbjahr wird nichts eingetragen, weder "U" noch gelber Hintergrund ;-(
Leider wird mir von dem "postmaster@klaus-dieter-2000.de" immer Maildelivery gemeldet, kenne ja den Entwickler nicht und das Ganze stammt ja aus 2001, also denke ich mir, dass das sowieso nicht so weitergepflegt wurde und nicht nutzbar ist.
War wohl ein Traum von mir, so etwas zu finden und für den Gebrauch zu nutzen bzw. zu ändern.
Schade ...
Gruss
WolfgangA

Anzeige
AW: bedingte Formatierung über vba
18.02.2014 09:32:23
WolfgangA
Hallo Karin,
was mir noch aufgefallen ist, warum steht da nun:
[Or Cells(2000, r) = 2 Then Cells(z, r) = "U"]
Benötige ja max. 150 Zeilen, habe diesen Wert entsprechend geändert!!
Auf dem 2. Halbjahr wird nichts eingetragen, weder "U" noch gelber Hintergrund ;-(
Leider wird mir von dem "postmaster@klaus-dieter-2000.de" immer Maildelivery gemeldet, kenne ja den Entwickler nicht und das Ganze stammt ja aus 2001, also denke ich mir, dass das sowieso nicht so weitergepflegt wurde und nicht nutzbar ist.
War wohl ein Traum von mir, so etwas zu finden und für den Gebrauch zu nutzen bzw. zu ändern.
Schade ...
Gruss
WolfgangA

Anzeige
AW: bedingte Formatierung über vba
18.02.2014 11:07:49
WolfgangA
Hallo,
ich denke die Hinweise stehen auf der Seite "Bitte lesen"? Da soll man doch Änderungen vornehmen!
Trotzdem Danke
WolfgangA

AW: bedingte Formatierung über vba
18.02.2014 11:17:33
Beverly
Hi Wolfgang,
schau dir einfach mal die Formeln in Zeile 2000 an - die beziehen sich auf das Tabellenblatt "Bitte lesen", in dem du die Änderungen für die Feiertage vornehmen musst. Der Code selbst vergleicht dann mit Zeile 2000, ob es ein Feiertag ist oder nicht.


Anzeige
AW: bedingte Formatierung über vba
18.02.2014 12:59:26
WolfgangA
Hallo,
nun habe ich das auch kapiert!
Zeile 2000 ist die Formel für die Feiertage.
Nun habe ich alle Zeilen von 149 bis 1999 gelöscht (beide Halbjahre), aber das Makro funktioniert trotzdem nicht so richtig!
Ich werde mir nun selbst eine Excel-Datei "zusammenbauen", um so einen Urlaubsplaner nach meinen Wünschen zu bekommen, anders geht es wohl nicht.
Danke,
es grüßt
WolfgangA

AW: bedingte Formatierung über vba
18.02.2014 13:09:56
WolfgangA
Hallo Beverly,
nun habe ich nochmals die "erste" Datei geladen und entsprechend mit dem Makro geändert! Es werden wohl die "U" und auch der gelbe Hintergrund eingefügt, aber die Berechnung sagt nun, z.B. für den Urlaub vom 02.01.2014 - 10.01.14 = 9 Arbeitstage ?
Ich kann das alles irgendwie nicht mehr verstehen oder sitze ich schon zu lange vor diesem Problem ;-)
Gruss WolfgangA

Anzeige
AW: bedingte Formatierung über vba
18.02.2014 15:50:31
Beverly
Hi Wolfgang,
ändere an allen 3 Stellen den Code wie folgt
    If Weekday(Cells(4, r), 2) 


AW: bedingte Formatierung über vba
18.02.2014 18:50:26
WolfgangA
Hallo,
danke für den neuen Code!
Das hat nun auch funktioniert!
Was muss ich ändern, wenn der Urlaub über das Halbjahr geht, z.B. 25.06.2014 - 11.07.2014?
Leider klappt es da mit dem Makro nicht ;-(
Der Code schaut zur Zeit so aus:
Private Sub CommandButton1_Click()
' Urlaubsplaner
' geschrieben am 26.07.2001
' postmaster@klaus-dieter-2000.de
Dim dat As Date, dat2 As Date, dat3 As Date
dat = Me.TextBox1
dat2 = Me.TextBox2
Worksheets("1. Halbjahr").Activate
If dat2 > Cells(3, 182) And dat  Cells(3, 182) Then Worksheets("2. Halbjahr").Activate
sp = 1
Do While Cells(3, sp)  dat
sp = sp + 1
Loop
sp2 = 1
Do While Cells(3, sp2)  dat2
sp2 = sp2 + 1
Loop
z = 4
Do While Cells(z, 1)  Me.ComboBox1
z = z + 1
Loop
If dat3 > 0 Then GoTo Seitenwechsel
For r = sp To sp2
'    Cells(3, r).Select
If Weekday(Cells(4, r), 2)  dat3
sp3 = sp3 + 1
Loop
For s = 2 To sp3
'    Cells(3, s).Select
If Weekday(Cells(4, r), 2) 
Der Fehler ist nur, wenn der Urlaubsbereich über das Halbjahr geht, ansonsten klappt es eigentlich wunderbar ;-)
Gruss WolfgangA

Anzeige
AW: bedingte Formatierung über vba
18.02.2014 19:23:41
WolfgangA
Hallo,
habe zur Sicherheit mit einer zweiten Datei alles geändert (wie oben), es ist weiterhin so, dass es über das Halbjahr hinweg das Makro nicht funktioniert. Habe auch schon der Bereich der Spalten von 182 im 2. Halbjahr auf 185 vergrößert, dachte da liegt der Fehler ?
Leider bin ich im Bereich VBA ein totaler Laie ;-(
Gruss
WolfgangA

AW: bedingte Formatierung über vba
18.02.2014 20:36:46
Beverly
Hi Wolfgang,
ändere die letzte For-Schleife vor End Sub wir folgt
For s = 2 To sp3
'    Cells(3, s).Select
If Weekday(Cells(4, s), 2) 
Dort ist die Spaltenvariable nicht r sondern s.


Anzeige

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige