Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
476to480
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
476to480
476to480
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Bedingte Formatierung

Bedingte Formatierung
30.08.2004 15:08:41
Dieter
Hallo Forum,
wie muss die Formel ( Bedingte Formatierung )lauten wenn CG3 mit der jetzigen Hintergrundfarbe dargestellt wird, sollte in CG7 anstatt "Tu" ein "V" erscheinen.
Zum Hintergrund meiner Frage die Tab.ist ein Urlaubsplaner,die Url. Eintäge werden über eine UF eingegeben und autom. eingetragen.
Da wir in Konti-Schicht arbeiten zählen zwar die Sa. u. So. Tage aber nicht die Feiertage als Urlaub, und somit sollten diese Tage mit einen "V" im Planer gekennzeichnet werden.
1. Halbjahr
 CFCGCHCICJ
324.03.200525.03.200526.03.200527.03.200528.03.2005
4DoFrSaSoMo
5OFFSS
6     
7 TuTuTuTu
Formeln der Tabelle
CF3 : =CE3+1
CG3 : =CF3+1
CH3 : =CG3+1
CI3 : =CH3+1
CJ3 : =CI3+1
CF4 : =CF3
CG4 : =CG3
CH4 : =CH3
CI4 : =CI3
CJ4 : =CJ3
 

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bedingte Formatierung
ransi
hallo
wenn ich dich richtig verstehe möchtest du mit der bedingten formatierung einer zelle
einen wert zuweisen.
das geht nicht.
wenn die farbe in cg3 allerdings mit der bedingten formatierung erstellt ist,
kannst du mit einer wenn() Abfrage cg7 den gewünschten wert zuweisen.
ungefähr so:
in cg7 =wenn(bedingtes format für cg3=wahr;dann Tu; sonst Vu)
oder du machst es mit vba.
ransi
AW: Bedingte Formatierung
Wolfgang
Hallo Dieter,
du könntest das ganze mit benutzerdefinierter Formel machen:
Function Farbewenn(bereich As Range, farbe As Integer, Name As String) Dim zelle Application.Volatile For Each zelle In bereich If zelle.Interior.ColorIndex = farbe Then Farbewenn = Name End If Next End Function
Diesen Code weist du einem Standmodul im VB Editor zu (diesen erreichst du mit Alt+F11). Anschließend kannst du in die Zelle in der das V stehen soll folgende Formel eingeben:
=farbewenn("Bereich"; "Farbe"; "Text")
Wobei
- Bereich die Zelle ist von der du die Farbe prüfen willst
- Farbe ist die Nummer für deine gesuchte Farbe (für dein Orange wäre es sie 40)
- Text der eingegeben werden soll, in deinem Fall also das "V"
Ich hoffe das ich dir weiterhelfen konnte
Gruß
Wolfgang
Anzeige
AW: Bedingte Formatierung
30.08.2004 17:17:50
Dieter
Hallo Wolfgang,erst mal Danke für deine Antwort.
Ich habe mal den Code so wie er jetzt vorhanden ist reingestellt. Vieleicht ist es sogar in dem Code schon möglich etwas zuändern .Leider kenne ich mich nicht damit aus.
Das einzige was ich darin geändert habe ist, das die freien Tage nicht mit gezählt werden. Habe ich mal im Code Kommentiert.Vieleicht gibt es ja eine einfache Lösung.
MfG Dieter

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                     ' Variablen deklarieren
dat = Me.TextBox1                                               ' Wert aus UserForm zuweisen
dat2 = Me.TextBox2                                              ' Wert aus UserForm zuweisen
Worksheets("1. Halbjahr").Activate                              ' Tabellenblatt 1 aktivieren
If dat2 > Cells(3, 182) And dat < Cells(3, 182) Then        ' Urlaubszeitraum über Jahresmitte?
dat3 = dat2                                             ' Dann neue Werte zuweisen
dat2 = Cells(3, 182)                                    '           "
End If                                                      ' Ende If
If dat > Cells(3, 182) Then Worksheets("2. Halbjahr").Activate  ' wenn Urlaubsbeginn im 2. Haljahr Tabellenblatt aktivieren
sp = 1                                                      ' Startwert für Do-While-Schleife
Do While Cells(3, sp) <> dat                                ' Start Schleife (Urlausbeginn suchen)
sp = sp + 1                                             ' Zähler um Wert 1 erhöhen
Loop                                                        ' Wendepunkt für Schleife
sp2 = 1                                                         ' Startwert für Do-While-Loop-Schleife
Do While Cells(3, sp2) <> dat2                                  ' Start Schleife (Urlausende suchen)
sp2 = sp2 + 1                                               ' Zähler um Wert 1 erhöhen
Loop                                                            ' Wendepunkt für Schleife
z = 4                                                           ' Startwert für Do-While-Schleife
Do While Cells(z, 1) <> Me.ComboBox1                            ' Start Schleife (Mitarbeiter suchen)
z = z + 1                                                   ' Zähler um Wert 1 erhöhen
Loop                                                            ' Wendepunkt für Schleife
If dat3 > 0 Then GoTo Seitenwechsel                             ' wenn Urlaubsende im 2. Halbjahr gehe zur Unterroutine
For r = sp To sp2                                           ' sonst Schleifenstart für Tabelleneintrag
Cells(3, r).Select                                      ' Zellen selektieren
If Format(Cells(5, r), "ddd") = "O" _ 'meine Änderung von "Sa" in "O"
Or Cells(2000, r) = 2 _
Or Format(Cells(5, r), "ddd") = "O" Then GoTo sprung ' wenn Sonnabend oder Sonntag kein Eintrag
Cells(z, r) = "Tu"                                       ' Eintrag für Urlaub
ut = ut + 1
TextBox3 = "Es werden " & ut & " Urlaubstage" & Chr(13) & "benötigt"
sprung:                                                         ' Sprungziel (wenn kein Eintrag)
Next r                                                      ' Schleifenzähler
Exit Sub                                                    ' Programmende, wenn Urlaub nur im 1. Halbjahr
Seitenwechsel:                                                  ' Sprungziel wenn Urlaubsanteile im 2. Halbjahr
For r = sp To sp2                                               ' Schleifenstart für Tabelleneintrag
Cells(3, r).Select                                          ' Zellen selektieren
If Format(Cells(5, r), "ddd") = "O" _
Or Format(Cells(5, r), "ddd") = "O" Then GoTo sprung1  ' wenn Sonnabend oder Sonntag kein Eintrag
Cells(z, r) = "Tu"                                           ' Eintrag für Urlaub
ut2 = ut2 + 1
sprung1:                                                        ' Sprungziel (wenn kein Eintrag)
Next r                                                          ' Schleifenzähler
Worksheets("2. Halbjahr").Activate                              ' Tabellenblatt 2 aktivieren
sp3 = 2                                                         ' Startwert für Do-While-Loop-Schleife
Do While Cells(3, sp3) <> dat3                                  ' Start Schleife (Urlausende suchen)
sp3 = sp3 + 1                                               ' Schleifenzähler
Loop                                                            ' Wendepunkt für Schleife
For s = 2 To sp3                                                ' Schleifenstart für Tabelleneintrag
Cells(3, s).Select                                          ' Zellen selektieren
If Format(Cells(5, s), "ddd") = "O" _
Or Format(Cells(5, s), "ddd") = "O" Then GoTo sprung2  ' wenn Sonnabend oder Sonntag kein Eintrag
Cells(z, s) = "Tu"                                           ' Eintrag für Urlaub
ut2 = ut2 + 1
TextBox3 = "Es werden " & ut2 & " Urlaubstage" & Chr(13) & "benötigt"
sprung2:                                                        ' Sprungziel wenn kein Eintrag
Next s                                                          ' Schleifenzähler
End Sub
' Programmende

Private Sub CommandButton2_Click()
UserForm1.Hide                                                  ' UserForm schließen
End Sub

Anzeige
AW: Bedingte Formatierung
Wolfgang
Hallo Dieter,
versuchs mal hiermit. konnte es leider gerade nicht testen, also wenns nicht klappt einfach nochmal melden...

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                     ' Variablen deklarieren
dat = Me.TextBox1                                               ' Wert aus UserForm zuweisen
dat2 = Me.TextBox2                                              ' Wert aus UserForm zuweisen
Worksheets("1. Halbjahr").Activate                              ' Tabellenblatt 1 aktivieren
If dat2 > Cells(3, 182) And dat < Cells(3, 182) Then        ' Urlaubszeitraum über Jahresmitte?
dat3 = dat2                                             ' Dann neue Werte zuweisen
dat2 = Cells(3, 182)                                    '           "
End If                                                      ' Ende If
If dat > Cells(3, 182) Then Worksheets("2. Halbjahr").Activate  ' wenn Urlaubsbeginn im 2. Haljahr Tabellenblatt aktivieren
sp = 1                                                      ' Startwert für Do-While-Schleife
Do While Cells(3, sp) <> dat                                ' Start Schleife (Urlausbeginn suchen)
sp = sp + 1                                             ' Zähler um Wert 1 erhöhen
Loop                                                        ' Wendepunkt für Schleife
sp2 = 1                                                         ' Startwert für Do-While-Loop-Schleife
Do While Cells(3, sp2) <> dat2                                  ' Start Schleife (Urlausende suchen)
sp2 = sp2 + 1                                               ' Zähler um Wert 1 erhöhen
Loop                                                            ' Wendepunkt für Schleife
z = 4                                                           ' Startwert für Do-While-Schleife
Do While Cells(z, 1) <> Me.ComboBox1                            ' Start Schleife (Mitarbeiter suchen)
z = z + 1                                                   ' Zähler um Wert 1 erhöhen
Loop                                                            ' Wendepunkt für Schleife
If dat3 > 0 Then GoTo Seitenwechsel                             ' wenn Urlaubsende im 2. Halbjahr gehe zur Unterroutine
For r = sp To sp2                                           ' sonst Schleifenstart für Tabelleneintrag
Cells(3, r).Select                                      ' Zellen selektieren
If Cells(3, r).Interior.ColorIndex = 40 Then
Cells(7, r).Value = "V"
Else: End If
If Format(Cells(5, r), "ddd") = "O" _
Or Cells(2000, r) = 2 _
Or Format(Cells(5, r), "ddd") = "O" Then GoTo sprung ' wenn Sonnabend oder Sonntag kein Eintrag
Cells(z, r) = "Tu"                                       ' Eintrag für Urlaub
ut = ut + 1
TextBox3 = "Es werden " & ut & " Urlaubstage" & Chr(13) & "benötigt"
sprung:                                                         ' Sprungziel (wenn kein Eintrag)
Next r                                                      ' Schleifenzähler
Exit Sub                                                    ' Programmende, wenn Urlaub nur im 1. Halbjahr
Seitenwechsel:                                                  ' Sprungziel wenn Urlaubsanteile im 2. Halbjahr
For r = sp To sp2                                               ' Schleifenstart für Tabelleneintrag
Cells(3, r).Select
' Zellen selektieren
If Format(Cells(5, r), "ddd") = "O" _
Or Format(Cells(5, r), "ddd") = "O" Then GoTo sprung1  ' wenn Sonnabend oder Sonntag kein Eintrag
Cells(z, r) = "Tu"                                           ' Eintrag für Urlaub
ut2 = ut2 + 1
sprung1:                                                        ' Sprungziel (wenn kein Eintrag)
Next r                                                          ' Schleifenzähler
Worksheets("2. Halbjahr").Activate                              ' Tabellenblatt 2 aktivieren
sp3 = 2                                                         ' Startwert für Do-While-Loop-Schleife
Do While Cells(3, sp3) <> dat3                                  ' Start Schleife (Urlausende suchen)
sp3 = sp3 + 1                                               ' Schleifenzähler
Loop                                                            ' Wendepunkt für Schleife
For s = 2 To sp3                                                ' Schleifenstart für Tabelleneintrag
Cells(3, s).Select                                          ' Zellen selektieren
If Cells(3, r).Interior.ColorIndex = 40 Then
Cells(7, r).Value = "V"
Else: End If
If Format(Cells(5, s), "ddd") = "O" _
Or Format(Cells(5, s), "ddd") = "O" Then GoTo sprung2  ' wenn Sonnabend oder Sonntag kein Eintrag
Cells(z, s) = "Tu"                                           ' Eintrag für Urlaub
ut2 = ut2 + 1
TextBox3 = "Es werden " & ut2 & " Urlaubstage" & Chr(13) & "benötigt"
sprung2:                                                        ' Sprungziel wenn kein Eintrag
Next s                                                          ' Schleifenzähler
End Sub

' Programmende

Private Sub CommandButton2_Click()
UserForm1.Hide                                                  ' UserForm schließen
End Sub

Gruß
Wolfgang
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige