Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Spalte nach Teilwort durchsuchen und...

Spalte nach Teilwort durchsuchen und...
12.05.2014 10:52:58
VBA
Hallo zusammen,
ich habe ein VBA Problem, bei dem ich absolut keinen Anfang finde, ich habe schon nach vorhandenen Codes geschaut, aber ich verstehs einfach nicht. =/
Folgendes Problem:
Ich habe eine Spalte mit den Tagen des aktuellen Monats
z.B. A1 = 01.01.2014
A2 = A1+1 (entspricht 02.01.2014)
Das Format ist als Datum angewendet:
A1 = 01. Mi
A2 = 02. Do
So....ich möchte nun, wenn in der Spalte A1:A100 der Tag Sonntag (Hier "So") vorkommt, die ganze Zeile mit der Schriftfarbe rot markiert haben. Ich habe schon versucht einen Code umzuschreiben, leider ohne Erfolg.
Hier mein Versuch:
Option Explicit
' A1:A100

Public Sub autoexec()
Dim rBereich  As Range
Dim rZelle    As Range
with Worksheets("Jan")
Set rBereich = Range("A1:A100")
For Each rZelle In rBereich
If Left(UCase(rZelle.Value), 2) = "So" Then
rZelle.row.Font.ColorIndex = 3
End If
Next rZelle
end with
End Sub

Ich hoffe jmd kann mir weiterhelfen, ich bin i-wie verzweifelt. :(

Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalte nach Teilwort durchsuchen und...
12.05.2014 11:01:30
Arthur
Hallo namenloser Anfänger.
Das ganze ließe sich leicht über eine Bedingte Formatierung lösen. Wenn 'So' im Text, dann rot.
Ohne es selbst eingetippt zu haben scheint mir, dass der Denkfehler in VBA der ist, dass der Wert eine Zahl ist, die dem Datum entspricht, also kein So, Mo, Di vorkommt. Dazu sollte .Text anstelle .Value abgefragt werten.
Gruß, Arthur

Anzeige
AW: Spalte nach Teilwort durchsuchen und...
12.05.2014 11:24:16
UweD
Hallo
wenn es denn VBA sein soll, dann so...
Dim rBereich  As Range
Dim rZelle    As Range
With Worksheets("Jan")
Set rBereich = Range("A1:A100")
For Each rZelle In rBereich
If Weekday(rZelle, vbMonday) = 7 Then
Rows(rZelle.Row).Font.ColorIndex = 3
End If
Next rZelle
End With

Gruß UweD

Anzeige
AW: Spalte nach Teilwort durchsuchen und...
12.05.2014 13:45:45
VBA
Hey
.@UweD, dein Code funktioniert nicht.
"If Weekday(rZelle, vbMonday) = 7 Then" = Typen unverträglich sagt er.
.@ Arthur
Genau, das ist auch mein Problem, ich weiß nicht wie ich das nun realisieren soll.
Bitte weiter um Hilfe.
Grüße

AW: Spalte nach Teilwort durchsuchen und...
12.05.2014 14:45:53
UweD
Hallo nochmal
bei mir klappt das tadellos...

Die Datei https://www.herber.de/bbs/user/90641.xlsm wurde aus Datenschutzgründen gelöscht


Gruß UweD
Sub Sonntag()
Dim rBereich  As Range
Dim rZelle    As Range
With Worksheets("Jan")
'Reset
.Cells.Font.ColorIndex = xlAutomatic
MsgBox "alles schwarz"
Set rBereich = Range("A1:A100")
For Each rZelle In rBereich
If Weekday(rZelle, vbMonday) = 7 Then
Rows(rZelle.Row).Font.ColorIndex = 3
End If
Next rZelle
End With
MsgBox "Sonntage rot"
End Sub

Anzeige
AW: Spalte nach Teilwort durchsuchen und...
13.05.2014 07:25:37
VBA
Guten Morgen,
.@Rudi
Die Formatierung verstehe ich nicht. :/
Was bewirkt sie und in welche Zelle trage ich Sie ein, muss ich andere Zellen auch noch formatieren?
.@UweD
Ich habe das nochmal in einer neuen Tabelle getestet, es klappt. Habe meinen Fehler in der richtigen Datei gefunden, weiß aber nicht wie ich das nun umschreibe. Und zwar sind es keine einzelnen Zellen, sondern verbundene.
Siehe Hier:
A3 (A3-A5 verbunden) = 01.01.2014
A6 (A6-A8 verbunden) = A3+1
A9 (A9-A11 verbunden) = A6+1
und so weiter.
Trenne ich die Zellen, funktioniert dein Code, aber ich brauch sie wegen der Optik verbunden. Ist das möglich? :)
Grüße

Anzeige
AW: Spalte nach Teilwort durchsuchen und...
13.05.2014 07:55:32
hary
Moin
Dann versuch es mal mit:
 Cells(rZelle.Row, 2).Resize(3, 1).EntireRow.Font.Color = vbRed

gruss hary

AW: Spalte nach Teilwort durchsuchen und...
13.05.2014 08:58:24
UweD
Hallo nochmal
versuch es doch so...
Sub Sonntag()
Dim rBereich  As Range
Dim SP As Long, i As Long, LR As Long
Dim ZE As Byte, Schritt As Byte
SP = 1 'Spalte A
ZE = 3 ' erste Zeile
Schritt = 3
LR = ActiveSheet.Cells(Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte
With Worksheets("Jan")
Set rBereich = Range(Cells(ZE, SP), Cells(LR, SP))
'Reset
rBereich.Cells.Font.ColorIndex = xlAutomatic
MsgBox "alles schwarz"
For i = 3 To LR Step Schritt
If Weekday(Cells(i, SP), vbMonday) = 7 Then
Rows(i & ":" & i + Schritt).Font.ColorIndex = 3
End If
Next i
End With
MsgBox "Sonntage rot"
End Sub

Gruß UweD

Anzeige
AW: Spalte nach Teilwort durchsuchen und...
14.05.2014 08:47:31
VBA
Hey Hary
wenn ich das richtig eingefügt habe, funktioniert dein Code leider nicht.
Hey UweD
Der Code von dir klappt soweit, aber er markiert mir nicht nur die Zeile Sonntag komplett rot, sondern die Zeile darunter direkt mit, aber nur teilweise. Hab schon versucht den Fehler zu finden, klappt aber nicht. ^^
Und mir ist noch was eingefallen. Er soll die Zeile nur markieren, wenn es ein Sonntag ist und in Spalte "G" etwas steht also "IF NOT .... = "" Then".
Bekomm es nur leider iwie nicht mit implementiert.
Grüße

Anzeige
AW: Spalte nach Teilwort durchsuchen und...
19.05.2014 11:13:34
VBA
Hey, sry das ich so spät antworte, aber ich konnte es heute erst teste, dein Code funktioniert.
Habe ihn noch umgeschrieben, dass er Spalte 7 nach Inhalt abfragt und es ist vollbracht. :)
Vielen Dank an dich und den Rest der mir geholfen hat.

Anzeige
AW: Spalte nach Teilwort durchsuchen und...
12.05.2014 14:12:14
Rudi
Hallo,
bed. Formatierung.
Formel: =Rest(a1;7)=1
und Format wählen.
Gruß
Rudi
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige