Hallo zusammen,
mit diesem Code wird in einer Tabelle, nach Doppelklick einer Zelle, ein transparenter, blauer Kreis als Markierung erzeugt.
Ich möchte, dass in einem definierten Bereich der Tabelle die Kreise z.B. grün sind - bei mir wäre das der Bereich ("K9":"O80").
Wie kann ich das realisieren? Ich dachte an eine If-Then-Else Bedingung?!
Hier der Code, der die Kreismarkierung in jeder Zelle erzeugt, die doppelt geklickt wird:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim shp As Shape
Dim iAbst As Integer
iAbst = 1 'Abstand zum seitl. Zellrand - bei Bedarf ändern
Cancel = True
'***Kreis löschen, wenn vorhandenen
For Each shp In ActiveSheet.Shapes
If shp.TopLeftCell.Address = Target.Address Then
shp.Delete
Exit Sub
End If
Next
Application.ScreenUpdating = False
'***Kreis einfügen
ActiveSheet.Shapes.AddShape(msoShapeOval, 0, 0, 20, 20).Select
'***Kreis in aktive Zelle verschieben und anpassen
With Selection.ShapeRange
.Width = Target.Width - 2 * iAbst
.Height = .Width
.Top = Target.Top + (Target.Height - .Height) / 2
.Left = Target.Left + iAbst
.Fill.Visible = msoFalse
.Line.ForeColor.RGB = RGB(0, 176, 240) 'Hellblau
.Line.Weight = 2.25
End With
Target.Select
End Sub
Vielen Dank für eure Unterstützung!
mit diesem Code wird in einer Tabelle, nach Doppelklick einer Zelle, ein transparenter, blauer Kreis als Markierung erzeugt.
Ich möchte, dass in einem definierten Bereich der Tabelle die Kreise z.B. grün sind - bei mir wäre das der Bereich ("K9":"O80").
Wie kann ich das realisieren? Ich dachte an eine If-Then-Else Bedingung?!
Hier der Code, der die Kreismarkierung in jeder Zelle erzeugt, die doppelt geklickt wird:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim shp As Shape
Dim iAbst As Integer
iAbst = 1 'Abstand zum seitl. Zellrand - bei Bedarf ändern
Cancel = True
'***Kreis löschen, wenn vorhandenen
For Each shp In ActiveSheet.Shapes
If shp.TopLeftCell.Address = Target.Address Then
shp.Delete
Exit Sub
End If
Next
Application.ScreenUpdating = False
'***Kreis einfügen
ActiveSheet.Shapes.AddShape(msoShapeOval, 0, 0, 20, 20).Select
'***Kreis in aktive Zelle verschieben und anpassen
With Selection.ShapeRange
.Width = Target.Width - 2 * iAbst
.Height = .Width
.Top = Target.Top + (Target.Height - .Height) / 2
.Left = Target.Left + iAbst
.Fill.Visible = msoFalse
.Line.ForeColor.RGB = RGB(0, 176, 240) 'Hellblau
.Line.Weight = 2.25
End With
Target.Select
End Sub
Vielen Dank für eure Unterstützung!