Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1592to1596
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

spalte markieren

spalte markieren
01.12.2017 08:29:52
Johann
Hallo
Liebe VBA Spezialisten,
ich habe ein Problem eine gefundene Spalte zu formatieren.
Folgenden befehl habe ich geschrieben, jedoch führt dieser nicht zum erfolg.
Ich möchte in der ersten Reihe alle Datum welche Samstag und Sontag sind
mit zwei verschiedenen Kontrasten bis zum Ende der Spalte farbig markieren.
Sub Datum()
Dim r As Range
Dim rFT As Range
Dim bolFT As Boolean
For Each r In Range("A1:AE1")
If IsDate(r.Value) Then
bolFT = False
For Each rFT In Range("Feiertage")
If rFT.Value = r.Value Then
bolFT = True
Exit For
End If
Next
If Weekday(r.Value, vbMonday) = 6 Then
With Range(Cells(Rows.Count, r.Column).End(xlUp).Row) '
Ich danke euch im Voraus

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: spalte markieren
01.12.2017 14:18:42
JoWE
Hallo Johann,
warum als Excel-Profi nicht mit der bedingten Formatierung?
Userbild
für den Sonntag dann mit "=7"
Gruß
Jochen
AW: spalte markieren
06.12.2017 16:02:27
Johann
Danke Jochen,
allerdings habe ich 12 Arbeitsmappen für Jeden Monat.
Diese werden Jährlich per Makro geleert und mit den neuen Datumsangaben aktualisiert.
Userbild
Da die Wochenenden unterschiedlich sind sollen auch die entsprechenden spalten formatiert werden.
Allerdings im zuge des Makros und ohne Nachträgliche manuelle formatierung.
Anzeige
AW: spalte markieren
06.12.2017 16:36:57
Hajo_Zi
Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.
Schau mal hier
Eine hochgeladene Arbeitsmappe erhöht die Wahrscheinlichkeit, dass Du eine Lösung für Dein Problem erhältst.
Erstelle folglich bitte eine Demomappe, aus der deine Aufgabenstellung klar erkennbar ist und lade diese hoch.
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, solltest du diese Daten anonymisieren bzw. pseudonymisieren.
Falls Du den Download des Forums nicht benutzen möchtest beachte bitte: von unsicheren Servern file-upload lade ich keine Datei herunter (lt. Einschätzung meines Virenprogramms)

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung. o.w.T."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben,
mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Beiträge von Werner, Luc, robert und folgende lese ich nicht.
Anzeige
AW: spalte markieren
07.12.2017 09:22:31
JoWE
Hallo Johann,
Du meinst sicher 12 Arbeitsmappen für ein Jahr, für jeden Monat eine?
dann vllt. so:
Sub für12Sheets()
Dim s As Long
For s = 1 To 12
Sheets(s).Select
Call set_bed_formatierung
Next
End Sub
Sub set_bed_formatierung()
With ActiveSheet
Range("E1:AI34").Select 'anpassen
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=WOCHENTAG(A1;2)=6"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent6
.TintAndShade = 0.599963377788629
End With
Selection.FormatConditions(1).StopIfTrue = False
Range("E1:AI34").Select 'anpassen
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=WOCHENTAG(A1;2)=7"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent6
.TintAndShade = 0.399945066682943
End With
Selection.FormatConditions(1).StopIfTrue = False
End With
Range("A1").Select
End Sub
Du musst allerdings schauen ob Du mit dem Start-Makro "Sub für12Sheets()" so hinkommst.
In E1:AI1 müssen echte Datumsangaben enthalten sein, z.B. "01.01.2018".
Anzeigen läßt Du via Benutzerdef. Format nur die Ziffer des Tages; also z.B. "1".
Und Du musst die Bereiche "E1:AI34" an die tatsächlichen Bereichsangaben deiner 12 TAbellen anpassen.
Gruß
Jochen
Anzeige
AW: spalte markieren
07.12.2017 18:59:58
Johann
Hallo Jochen,
also als erstes möchte ich mich bei dir recht herzlichst bedanken.
Der Code von dir ist klasse. Leider nicht das was ich suche.
Auch bei deinem Code ist ein Vorgegebener bereich festgelegt.
Ich benötige jedoch einen durchlauf der ersten Zeile.
Sobald ein Samstag oder Sontag gefunden wird, wird die ganze Spalte eingefärbt.
(Allerdings nicht über eine Formatierung) Nur per Code.
Zu viele festgelegte Formate verlangsamen den Start der Mappe.
Ich habe mal ein Bild vom Januar welches manuel formatiert wurde eingefügt.
Userbild
Anzeige
AW: spalte markieren
07.12.2017 19:33:11
JoWE
Hallo Johann,
also so vllt:
Sub WE_einfärben()
With ActiveSheet
For sp = 5 To 35
'wenn Du nur z.B. bis zur Zeile 40 einfärben willst
If Weekday(.Cells(1, sp).Value, 2) = 6 Then .Range(.Cells(1, sp), .Cells(40, sp)).Interior. _
ColorIndex = 13
If Weekday(.Cells(1, sp).Value, 2) = 7 Then .Range(.Cells(1, sp), .Cells(40, sp)).Interior. _
ColorIndex = 14
'wenn Du wirklich die ganze Spalte einfärben willst
'If Weekday(.Cells(1, sp).Value, 2) = 6 Then .Columns(sp).Interior.ColorIndex = 13
'If Weekday(.Cells(1, sp).Value, 2) = 7 Then .Columns(sp).Interior.ColorIndex = 14
Next
End With
End Sub

Gruß
Jochen
Anzeige
AW: spalte markieren
07.12.2017 19:56:01
Johann
Super,
Vielen Dank Jochen.
Ich wollte den Code noch etwas abändern und bekomme den fehler for ohne next.
Sub WE_einfärben()
With ActiveSheet
For sp = 5 To 35
If Weekday(.Cells(1, sp).Value, 2) = 6 Then
With .Columns(sp)
.Interior.ColorIndex = 48
.Font.Color = vbWhite
.ColumnWidth = 2.57
End With
If Weekday(.Cells(1, sp).Value, 2) = 7 Then
With .Columns(sp)
.Interior.ColorIndex = 56
.Font.Color = vbWhite
.ColumnWidth = 2.57
End With
Next
End With
End Sub

AW: spalte markieren
07.12.2017 20:06:31
JoWE
du hast 2 x "End if" vergessen:
Sub WE_einfärben()
With ActiveSheet
For sp = 5 To 35
If Weekday(.Cells(1, sp).Value, 2) = 6 Then
With .Columns(sp)
.Interior.ColorIndex = 48
.Font.Color = vbWhite
.ColumnWidth = 2.57
End With
End If
If Weekday(.Cells(1, sp).Value, 2) = 7 Then
With .Columns(sp)
.Interior.ColorIndex = 56
.Font.Color = vbWhite
.ColumnWidth = 2.57
End With
End If
Next
End With
End Sub
Gruß
Jochen
Anzeige
AW: spalte markieren
07.12.2017 20:07:16
Johann
Vielen vielen Dank Jochen.
funzt super!
AW: Spalten formatieren
07.12.2017 20:23:01
Gerd
Hallo Johann,
solche IF-THEN-END IF-Bedingungen muss man innerhalb der Schleife abschließen.
Sub WE_einfaerben()
Dim sp As Long
With ActiveSheet
For sp = 5 To 35
With .Columns(sp)
If Weekday(.Cells(1).Value, 2) = 6 Then
.Interior.ColorIndex = 48
.Font.Color = vbWhite
.ColumnWidth = 2.57
ElseIf Weekday(.Cells(1).Value, 2) = 7 Then
.Interior.ColorIndex = 56
.Font.Color = vbWhite
.ColumnWidth = 2.57
End If
End With
Next
End With
End Sub
Gruß Gerd

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige