Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1152to1156
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
Inhaltsverzeichnis

Farbe in Zellbereich richtig setzen

Farbe in Zellbereich richtig setzen
Heinz
Hallo Leute
Habe unteres Makro das mir ab A5:A34 das Datum von Mo.-Fr. ohne WE setzt.
Das funkt. auch.
Nur besagt das Makro auch, nach jeden Fr. oder Monatsletzten nächste Spalte mit .Interior.ColorIndex = 37
Das funkt. auch zu 90% nur kann es vorkommen Zb. A26 = 28. Feb.2010 nach Monatsletzten
A27= .Interior.ColorIndex = 37 (Ist richtig)
A28 kommt auch .Interior.ColorIndex = 37(Ist falsch) Hier sollte keine Farbe gesetzt werden.
Könnte mir bitte dazu jemand helfen ?
Gruß
Heinz
'Blattname neu bestimmen
ActiveSheet.Name = Range("G1")
ActiveSheet.Unprotect Password:="woody-6962"
Dim datStart As Date, datEnd As Date
Dim lDay As Long
Dim iRow As Integer, lngStart As Long, lngCol As Long
datStart = Range("F1").Value ' in der Zelle M3 befindet sich das Anfangsdatum
datEnd = Range("H1").Value   ' in der Zelle H1 befindet sich das Enddatum
iRow = 6  'Hiermit wird gesagt, dass in Zeile 6 angefangen werden soll
lngStart = iRow
Range("A6:A35").EntireRow.ClearContents ' Statt löschen der Zeilen werden nur Inhalte gelö _
scht
Range("C6:F35").EntireRow.ClearContents ' Statt löschen der Zeilen werden nur Inhalte gelö _
scht
Range("L6:L35").EntireRow.ClearContents ' Statt löschen der Zeilen werden nur Inhalte gelö _
scht
Range("A6:A35").EntireRow.Interior.ColorIndex = xlColorIndexNone 'Entfernt Farbe aus  _
Zellbereich
Range("A6:O35").Font.Bold = False 'Schriftart Fett zurücksetzen
Range("A6:A35").NumberFormatLocal = "TT.MM.JJJJ"
Range("B6:B35").NumberFormatLocal = "TTT"
Range("A6:O35").Locked = True  'Zellschutz aufheben
'Rahmen Zurücksetzung
Range("A7:O34").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlHairline
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlHairline
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlHairline
.ColorIndex = xlAutomatic
End With
'Rahmen Neu setzen
If Weekday(datEnd) = 7 Then
datEnd = datEnd - 1
End If
For lDay = datStart To datEnd
Select Case Weekday(lDay, 2)
Case Is  0 Then MsgBox "Fehler: " & Err.Number & vbLf & _
Err.Description
ActiveSheet.Protect Password:="woody-6962"
Call Blattschutz
End Sub

AW: Farbe in Zellbereich richtig setzen
22.04.2010 00:13:53
fcs
Hallo Heinz,
ich tippe mal, dass das Problem auftaucht, wenn datEnd in der For-Next-Schleife auf einen Samstag fällt.
Mit einer Prüfung auf den Wochentag für das Formatieren und Einfügen der Summenformeln nach dem Monatsende sollte es funktionieren.
Gruß
Franz
Next
If Weekday(datEnd, 2)  6 Then
With Range(Cells(iRow, 1), Cells(iRow, 15))
.Interior.ColorIndex = 37
.Font.Bold = True
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
.Borders(xlEdgeLeft).LineStyle = xlNone
With .Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With .Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With .Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
End With
For lngCol = 7 To 11
Cells(iRow, lngCol).Formula = "=Sum(" & Range(Cells(lngStart, lngCol), _
Cells(iRow - 1, lngCol)).Address & ")"
Next
End If
Dim sp#, Such$, LR%, TB1, i#, m%, Z1%
Dim M1%
Fehler:
If Err.Number  0 Then MsgBox "Fehler: " & Err.Number & vbLf & _
Err.Description
ActiveSheet.Protect Password:="woody-6962"
Call Blattschutz
End Sub

Anzeige
AW: Farbe in Zellbereich richtig setzen
22.04.2010 01:06:07
Heinz
Hallo Franz
Das wars leider auch nicht.
Habe die Datei mal hochgeladen.
Klicke bitte auf Button "Neues Personallblatt"
Bei Beginn der Stundenliste gib bitte 01.02.00 ein
Der Code steht im Modul "Neue_Arbeitsmappe"
Danke & Gruß
Heinz
https://www.herber.de/bbs/user/69186.xls
wichtiger Hinweis ! Vorsicht mit Reset
22.04.2010 07:05:41
Matthias

Hallo Heinz
Nur als Hinweis


Mit Deiner Zeile:
Application.CommandBars("Cell").Reset
zerstörst Du aber ein vorher bereits vorhandenes Kontexmenue.
Du solltest also unbedingt den ursprünglichen Zustand wiederherstellen.
Gruß Matthias
Anzeige
AW: wichtiger Hinweis ! Vorsicht mit Reset
22.04.2010 13:44:53
Heinz
Hallo Matthias
Ich habe im Tab. Blatt den Code stehen.
Es funkt. auch mit den CommandBars.
Danke & Gruß
Heinz
  • Option Explicit
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column = 12 And Target.Row >= 5 And Target.Row 


  • AW: Farbe in Zellbereich richtig setzen
    22.04.2010 07:52:28
    fcs
    Hallo Heinz,
    kann deine Datei mit Excel 2007 leider nicht testen.
    Ich hatte im Text zwar geschrieben "wenn der Letzte Tag der Schleife auf einen Samstag fällt", dann aber einen kleinen Fehler in die Prüfung eingebaut.
    Probiers es mal mit
    If Weekday(datEnd, 2) = 6 Then
    'usw
    

    Gruß
    Franz
    Anzeige
    AW: Farbe in Zellbereich richtig setzen
    22.04.2010 13:50:07
    Heinz
    Hallo Franz
    Habe nun
    If Weekday(datEnd) = 7 Then
    datEnd = datEnd - 1
    End If
    
    in
    If Weekday(datEnd, 2) = 6 Then
    datEnd = datEnd - 1
    End If
    
    umgeändert.
    Leider ohne Erfolg.
    Danke Heinz
    AW: Farbe in Zellbereich richtig setzen
    22.04.2010 14:02:42
    fcs
    Hallo Heinz,
    hier war mein Korrekturvorschlag: https://www.herber.de/forum/messages/1153224.html
    In der 2. Zeile muss die If-Anweisung geändert werden und <> durch = ersetzt werden.
    Gruß
    Franz
    AW: Farbe in Zellbereich richtig setzen
    22.04.2010 14:12:04
    Heinz
    Hallo Franz
    Folgendes möchte ich noch dazuschreiben.
    Es passiert aber nur wenn der Letzte eines Monats bis A30 geht.
    Ist der Monatsletzte in A31 & es ist ein Freitag,dann funktioniert alles korrekt.
    Gruß
    Heinz
    Anzeige
    AW: Super - D A N K E
    22.04.2010 14:23:59
    Heinz
    Hallo Franz
    So funktioniert es.
    Next
    If Weekday(datEnd, 2) = 6 Then
    With Range(Cells(iRow, 1), Cells(iRow, 15))
    .Interior.ColorIndex = 37
    .Font.Bold = True
    
    Recht herzlichen D A N K !!
    Gruß
    Heinz
    AW: Super - D A N K E
    22.04.2010 21:01:21
    Heinz
    Hallo
    Nur zur Info
    Habe es in
    Next
    If Weekday(datEnd, 2) 
    umgewandelt
    Grund: Es war dann bei einigen Monatsletzten das
    .Interior.ColorIndex = 37
    
    nicht mehr gesetzt.
    Nochmals Danke
    Heinz

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige