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

Bedingte Formatierung per Makro ein-/ausschalten

Bedingte Formatierung per Makro ein-/ausschalten
Maris
Hi Leute,
ich habe gestern einen Tipp zur Gruppierung per bedingter Formatierung erhalten. Excel färbt mit folgender Funktion die Spalte/n in "Hellblau" ein.
=REST(SUMMENPRODUKT(N($AA$1:$AA1$AA$2:$AA2));2)
Der Bereich dafür ist =$B$2:$BZ$2000
Das funktioniert auch wunderbar, jedoch wird mein Excel sehr langsam. Ich würde jetzt gerne die Funktion in ein Makro übernehmen und bei Klick auf bspw. ein Textfeld sollen alle Datenfelder eingefärbt werden und bei erneutem Klick soll die Einfärbung wieder rückgängig gemacht werden.
In Spalte AA ist das Vergleichskriterium.
Danke und Grüsse,
Maris
AW: Bedingte Formatierung per Makro ein-/ausschalten
18.08.2010 08:11:58
Maris
Hi zusammen,
ist das eigentlich einfach umsetzbar? Wenn nicht muß ich leider auf dieses sinnvolle Feature verzichten :-(
Gruß
Maris
AW: Bedingte Formatierung per Makro ein-/ausschalten
18.08.2010 10:29:23
Klaus
Hallo Maris,
setze in einen ToggleButton für true:
    Range("B2:BZ2000").FormatConditions.Delete
und für false:
    Range("B2:BZ2000").FormatConditions.Add Type:=xlExpression, Formula1:= _
"=REST(SUMMENPRODUKT(N($AA$1:$AA1$AA$2:$AA2));2)"
Range("B2:BZ2000").FormatConditions(1).Interior.ColorIndex = 34
Das sollte die bedingte Formatierung an / aus schalten.
Grüße,
Klaus M.vdT.
Anzeige
AW: Bedingte Formatierung per Makro ein-/ausschalten
18.08.2010 18:02:11
Maris
HI Klaus,
vielen Dank für deine Hilfe... ich habs wie folgt eingebaut:

Option Explicit
Private Sub Grouping_Click()
With Grouping
If Grouping = True Then
Range("B2:BZ2000").FormatConditions.Delete
Else
Range("B2:BZ2000").FormatConditions.Add Type:=xlExpression, Formula1:= _
"=REST(SUMMENPRODUKT(N($AA$1:$AA1$AA$2:$AA2));2)"
Range("B2:BZ2000").FormatConditions(1).Interior.ColorIndex = 34
End If
End With
End Sub
Und es funktioniert :-))))
Lediglich mein altes Problem besteht weiterhin...
Durch diese bedingt Formatierung ist meine Excelmappe extrem langsam geworden....
Ich wollte eigentlich das die Zellen eingefärbt werden nach dieser Formel und nicht mehr abhängig von der Formatierung sind. Die einfärbung soll durch erneutes drücken wieder Rückgängig gemahct werden...
Ist das in dieser Form machbar?
Gruß
Maris
Anzeige
AW: Bedingte Formatierung per Makro ein-/ausschalten
19.08.2010 10:17:52
Klaus
Hallo Maris,
klar, du könntest per VBA einfärben. Pseudocode:
IF ToggleButton THEN
FOR jedeZelle IN Bereich
IF Bedingung THEN Farbe
NEXT
ELSE
Bereich.keineFarbe
END IF
Die Frage ist, wie du die Bedingung ( "=REST(SUMMENPRODUKT(N($AA$1:$AA1$AA$2:$AA2));2)" ) nach VBA übersetzt. Ich würd das per ausgeblendeter Hilfsspalte lösen, das scheint mir am einfachsten.
Kannst ja die Summenprodukt-Formel per VBA eintragen, danach überprüfen und dann die Spalte wieder löschen.
Grüße,
Klaus M.vdT.
AW: Bedingte Formatierung per Makro ein-/ausschalten
19.08.2010 11:26:03
Maris
Hi Klaus,
Hilfsspalte!?!? Das übersteigt leider meinen Excelhorizont im Moment... könntest du mir vielleicht genauer erkären wie das funktioniert... ich komm nimma ganz mit. Wäre sehr nett von dir.
Gruß,
Maris
Anzeige
AW: Bedingte Formatierung per Makro ein-/ausschalten
19.08.2010 12:23:53
Klaus
Hallo Maris,
lad mal bitte den relevanten Teil deiner Datei hoch (im xls Format).
Grüße,
Klaus M.vdT.
AW: Bedingte Formatierung per Makro ein-/ausschalten
19.08.2010 14:19:07
Klaus
Hallo Maris
der Code schreibt die Formel in Spalte L, färbt die Zeile ein und löscht die Formel danach wieder. Spalte L ist also tabu für die restliche Tabelle! Am besten ausblenden.
Wenn dein Original größer ist, kannst du die Spalte im Makro verändern (zB auf IV).
Grüße,
Klaus M.vdT.
Option Explicit
Private Sub ToggleButton1_Click()
Dim lRow As Long
Dim r As Range
ActiveCell.Activate 'Focus wiederholen (nicht notwendig)
lRow = Range("A65536").End(xlUp).Row 'Letzte Zeile
If ToggleButton1 Then
Range("L2:L" & lRow).FormulaR1C1 = "=MOD(SUMPRODUCT(N(R2C7:RC7R3C7:R[1]C7)),2)" 'Formel in  _
Spalte L schreiben
For Each r In Range("L2:L" & lRow) 'Spalte L bis zur letzten Zeile durchlaufen
If r.Value = 1 Then r.EntireRow.Interior.ColorIndex = 34 'Wenn Formel 1 ergibt, die  _
Zeile blau färben
Next r
Range("L1").EntireColumn.ClearContents 'Die Formeln in Spalte L löschen
Else
Range("L2:L" & lRow).EntireRow.Interior.ColorIndex = xlNone 'gesamten Bereich entfärben
End If
End Sub

