Excel spezielles Problem mit Zeilen ziehen

  • #1
S

Schmerzspender2000

Guest
Habe in Excel ein Tabelle mit den Wochentagen.
die Wochenenden sind mit einer Hintergrundfarbe unterlegt.
Trägt man nun bei einem normalen Wochentag etwas ein und zieht dies dann damit man die Eingabe nicht wiederholen muss herunter, dann verschwindet aber die Farbe des Hintergrundes der Zelle der Wochenenden und wird mit der Farbe der Wochentage überschrieben.
Gibt es eine Möglichkeit, dass man bestimmte Felder, hier die Wochenenden, mit einer Farbe einfärben kann und diese auch erhalten bleibt, wenn man Felder mit Einträgen darüber zieht, die nicht in dieser Farbe hinterlegt sind...
Problem verstanden ? ;)

Es dankt
der Spender
 
  • #2
Hallo Spender,

wenn du in einer Spalte das Datum stehen hast, kannst du es mit bedingter Formatierung lösen.

Beispiel:
In Spalte A steht das Datum
bedingte Formatierung für Zellen der Zeile 1:
1. Bedingte Formatierung für Sonnabend:
Code:
Formel ist 
=WOCHENTAG(A1;1)=7
Hintergrundfarbe wählen
2. Bedingte Formatierung für Sonntag:
Code:
Formel ist 
=WOCHENTAG(A1;1)=1
Hintergrundfarbe wählen

Gruß matjes :)
 
  • #3
Ich sagte ja schon es ist nicht so einfach zu erklären.
Also noch mal ein Versuch oder ich hab deines Matjes nicht verstanden.
Spalte A steht mein Datum
Spalte B der Wochentag.
Spalte C bis X stehen Namen.
So nun ist der Sonntag mir roter Hintergrundfarbe unterlegt.
Jetzt hab ich in Spalte A den Namen Kunz stehen und Kunz belegt GRillhütte 1 von Samstag bis Montag.
Nun tipp ich Kunz bei Samstag ein und ziehe den Namen bis Montag. Nun wird aber der Sonntag auch weiß durch dass ziehen des Namens.
Hier liegt das Problem ich möchte dass der Sonntag ROT bleibt und der Name Kunz trotzdem drinne steht.


Es dankt
der Spender
 
  • #5
@Matjes jou du hast Recht. Fehler meinersteits!

Spalte A Nummerisches Datum
Spalte B Name des Wochentages
Spalte C seht dann der Name bzw. die Namen bis Spalte X
Das Datum von Spalte A und B zieht sich dann quasi durch Spalte C bis X
Jetzt is der 10.08.08 ein Sonntag und rot unterlegt! Dies gilt für Spalte C bis X und auch A und B. Heißt dann is die ganze Zeile rot unterlegt für den 10.08.08
Und jetzt wieder zum Problem mit dem ziehen der Namen über einen Sonntag der dann nicht mehr rot sondern weiß ist ;)

Es dankt
der Spender
 
  • #6
Hallo Spender,

das klappt dann nur mit einem Makro.

Öffne deine Datei. Dann gehst du auf das entsprechende Blatt und klickst mit der rechten Maus-Taste die Lasche an (Blattname) und wählst Code anzeigen. Dort fügst du folgenden Code ein:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)

 Const cFARBE_SONNTAG = 38        ->Sonntag   hellrosa
 Const cFARBE_SONNABEND = 40       ->Sonnabend  gelbbraun
 Const cFARBE_WOCHENTAG = xlColorIndexNone->Wochentag  keine Farbe
 Const cFARBE_OHNEDATUM = xlColorIndexNone->ohne Datum keine Farbe
 Const cSPDATUM = 1 ->Spalte mit Datum
 Const cVONSPLATE = 1->markieren von
 Const cBISSPLATE = 24->markieren bis
 
 Dim r As Range, z As Long
 
 For Each r In Target.EntireRow
  z = r.Row
  Set r = Range(Cells(z, 1), Cells(z, cBISSPLATE))
 ->Spalte A Datum ?
  If IsDate(Cells(z, cSPDATUM).Value) Then
   If Weekday(Cells(z, cSPDATUM).Value, vbSunday) = vbSunday Then->Sonntag
    If IsNull(r.Interior.ColorIndex) Or (r.Interior.ColorIndex <> cFARBE_SONNTAG) Then
     r.Interior.ColorIndex = cFARBE_SONNTAG
    End If
   ElseIf Weekday(Cells(z, cSPDATUM).Value, vbSunday) = vbSaturday Then->Sonnabend
    If IsNull(r.Interior.ColorIndex) Or (r.Interior.ColorIndex <> cFARBE_SONNABEND) Then
     r.Interior.ColorIndex = cFARBE_SONNABEND
    End If
   Else->Werktag
    If IsNull(r.Interior.ColorIndex) Or (r.Interior.ColorIndex <> cFARBE_WOCHENTAG) Then
     r.Interior.ColorIndex = cFARBE_WOCHENTAG
    End If
   End If
  Else
   If IsNull(r.Interior.ColorIndex) Or (r.Interior.ColorIndex <> cFARBE_OHNEDATUM) Then
    r.Interior.ColorIndex = cFARBE_OHNEDATUM
   End If
  End If
 Next
 Set r = Nothing
End Sub
Die Farben für Sonnabend und Sonntag kannst du in den Konstanten
Const cFARBE_SONNTAG = 38 ->Sonntag hellrosa
Const cFARBE_SONNABEND = 40 ->Sonnabend gelbbraun
anpassen, 3 ist knallrot, 6 knallgelb.

Dann mit Alt+Q den VB-Editor verlassen und anschliessend die Datei speichern.

Das Makro wird bei Veränderung der Zellinhalte des Blattes aktiv. Es schaut in jeder Zeile des geänderten Bereichs in der Spalte A, ob dort ein Datum steht.
Wenn nein,wird für Spalte A bis X der Farbhintergrund farblos gesetzt.
Wenn ja, wird der Wochentag des Datums festgestellt.
Für Sonntag wird Spalte A bis X der Farbhintergrund cFARBE_SONNTAG gesetzt.
Für Sonnabend wird Spalte A bis X der Farbhintergrund cFARBE_SONNABEND gesetzt.
Für Wochentage wird Spalte A bis X der Farbhintergrund farblos gesetzt.

Gruß Matjes :)
 
  • #7
Gude

hab dass mal so gemacht, aber es funktioniert leider noch nicht ganz. Es wird der Montag orange und der Dienstag rosa gefärbt ???
Zu deiner ERklärung. Die versteh ich nicht ganz. In Spalte A steht doch IMMER ein Datum! Da Bilder mehr sagen als 1000 Worte hab ich mal ein Bild der Tabelle online gestellt. Hätte ich wohl gleich machen sollen ;)


Vielleicht hier noch mal ein letzter prüfender Blick des Meisters Matjes :D
 
  • #8
Hallo Spender,

du müßtest dafür die Zeil
Code:
Const cFARBE_SONNABEND = 40
in
Code:
const cFARBE_SONNABEND = xlColorIndexNone
ändern.

Das bedeutet, dass der Sonnabend auch farblos ist.

Gruß Matjes :)
 
Thema:

Excel spezielles Problem mit Zeilen ziehen

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.966
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben