Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
540to544
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
540to544
540to544
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Kalender

Kalender
30.12.2004 21:08:26
Dirk
Hab mir glaub ich zuviel zugemutet, kann mir jemand helfen?
Habe auf dem ersten Tabellenblatt ein mehrjährigen Kalender,pro Tag eine Zeile,
Spalte A sind Wochentage, Spalte B ist das Datum.Die ersten 3 Zeilen (werden wahrscheinlich noch mehr)sind mit Überschriften und son Kram belegt.Und deshalb ist da das Fenster fixiert.Das Sam.- und Sonntage per vba fett und farblich sind ist glaub ich unrelevant da das nur die Schrift ist.
Auf dem zweiten Tabellenblatt habe ich in Spalte B Ferienanfangstermine und in Spalte C Ferienendtermine,schreibe ich jährlich manuell ein.Nun zu meinem Problem: möchte per vba die Ferientermine in dem Kalenderblatt farblich (Hintergrund schwach gelb oder so) einfärben,und zwar nicht nur die Zelle indem das Anfangsdatum bzw. Ferienenddatum steht, sondern die ganze Zeile.
Spätere Farbänderungen einzelner Zellen muß dabei aber möglich bleiben.
Bedanke mich schon mal für Eure Mühen, und wünsche natürlich ein frohes neues Jahr.

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kalender
30.12.2004 22:15:10
Mario
Das geht auch ohne VBA.
Über Menü "Format/Bedingte Formatierung" kanst du die Zelleigenschaften unter bestimmten Bedingungen ändern lassen.
Um Bedingungen von einem anderen Tabellenblatt zu übergeben musst du deinen Zellen einen Namen geben ("Einfügen/Name/Definieren"). Ich habe in meinem Kallender folgende Namen "F1A" bis "F7A" für das AnfangsDatum und "F1E" bis "F7E" für das EndDatum.
Gebe dan bei Bedingte Formatierung folgenden Text ein, und lege dan Dein ZellFormat fest (zBsp. Schriftfarbe):
"Formel ist"
=ODER(UND(M22>=F1A;M22=F2A;M22=F3A;M22=F4A;M22=F5A;M22=F6A;M22=F7A;M22 MfG Mario
Anzeige
AW: Kalender
30.12.2004 22:20:43
Mario
Habe ich vergessen zu schreiben:
Die Bedingte Formatierung musst Du bei allen Zellen in denen dein Datum (1.01 bis 31.12) steht einfügen. Was bei mir "M22" ist muss dann deine Zelle mit dem Datum sein (also "B1" für den 1.01., "B2" für den 2.01., usw.)!
MfG Mario
AW: Kalender
31.12.2004 13:59:15
Dirk
Danke für Eure Hilfe
ist zwar nicht das was ich gesucht habe, muß das Projekt dann wohl vergessen, so kann ichs nicht lösen, trotzdem danke
AW: Kalender
31.12.2004 17:28:31
Klaus-Dieter
Hallo Dirk,
nun man nicht gleich beleidigt sein. Wenn du angibst Excel und VBA Profi zu sein, muß ich davon ausgehen, dass du mit meiner Anleitung was anfangen kannst. Bezihungsweise in der Lage bist, diese auf deine Anforderung anzupassen.
Wo genau klemmt es denn nun? Möglicherweise bin ich als fortgeschrittener Anwender ja in der Lage, dem Profi zu helfen. ;-)
Gruß Klaus-Dieter

Anzeige
AW: Kalender
31.12.2004 20:14:26
Dirk
Hallo Klaus-Dieter,
1. ich bin kein Profi, soll für vba-Profis gemeint sein, die mir helfen können,- soll keine Abwertung für Fortgeschrittene sein, so hatte ich das jedenfalls verstanden.
2. bin ich auch nicht beleidigt, enttäuscht- ein wenig traurig vielleicht.- Vielleicht hab ich mich auch nur falsch ausgedrückt, drum sende ich die "Blanko"Tabelle mal mit, denn das sagt vielleicht mehr als tausend Worte.
Guten Rutsch (aber nicht mit dem Auto)und alles Gute fürs kommende Jahr, Gruß Dirk
https://www.herber.de/bbs/user/15468.zip
Autoopen springt nur zum aktuellen Datum
Anzeige
AW: Kalender
31.12.2004 22:55:22
Klaus-Dieter
Hallo Dirk,
versuche es mal damit:
Option Explicit

Sub ferientermin()
Dim s As Integer
Dim z, zz As Integer
Dim such As Date
Dim suchz As Date
For s = 3 To Range("A65536").End(xlUp).Row
If Worksheets("Ferientermine").Cells(s, 2) <> "" Then
such = Format(Worksheets("Ferientermine").Cells(s, 2), "dd.mm.yyyy")
suchz = Format(Worksheets("Ferientermine").Cells(s, 3), "dd.mm.yyyy")
End If
zz = 3
Do While Worksheets("Kalender").Cells(zz, 2) <> such
zz = zz + 1
Loop
Do While Worksheets("Kalender").Cells(zz, 2) <> suchz
Cells(zz, 2).Interior.ColorIndex = 6
zz = zz + 1
Loop
Cells(zz, 2).Interior.ColorIndex = 6
Next s
End Sub

Gruß Klaus-Dieter

Anzeige
AW: Kalender - Nachfrage
31.12.2004 23:03:09
Klaus-Dieter
Hallo Dirk,
jetzt hatte ich noch was vergessen, mit dem Makro werden nur die Termine von NRW eingetragen. Du müsstest dich noch mal äußern, wie die Termine von Niedersachsen rein sollen. Da es Überschneidungen gibt, weiß ich nicht wie das kenntlich sein soll. Andere Farbe?
Ansonsten wünsche ich dir einen guten Rutsch, und nichts für ungut, hatte mich ein wenig veräppelt gefühlt. Da das Level für den Fragesteller gilt.
Gruß Klaus-Dieter

AW: Kalender - Nachfrage
01.01.2005 04:52:11
Dirk
Frohes neues Jahr, Dir und Deiner Familie
Hey funzt fast, vielen Dank schon mal bis hierhin.
Das mit Niedersachsen, sprich nächste Spalte vom andern Tabellenblatt soll nach Möglichkeit eine andere Farbe kriegen, wobei NRW Priorität haben soll, soll heißen,
wenn Niedersachsen früher als NRW Ferien kriegt,soll die Zeit bis Ferienanfang NRW anders angezeigt werden.Das Niedersachsen dann in den Ferien von NRW Ferienende hat
ist nicht weiter relevant.
Jedoch soll nicht nur die Datumszelle der Zeile hervorgehoben werden, sondern die ganze Zeile,wobei da das nächste Problem ansteht, in den Auftrag- bzw. Angebotsspalten werden per vba verschiedene Farben zugeortnet, die natürlich ihre Gültigkeit behalten sollen, und wiederrum absolute Priorität haben.
Bitte nicht veräppelt vorkommen, war keine Absicht, hab ich bislang wirklich falsch verstanden,das mit dem Level,war keine Absicht. Tschuldigung, werde mich bessern.
Trotzalledem vielen vielen Dank für die mehr als Hilfe, und das in der kurzen Zeit.
Danke
Gruß Dirk
Anzeige
AW: Kalender - Nachfrage
01.01.2005 13:55:44
Klaus-Dieter
Hallo Dirk,
anbei das angepasste Makro:
Option Explicit

Sub ferientermin()
Dim s, sp As Integer
Dim spp As Integer
Dim z, zz As Integer
Dim such As Date
Dim suchz As Date
Dim farb As Integer
For sp = 4 To 2 Step -2
If sp = 4 Then farb = 40 Else farb = 36
For s = 3 To Worksheets("Ferientermine").Range("B65536").End(xlUp).Row
If Worksheets("Ferientermine").Cells(s, sp) <> "" Then
such = Format(Worksheets("Ferientermine").Cells(s, sp), "dd.mm.yyyy")
suchz = Format(Worksheets("Ferientermine").Cells(s, sp + 1), "dd.mm.yyyy")
End If
zz = 3
Do While Worksheets("Kalender").Cells(zz, 2) <> such
zz = zz + 1
Loop
zz = zz - 1
Do While Worksheets("Kalender").Cells(zz, 2) <> suchz
zz = zz + 1
For spp = 1 To 22
If Cells(zz, spp).Interior.ColorIndex < 0 Then
Cells(zz, spp).Interior.ColorIndex = farb
End If
Next spp
Loop
Next s
Next sp
End Sub

Gruß Klaus-Dieter

Anzeige
AW: Kalender - Nachfrage
01.01.2005 15:21:30
Dirk
Hallo Klaus-Dieter
perfect, vielen vielen Dank, hätte nie gedacht das das mit so wenig(relativ)Code realisierbar ist.Man muß es halt wissen.
Danke nochmals, werde jetzt versuchen, den Sinn des Codes zu verstehen.
Gruß Dirk
AW: Kalender - Nachfrage
01.01.2005 17:29:26
Klaus-Dieter
Hallo Dirk,
um dir das Verstehen zu erleichtern, hier das Makro mit Kommentaren:

Sub ferientermin()
' Variablen deklarieren
Dim s, sp As Integer
Dim spp As Integer
Dim z, zz As Integer
Dim such As Date
Dim suchz As Date
Dim farb As Integer
' Termine einlesen
For sp = 4 To 2 Step -2                                         ' Einlesen mit Niedersachsen beginnen
If sp = 4 Then farb = 40 Else farb = 36                     ' wenn Niedersachsen dann Farbe = orage sonst hellgelb
For s = 3 To Worksheets("Ferientermine"). _
Range("B65536").End(xlUp).Row                               ' Schleife von Zeile 3 bis letzte Zeile mit Termin (Ferientermine einlesen)
If Worksheets("Ferientermine").Cells(s, sp) <> "" Then  ' wenn Termin vorhanden, dann ...
such = Format(Worksheets("Ferientermine"). _
Cells(s, sp), "dd.mm.yyyy")                         ' ... einlesen im Datumformat (Ferienbeginn)
suchz = Format(Worksheets("Ferientermine"). _
Cells(s, sp + 1), "dd.mm.yyyy")                     ' ... einlesen im Datumformat (Ferienende)
End If                                                  ' Ende einlesen
zz = 3
' Termine im Kalender suchen und markieren
Do While Worksheets("Kalender").Cells(zz, 2) <> such    ' suchen, bis Starttermin gefunden
zz = zz + 1                                         ' Schleifenzähler plus 1
Loop                                                    ' laufen bis Termin gefunden
zz = zz - 1                                             ' Schleifenzähler minus eins (Fehlerkorrektur)
Do While Worksheets("Kalender").Cells(zz, 2) <> suchz   ' laufen bis Endtermin gefunden
zz = zz + 1                                         ' Schleifenzähler plus 1
' Zellen markieren
For spp = 1 To 22                                   ' Laufe duch Spalte A bis V
If Cells(zz, spp).Interior.ColorIndex < 0 Then  ' wenn Zelle nicht gefärbt, dann ...
Cells(zz, spp).Interior.ColorIndex = farb   ' ... Ferientermin kennzeichnen (Farbe nach Land, NRW hat Priorität)
End If                                          ' Ende färben
Next spp                                            ' Schleifenzähler plus 1, neuer Lauf beginnt
Loop                                                        ' laufen, solange Ferien sind
Next s                                                          ' Schleifenzähler plus 1, neuen Ferientermin feststellen
Next sp                                                             ' Schleifenzähler minus 2, (Wechsel des Bundeslandes)
End 

Sub                                                             ' Ende des Makros
<br>Gruß Klaus-Dieter<br>
<a href="http://home.arcor.de/excelseite/Index.html"><img src="http://home.arcor.de/excelseite/Images/banner.gif" width=233 height=67 border=0 alt="Klaus-Dieter's Excel und VBA Seite">

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige