Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Bedingte Formatierung als Makro

Betrifft: Bedingte Formatierung als Makro von: Thomas
Geschrieben am: 24.07.2013 09:31:18

Hallo zusammen,

ich brächte folgende Bedingte Formatierung als Makro.

Bedingte Formatierung:
Werte formatieren, für die diese Formel wahr ist:

=ZÄHLENWENN(A8:A240;A8)>1

Wird angewendet auf:
=$A$8:$NG$240

Formatierung: Ausfüllen mit hellgrüner Farbe

Vielen Dank!
Gruß
Thomas

  

Betrifft: Und ich bräuchte Urlaub von: JACKD
Geschrieben am: 24.07.2013 10:47:50

Du kannst ja schonmal den Makrorekorder laufen lassen und wir helfen dir dann deinen Code zu optimieren.

Grüße


  

Betrifft: AW: Und ich bräuchte Urlaub von: Thomas
Geschrieben am: 24.07.2013 11:18:42

Hallo,

so sieht der aufgezeichnete Code aus:

Sub Makro2()
'

' Makro2 Makro
'

'
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=ZÄHLENWENN(A8:A240;A8)>1"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent2
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False
End Sub
Nur wenn ich das Makro so laufen lasse, passiert nichts...

Gruß
Thomas


  

Betrifft: AW: Und ich bräuchte Urlaub von: Matze Matthias
Geschrieben am: 24.07.2013 13:16:40

Hallo Thomas,
warum muss das VBA sein ?

Markiere den Bereich A8:NG200 Neue Bedingung
Formel =$A8>=1 Farbe wählen FERTIG OK

So gewollt ?
Matze


  

Betrifft: AW: Und ich bräuchte Urlaub von: Thomas
Geschrieben am: 24.07.2013 13:46:15

Hallo Matze,

soll VBA sein, da in dem Tabellenblatt die automatische Berechnung deaktiviert ist.

Vereinfacht wäre es auch zu lösen mit Bedingter Formatierung und dein ein Makro mit "calculate" aber ist nicht die schönste Lösung.


Gruß
Thomas



  

Betrifft: Profi bitte drüberschauen - von: Matze Matthias
Geschrieben am: 24.07.2013 14:23:42

Hallo Thomas,

Vorgabe: des Tabellenblatt ist "automatische Berechnung" aus!!

..ich werde dir hier nicht weiterhelfen können und stelle nachher den Beitrag auf offen.

Das Private Sub Worksheet_Change(ByVal Target As Range) Ereignis in einer Tabelle
wäre jetzt mein Vorschlag gewesen , leider funktioniert das nicht mit der Formel Aktualisierung.
Da muesste dann ebenfalls ein Calculate mit rein. Also kannst du schon wie oben die einfache Variante nutzen.

Hier gibt's Profis, daher nun offen

Matze


  

Betrifft: AW: Profi bitte drüberschauen - von: fcs
Geschrieben am: 25.07.2013 13:01:33

Hallo Thomas,

für mich ist unklar in welchem Zellbereich jeweils peprüft werden soll ob der Zellinhalt mehr als 1-mal vorkommt.
Da scheinen mir in der Formel deiner bedingten Formatierung ein paar $-Zeichen zu fehlen.

Wenn du mit bedingter Formatierung(inkl. Formel) arbeittest und Berechnung auf manuell steht, dann muss du nur Taste F9 drücken zur Neuberechnung.

Eine Makrolösung sieht etwa wie folgt aus. Sie benötigt aber auch schon ein paar Sekunden bei der Anzahl Zellen.

Gruß
Franz

Sub Formatieren()
  Dim wks As Worksheet
  Dim rngZelle As Range, rngPruefen As Range, rngZaehlen As Range
  Set wks = ActiveSheet
  Set rngPruefen = wks.Range("A8:NG240")
  Set rngZaehlen = wks.Range("A8:A240")
  Application.ScreenUpdating = False
  rngPruefen.Interior.ColorIndex = xlColorIndexNone 'oder andere Basisfarbe setzen
  For Each rngZelle In rngPruefen
    'Prüft Anzahl Zellinhalt in Spalte A
    If Application.WorksheetFunction.CountIf(rngZaehlen, rngZelle.Value) > 1 Then
    'Prüft Anzahl Zellinhalt in Spalte der Zelle
    'If Application.WorksheetFunction.CountIf(rngZaehlen.Offset(0, _
          rngZelle.Column - rngZaehlen.Column), rngZelle.Value) > 1 Then
      rngZelle.Interior.Color = RGB(0, 255, 0) 'hellgrün
    End If
  Next
  Application.ScreenUpdating = True
  MsgBox "Fertig mit Formatieren"
End Sub



  

Betrifft: Nachfrage von: mpb
Geschrieben am: 24.07.2013 14:01:16

Hallo Thoams,

sollen wirklich über VBA die Zellen bedingt formatiert werden, oder reicht es, die Zellen im genannten Bereich, die die Bedingung erfüllen, hellgrün zu färben?

Gruß
Martin


  

Betrifft: Versehentlich geschlossen, nun wieder geöffnet oT von: mpb
Geschrieben am: 24.07.2013 14:07:06




 

Beiträge aus den Excel-Beispielen zum Thema "Bedingte Formatierung als Makro"