Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: If Bedingung funktioniert nicht

If Bedingung funktioniert nicht
29.11.2018 09:38:30
Georg
Liebe Mitglieder, ich brauche Unterstützung für ein rel. banales Problem und bin mal wieder zu .... Was mache ich falsch?
Ab "B6" steht Mo, Di, Mi etc drin
Ab "C6" steht 01.01.2019, 02.01.2019 etc drin
Die Farbe habe ich über den MakroRecorder ermittelt.
Leider funktioniert die Bedingung nicht. Es werden die Werte in jede Zeile von 6 - 36
reingeschrieben.
Und wie mache ich es, dass es für jedes Worksheet ab Blatt 2 - 13 funktioniert.
Vielen Dank!!! Georg
Sub WerteEinfügen()
Dim i As Long
For i = 6 To 36
If Cells(i, 3) > 0 And Cells(i, 2).Font.Color = -16777024 Then
Cells(i, 4) = "8:00"
Cells(i, 5) = "10:30"
Cells(i, 6) = "00:30"
End If
Next i
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: If Bedingung funktioniert nicht
29.11.2018 09:51:27
Daniel
Hi
was möchtest du genau tun?
in Spalte C steht ein Datum und ein Datum ist für Excel eine einfache positive Ganzzahl, dh jedes Datum ist eine Zahl größer 0 (1 ist der 1.1.1900, danach wird jeden Tag um 1 hochgezählt)
wie kommt die Farbe in die Zelle?
direkt eingefärbt oder mit Bedingter Formatierung?
Verwendest du in den Zellen die Bedingte Formatierung, müssen Formate immer mit
Cells(..).DisplayFormat.Font.Color abgefragt werden, ohne DisplayFormat bekommst du immer die normale Formatierung.
für mehrere Blätter dann mit einer Schleife in dieser Form:
dim i as Long
dim b as Long
for b = 2 to 13
With Sheets(b)
For i = 6 To 36
If .Cells(i, 3) > 0 And .Cells(i, 2).Font.Color = -16777024 Then
.Cells(i, 4) = "8:00"
.Cells(i, 5) = "10:30"
.Cells(i, 6) = "00:30"
End If
next i
end with
Next b
mit dem Punkt vor jedem Cells zeigst du an, dass hier das Tabellenblatt gemeint ist, welches du in der WITH-Klammer definiert hast.
ohne das WITH müsstest du immer schreiben. Sheets(b).Cells(..) um anzuzeigen, dass immer die Zelle auf demjenigen Blatt gemeint ist, welches gerade im Schleifendruchlauf ist.
Gruß Daniel
Anzeige
AW: Danke...
29.11.2018 10:23:57
Georg
Daniel, auch für die Erklärung. Ich wollte mit der ersten Bedingung lediglich verhindern, dass leere Zeilen befüllt werden. Es passt alles. Danke und Gruß G
;

Forumthreads zu verwandten Themen

Anzeige
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