Anzeige
AW: Bedingte Formatierung per Makro ein-/ausschalten
19.08.2010 15:21:32
Maris
hi,
leider stimmt die Formel nicht liefert falsche Werte... Sie Beispieldatei. Beim anpassen an die Origianldatei ist meine Vergleichspalte nicht G sondern Z

Range("CD2:CD" & lRow).FormulaR1C1 = "=MOD(SUMPRODUCT(N(R2C7:RC7R3C7:R[1]C7)),2)"
keine Ahnung wie ich das hier anpassen soll :-(
https://www.herber.de/bbs/user/71141.xls
Hilf dir selbst dann hilft dir der Makrorekorder!
19.08.2010 15:26:56
Klaus
Hallo Maris,
schreibe die original Formel in die erste Zeile der Hilfsspalte Spalte. Wirf den Makrorekorder an, clicke auf die Zeile und drücke F2 - Enter. Makrorekorder wieder aus.
Nun hast du die R1C1 Notation deiner Formel, die du im obrigen Makro austauschen kannst. Nicht vergessen, auch alle Spaltenbezeichnungen zu ändern ( Range("L2:L"&lRow) wird zB zu Range("AA2:AA2 & lRow) )
Grüße,
Klaus M.vdT.
Anzeige
AW: Hilf dir selbst dann hilft dir der Makrorekorder!
19.08.2010 16:25:42
Maris
super vielen dank! wie schaffe ich es nun das er nicht die gesamte Zelle einfärbt sondern nur den Bereich:
B bis AZ
Grüßle
Maris
AW: Hilf dir selbst dann hilft dir der Makrorekorder!
20.08.2010 10:46:44
Klaus
Hi Maris,
aus der Hüfte:
tausche die Zeile
If r.Value = 1 Then r.EntireRow.Interior.ColorIndex = 34 

gegen
If r.Value = 1 Then Range("B" & r.row & ":AZ" & r.row).Interior.ColorIndex = 34
Grüße,
Klaus M.vdT.
AW: Hilf dir selbst dann hilft dir der Makrorekorder!
20.08.2010 17:25:39
Maris
Danke dir :-D!!!!
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige