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

nochmal Shapes mit VBA Steuern

nochmal Shapes mit VBA Steuern
JensF
Hallo Leute,
es gibt ja dieses Kurven-Shape mit dem gewaehlte Punkte ueber eine Bézier curve verbunden werden.
Macht man das manuell, scheint es kein Limit zu geben, wieviele Punkte das sein koennen. Macht man es ueber VBA werden nur 7 Punkte akzeptiert, ab 8 gibt es einen Laufzeitfehler.
Hat jemand eine Idee warum und wie man das beheben kann?
Viele Gruesse
Jens
Sub text()
Dim sh As Worksheet
Dim myCurve As Shape
Dim pts(1 To 7, 1 To 2) As Single
Dim x As Long
Set sh = ActiveSheet
For x = 1 To 7' BEI 8 KRACHTS!!!
pts(x, 1) = Range("A" & x).Value
pts(x, 2) = Range("B" & x).Value
Next
Set myCurve = sh.Shapes.AddCurve(SafeArrayOfPoints:=pts)
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
? liegt's am Dim pts...? owT
02.07.2010 17:00:31
robert
8 ist nicht 3n+1 !! Aber 13 schon....
02.07.2010 17:25:25
NoNet
Hallo Jens,
ein Blick in die Onlinehilfe verrät das Geheimnis :
Sie, dass immer 3n + 1 Punkte angegeben werden müssen, wobei n die Anzahl der Kurvensegmente ist.
D.h. es sind folgende Werte möglich :
4 (=3*1+1), 7 (=3*2+1), 10 (=3*3+1), 13 (=3*4+1), etc.
Gruß, NoNet
gegen    2:1

AW: 8 ist nicht 3n+1 !! Aber 13 schon....
02.07.2010 23:05:47
JensF
Hi Nonet,
ja klar, wer will schon 8 Datensätze irgendwo einfügen? IT macht ja vieles möglich aber irgendwo sind auch mal Grenzen. ;-)
Und nochmal danke für den Tip mit dem Makrorekorder in XL2010. Dort werden diese SAchen wirklich wieder aufgezeichnet. Dabei hat sich offenbart, dass die bessere Alternative zu .addCurve diese ist:
Dim sha As Object
Set sha = ActiveSheet.Shapes.BuildFreeform(msoEditingAuto, 100, 100)
sha.AddNodes msoSegmentCurve, msoEditingAuto, 200, 200
sha.AddNodes msoSegmentCurve, msoEditingAuto, 300, 100
sha.ConvertToShape
So kann man gar 9 oder 12 Datensätze einfügen.
Viele Grüße
Jens
:_)
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige