PDA

Vollständige Version anzeigen : Bei markierten Freihandform die ShapeNode-Bearbeitung per Button aktivieren


axtmaestro
30.03.2012, 21:39
Hallo Zusammen

Kennt jemand von euch den Befehl, wie man bei einer markierten Freihandform, per Button die Shape-Eigenschaft "Punkte Bearbeiten" auslöst?

Gruss,
Robert

ransi
31.03.2012, 08:03
Hallo Robert

Versuch mal so:
Application.CommandBars.FindControl(ID:=206).Execute

ransi

axtmaestro
31.03.2012, 08:56
Hallo Ransi

Danke für den Code. ;)

Habe es folgendermassen in den CommandButton eingebaut:

Private Sub CommandButton1_Click()
If Tabelle1.Shapes.Select Then
Selection.ShapeRange.Application.CommandBars.FindControl(ID:=206).Execute
End If
End Sub

Leider funktioniert es nich. :(

Hast du eine Idee, was ich hier falsch mache?

Gruss,
Robert

ransi
31.03.2012, 09:19
Hallo Robert

Hast du eine Idee, was ich hier falsch mache?
Die Synthax ist ziemlich quer ;-)

Versuch mal so:

<nobr><span style="font-family:Courier New,Arial; font-size:9pt ;" ><span style="color:#000080"; >Option</span> <span style="color:#000080"; >Explicit</span><br /><br /><b><span style="color:#000080"; >Private</span> <span style="color:#000080"; >Sub</span> CommandButton1_Click()</b><br /><span style="color:#000080"; >Dim</span> mySelection <span style="color:#000080"; >As</span> <span style="color:#000080"; >Object</span><br /><span style="color:#000080"; >Set</span> mySelection = Selection<br /><span style="color:#000080"; >If</span> <span style="color:#000080"; >Not</span> TypeOf mySelection <span style="color:#000080"; >Is</span> Range <span style="color:#000080"; >Then</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >If</span> mySelection.ShapeRange.AutoShapeType = msoShapeNotPrimitive <span style="color:#000080"; >Then</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MsgBox mySelection.Name<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Application.CommandBars.FindControl(ID:=206).Execute<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >End</span> <span style="color:#000080"; >If</span><br /><span style="color:#000080"; >End</span> <span style="color:#000080"; >If</span><br /><b><span style="color:#000080"; >End</span> <span style="color:#000080"; >Sub</span></b><br /></span></nobr>

ransi

axtmaestro
31.03.2012, 09:25
hallo ransi

danke!

habe es eingebaut, leider ohne erfolg.:(

gruss,
robert

ransi
31.03.2012, 09:35
Hallo

Der CommandButton ist schuld.
Der nimmt beim Clicken die Selection auf sich.
Setz mal TakeFocusOnClick aus False.

Welche Excelversion hast du ?
Ab 2003 funktioniert das mit den CommandBars so nicht mehr.

ransi

axtmaestro
31.03.2012, 09:39
hallo

ich habe excel 2003.

das mit den "TakeFocusOnClick aus False" habe ich nicht verstanden. sorry bin noch ein anfänger.

kannst du es mir erklären oder in meiner beispieldatei hochladen?

gruss,
robert

axtmaestro
31.03.2012, 09:45
hallo

habe es gerade selber gelöst.

ich habe den code in ein modul geladen und von dort aus funktioniert es.

frage: gibt es eine application mit der man "Punkt hinzufügen" und "Punkt löschen" ausführen kann?

ich würde diese auch gerne in schaltflächen einbauen.

gruss,
robert

ransi
31.03.2012, 09:51
HAllo Robert

Das stellst du da ein wo du auch den Text oder die Hintergrundfarbe des CommandButtons einstellst.

ransi

axtmaestro
31.03.2012, 10:18
hallo ransi

kann man "Punkt hinzufügen" und "Punkt löschen" nach dem man den Button "Punkte bearbeiten" angeklickt hat, über Buttons aktivieren.

Kennst du den Code dafür?

Gruss,
Robert

ransi
31.03.2012, 11:37
HAllo Robert

Lass dies mal laufen und schau ins DirektFenster.
<nobr><span style="font-family:Courier New,Arial; font-size:9pt ;" ><b><span style="color:#000080"; >Public</span> <span style="color:#000080"; >Sub</span> machs()</b><br /><span style="color:#000080"; >Dim</span> c <span style="color:#000080"; >As</span> CommandBarControl<br /><span style="color:#000080"; >For</span> Each c In Application.CommandBars(<span style="color:#800000"; >"Curve Node"</span>).Controls<br />&nbsp;&nbsp;&nbsp;&nbsp;Debug.Print c.Caption; <span style="color:#800000"; >"--"</span>; c.ID<br /><span style="color:#000080"; >Next</span><br /><b><span style="color:#000080"; >End</span> <span style="color:#000080"; >Sub</span></b><br /></span></nobr>

Der listet dir die fraglichen ID's.
Hilft das erstmalö weiter ?
ransi

axtmaestro
31.03.2012, 11:49
Danke für deinen Vorschlag.

Habe es eingebaut. Klappt aber nicht so wirklich.

(siehe Anhang)

Gruss,
Robert

axtmaestro
02.04.2012, 09:33
Hallo Ransi

Habe es mit:

Private Sub SpinButton1_Change()
SpinButton1.Min = -90
SpinButton1.Max = 90
Me.TextBox1 = SpinButton1.Value
End Sub

Private Sub textbox1_Change()
Dim mySelection As Object
Set mySelection = Selection
If Me.TextBox1 = "" Then
Me.TextBox1 = 0
End If
If Not TypeOf mySelection Is Range Then
mySelection.ShapeRange.Rotation = TextBox1
End If
End Sub

hinbekommen, dass sich das markierte Shape dreht.

Leider nimmt er mir nach jeder Drehung die Markierung wieder raus. :rolleyes:

Gibt es hier eine Möglichkeit, dass mir die Markierung erhalten bleibt, so dass ich den Shape weiter drehen kann?

Mit "mySelection.ShapeRange.Select" funktioniert es leider nicht.

Hast du eine Idee???

Gruss,
Robert