Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1748to1752
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

VBA Linie anzeigen und ausblenden

VBA Linie anzeigen und ausblenden
30.03.2020 20:08:15
Simon
Hallo,
ich benötige Hilfe bei dem Ein & Ausblenden einer Linie.
Und zwar möchte ich eine gestrichelte grüne Linie von Mitte unterer Rand Zelle(x,y) bis Mitte oberer Rand Zelle(c,v) anzeigen lassen. Das ganze soll mit eine ToggleButton an und ausblendbar sein.
Die Variablen x,y,c,v können über einen Bereich (B10:BI24) variieren.
Meine erste Lösung hat eine Linie erstellt wie ich es wollte und bei togglebutton=false habe ich alle shapes löschen lassen - was mir aber leider auch meine Kommentarfelder in dem Bereich gelöscht hatte was ich wiederum nicht möchte.
Nach endlosen Versuchen sieht mein Ansatz nun so aus aber es klappt immer noch nicht. Wenn ihr eine Idee für mich habt würde mich das echt freuen.
Dim x,y,c,v As integer
Dim shp As Shape
If Togglebutton = True Then
Set shp = ActiveSheet.Shapes.AddLine(x,y,c,v)
shp.Name = "today"
shp.Fill.ForeColor.SchemeColor = 10 (bringt Fehler)
With shp
.Visible = True
.DashStyle = msoLineDash (bringt Fehler)
.ForeColor.RGB = RGB(0, 176, 80) (bringt Fehler)
End With
Else
ActiveSheet.Shapes("today").Delete (ab und zu Fehler)
End If
End Sub

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Linie anzeigen und ausblenden
30.03.2020 21:14:36
Rolf
Hallo Simon
Du hast nicht erklärt, wodurch die Variablen variieren können.
Ich hab mal angenommen, durch das Selektieren von 2 Zellen.
Teste mal. (der Code gehört in die Tabelle mit dem Togglebutton)
Private Sub ToggleButton1_Click()
Dim x As Integer, y As Integer, c As Integer, v As Integer
Dim Rng As Range
ToggleButton1.Caption = "Aus"
On Error Resume Next
ActiveSheet.Shapes("today").Delete
On Error GoTo 0
If ToggleButton1 = True Then
ToggleButton1.Caption = "Ein"
If Selection.Count  2 Then Exit Sub
For Each Rng In Selection
If x = 0 Then x = Rng.Left + Rng.Width / 2
If y = 0 Then y = Rng.Top + Rng.Height
c = Rng.Left + Rng.Width / 2
v = Rng.Top
Next
With ActiveSheet.Shapes.AddConnector(msoConnectorStraight, x, y, c, v)
With .Line
.Visible = msoTrue
.ForeColor.RGB = RGB(0, 176, 80)
.Transparency = 0
.Visible = msoTrue
.DashStyle = msoLineLongDash
.Weight = 1
End With
.Name = "today"
End With
End If
End Sub
Gruß Rolf
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige