Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: adshape mit Variablen aus Zellbezug

adshape mit Variablen aus Zellbezug
15.01.2023 11:22:59
SSc
Liebe Excel-VBA-Freunde,
habe mir ein schönes Makro geschrieben zur automatisierten Erstellung von Grafikelementen, welche soweit super funktioniert:
Nun möchte ich gern auch die Art der Grafik mit einer Variablen aus einer Zelle (Spalte V) nutzen:
Für msoShapeRectangle also auch einen Zellbezug einbauen, woher er diesen nehmen soll, kann mir jmd helfen?
Ich danke Euch!!

Sub Test()
' Makro5 Makro
Dim i As Long
On Error Resume Next
ActiveSheet.Shapes.SelectAll
Selection.Delete
Sheets("Makro").Select
ActiveSheet.Shapes.Range(Array("Makro_Test")).Select
Selection.Copy
Sheets("Entwurf").Select
Range("I1").Select
ActiveSheet.Paste
For i = 2 To Range("I1")
ActiveSheet.Shapes.AddShape(msoShapeRectangle, Val(Range("S" & i).Value), Val(Range("T" & i).Value), _
Val(Range("Q" & i).Value), Val(Range("R" & i).Value)). _
Select
Selection.ShapeRange.Name = Range("I" & i)
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = Range("I" & i) & Chr(13) & Range("J" & i) & " x " & Range("K" & i)
ActiveSheet.Shapes.Range(Array(Range("I" & i))).Select
Range("I2").Select
Next i
End Sub
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: adshape mit Variablen aus Zellbezug
15.01.2023 12:04:36
ralf_b
du hast die Antwort bereits in deinem Code. msoShapeRectangle ist nur ein Name(Variable oder Konstante) für eine 1 in diesem Fall.
AW: adshape mit Variablen aus Zellbezug
15.01.2023 15:54:23
SSc
Hallo Ralf, Danke für Deine Antwort!
Ld sind meine VBA-Kenntnisse eher bescheiden, was meinst Du damit?
Kannst D mir beispielhaft sagen, durch was genau es zu ersetzen wäre?
Ziel ist ja die Zelle "V" & i aber eben wie verpackt?
Vielen Dank!
Anzeige
AW: adshape mit Variablen aus Zellbezug
15.01.2023 17:32:00
ralf_b
habe mir ein schönes Makro geschrieben
das habe ich gelesen und abgeleitet das du z.b. Range("S" & i).Value) verstehst.
Hier wird ein Wert aus Spalte S in der Zeile i geholt. Entsprechend kannst du das aus deiner Spalte V machen und das msoShapeRectangle damit ersetzen.
Anzeige
AW: adshape mit Variablen aus Zellbezug
15.01.2023 17:52:34
SSc
Hallo Ralf, Danke für Deine Geduld!
Das hatte ich natürlich (ohne es vollends zu verstehen) versucht, klappt so (wie angehangen) leider nicht :'(
Spalte V enthält 9x msoShapeRectangle und 1x msoShapeSnip1Rectangle ...
Er zeichnet nun aber gar keine Elemente mehr :'(
For i = 2 To Range("I1")
ActiveSheet.Shapes.AddShape((Range("V" & i).Value), Val(Range("S" & i).Value), Val(Range("T" & i).Value), _
Val(Range("Q" & i).Value), Val(Range("R" & i).Value)). _
Select
Selection.ShapeRange.Name = Range("I" & i)
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = Range("I" & i) & Chr(13) & Range("J" & i) & " x " & Range("K" & i)
ActiveSheet.Shapes.Range(Array(Range("I" & i))).Select
Range("I2").Select
Next i
VD & VG
Anzeige
AW: adshape mit Variablen aus Zellbezug
15.01.2023 17:57:00
SSc
Und ja, gebe zu 'mehr' mit Recorder und Recherche und copy+paste das Makro erstellt zu haben :/
VG
AW: adshape mit Variablen aus Zellbezug
15.01.2023 18:33:58
ralf_b
was passiert denn wenn du nur eine 1 reinschreibst, statt dem Range()
AW: adshape mit Variablen aus Zellbezug
15.01.2023 21:46:18
SSc
Das wird mir jetzt echt peinlich, hab keine Ahnung, wo oder für welche Range ich statt Rang() eine 1 reinschreiben soll :'(
Was ich trotzdem probiert habe, endet mit Kompilierungsfehlern.
Ausgangspunkt war und funktionierte super:
ActiveSheet.Shapes.AddShape(msoShapeRectangle, Val(Range("S" & i).Value), Val(Range("T" & i).Value), _
Val(Range("Q" & i).Value), Val(Range("R" & i).Value)). _
Select
Probiert habe ich:
ActiveSheet.Shapes.AddShape((Range("V" & i).Value), Val(Range("S" & i).Value), Val(Range("T" & i).Value), _
Val(Range("Q" & i).Value), Val(Range("R" & i).Value)). _
Select
Macht er nix und auch keine Fehlermeldung ...
Könntest Du bitte die ganze Zeile einmal darstellen, welche oder was Du genau meinst?
Sorry & VD!
Anzeige
AW: adshape mit Variablen aus Zellbezug
15.01.2023 21:55:23
ralf_b
https://learn.microsoft.com/de-de/office/vba/api/excel.shapes.addshape
dort ist die Parameterliste einsehbar, und der erste Parameter ist ein Wert aus der Liste msoautoshapetype
https://learn.microsoft.com/de-de/office/vba/api/office.msoautoshapetype
dort sind die nutzbaren Konstantennamen mit ihren eigentlichen Werten verzeichnet.
du soltest anstatt msoShaperectangle eine 1 in den Code schreiben. Das sollte dann immer noch funktionieren,
Wenn du dann die 1 durch Range("V"&i) ersetzt, dann wird der Wert für den Shapetyp(die Zahl) aus Spalte V genommen. Es wäre ganz toll wenn dort auch ein Wert vorhanden wäre.
Anzeige
AW: adshape mit Variablen aus Zellbezug
15.01.2023 22:19:20
SSc
Hallo Ralf, Vielen Dank!
- für di Links zu den Bibliotheken und
- für den Hinweis mit den Code-Nrn
(das hatte ich nicht verstanden, das die Elemente auch Nrn haben, hatte es mit den Namen versucht, was eben nicht klappte)
Habe die richten Code-Nrn gefunden und jetzt funktioniert es damit;
Vielen, Vielen Dank!!
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige