Microsoft Excel

Herbers Excel/VBA-Archiv

Bedingung für VBA-Code einfügen

Betrifft: Bedingung für VBA-Code einfügen von: BEN10
Geschrieben am: 04.08.2014 13:27:37

Hallo Leute,

mit folgendem VBA-Code setze ich per Doppelklick in meiner Tabelle in Spalte D ein "X".

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 If Intersect(Target, Range("D2:D2000")) Is Nothing Then Exit Sub
 Target = IIf(Target = "x", "", "x")
 Cancel = True
 End Sub


Meine Frage:

Kann man das Makro so umschreiben, dass es in Spalte D nur in Zellen Funktioniert die z.B. BLAU eingefärbt sind????
Wie müsste das Makro dann aussehen???

Gruß Ben

  

Betrifft: AW: Bedingung für VBA-Code einfügen von: Oberschlumpf
Geschrieben am: 04.08.2014 13:31:25

Hi Ben

Füg zwischen Intersect-Zeile + Target = Zeile diese Zeile ein:

If Target.Interior.ColorIndex <> 5 Then Exit Sub
Das funktioniert aber nur, wenn Zelle tatsächlich mit Standardblau eingefärbt ist.
Wenn blau, weil bedingte Formatierung, dann muss anders programmiert werden.

Zeig am besten mal ne Bsp-Datei.

Ciao
Thorsten


  

Betrifft: AW: Bedingung für VBA-Code einfügen von: Rudi Maintaire
Geschrieben am: 04.08.2014 13:33:17

Hallo,

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Not Intersect(Target, Range("D2:D2000")) Is Nothing Then
    If Target.Interior.Color = RGB(0, 0, 255) Then
      Target = IIf(Target = "x", "", "x")
      Cancel = True
    End If
  End If
End Sub

Gruß
Rudi


  

Betrifft: AW: Bedingung für VBA-Code einfügen von: BEN10
Geschrieben am: 04.08.2014 13:49:58

Hi Rudi,

ich hab mich an für deine Variante entschieden, da mir die Auswahl mit der RGB-Farbpalette am besten gefallen hat.

Danke!

@die anderen Lösungsvorschläge: Hab eure Lösungen auch ausprobiert und sie haben auch funktioniert, aber wie oben erwähnt hab ich mich für Rudis Variante entschieden. Danke trotzdem!


Gruß BEN


  

Betrifft: AW: Bedingung für VBA-Code einfügen von: Robert
Geschrieben am: 04.08.2014 13:33:33

Hallo Ben,

Hintergrundfarbe kannst du so abfragen

If Cells(1,1).Interior.ColorIndex = 1 Then
Mach dies und das
End If

Blau ist nicht gleich Blau!
Übersicht zum Colorindex hier:
http://dmcritchie.mvps.org/excel/colors.htm

viele Grüße
Robert


  

Betrifft: AW: Bedingung für VBA-Code einfügen von: Hajo_Zi
Geschrieben am: 04.08.2014 13:34:45

Hallo Ben,

Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("D2:D2000")) Is Nothing Then
        If Target.Interior.Color = 12611584 Then
            Target = IIf(Target = "x", "", "x")
            Cancel = True
        End If
    End If
End Sub

Dir ist schon klar das Excel über 4 Mio. Farben hat und darunter viel Blauttöne.

GrußformelHomepage


 

Beiträge aus den Excel-Beispielen zum Thema "Bedingung für VBA-Code einfügen"