Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1360to1364
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 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. :(

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

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

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.

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

318 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige