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

GRAFIK.Shapes Aktualisieren statt Delete?

GRAFIK.Shapes Aktualisieren statt Delete?
07.03.2018 22:02:42
Chris
Hallo ihr,
zu späterer Stunde nochmal ich mit einer Frage:
Hat VBA einen Befehl parat der mir beim Ausführen eines Makros ermöglicht, dass die von mir geplante Grafik "nur" aktualisiert statt der Inhalt vom Tabellenblatt gelöscht und neu gezeichnet wird?
Hintergrund ist der, dass ich per "Hand" Textfelder und Linien in dem Blatt habe, welche mit Ausführen des Makros aktuell jedes mal gelöscht werden und es ist nervig diese immer wieder manuell einzufügen. Oder habt ihr eine andere Idee, wie ich das lösen kann? Das auch noch per VBA machen fällt leider raus, da sehr Variabel. Außerdem möchte ich ja auch, dass sobald sich was an den Daten aktualisiert, dass manuell eingefügte Muster trotzdem drin bleibt und die Grafik sich nur "drüber" legt.
Schönen Abend :)

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: am Namen unterscheidbar
08.03.2018 08:32:28
Fennek
Hallo Chris,
gibt es z.B. mit dem Names des Shapes eindueitge Kriterien, welche gelöscht werden sollen und welche nicht?
mfg
AW: am Namen unterscheidbar
08.03.2018 12:54:11
Chris
Danke für die Antwor Fennek. :)
Die Shapes die gelöscht werden sollen sehen im VBA-Code wie folgt aus:
With GRAFIK.Shapes.AddShape(msoShapeRectangle _
, 95 + ((i + j + zähler) * pixeljump), 39, 2, Length * 50)
.Fill.ForeColor.RGB = RGB(251, 191, 92)
.Line.Visible = msoFalse
End With
With GRAFIK.Shapes.AddShape(msoShapeOval _
, 93.5 + ((i + j + zähler) * pixeljump), 37, 5, 5)
.Fill.ForeColor.RGB = RGB(217, 44, 85)
.Line.Visible = msoFalse
End With
With GRAFIK.Shapes.AddShape(msoShapeOval _
, 91 + ((i + j + zähler) * pixeljump), (Length + 0.7) * 50, 10, 10)
.Fill.ForeColor.RGB = RGB(29, 54, 63)
.Line.Visible = msoFalse
End With
NICHT gelöscht werden sollen 7 Textfelder und je 7 Linien.
Hilft das?
Anzeige
AW: am Namen unterscheidbar
08.03.2018 15:26:46
Chris
Ich könnte die beschriebenen "manuellen" Textfelder und Linien auch gruppieren und ihnen einen Namen zuweisen - bspw. "Grafik_1". Würde es dann über den Umweg geht
GRAFIK.Shapes.delete AUSSER "Grafik_1"? So in etwa? Mir fehlt hier leider das Fachwissen um nen passenden Code/Befehl zu bauen.
AW: kleine Beispieldatei?
08.03.2018 15:31:15
Fennek
ist es möglich eine reduzierte Datei (max. 300 kb) hochzuladen?
Ohne VBA-Kenntnisse wird es schwierig.
AW: kleine Beispieldatei?
08.03.2018 15:38:24
Chris
Ohne ist vllt. übertrieben. Dennoch probiere ich gerne rum und habe es jetzt gelöst bekommen. Und zwar so:
For Each Object In GRAFIK.DrawingObjects
If Object.Name "Grafik_A" Then
Object.Delete
End If
Next Object
On Error GoTo 0
Habe den nicht zu löschenden Part als "Grafik_A" betitelt.
Vielen Dank für den Denkanstoß mit der Unterscheidung im Namen, ohne das hätte ich wohl noch lange gerätselt. :)
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige