Textbox aktualisieren nach einem Ereignis

Be19

Grünschnabel
Hallo,

Ich habe eine Textbox und muss nach jedem Verschieben der Textbox den Inhalt neu berechnen (aktuelle Position auf dem Worksheet). Gibt es ein Ereignis wie onTextbox.move? oder onTextbox.select?
Bis jetzt habe ich keins gefunden, aber vielleicht habt ihr noch andere Ideen das zu lösen?
 

Be19

Grünschnabel
Danke für die Antwort! Nach allem, was ich bis jetzt rausgefunden habe, wäre das genau das richtige Ereignis, aber ich komm noch nicht damit klar :(
Bis jetzt habe ich es so versucht:

Sub label1_BeforeDragOver _
(ByVal Cancel As MSForms.ReturnBoolean, _
ByVal Data As DataObject, _
ByVal X As Single, ByVal Y As Single, _
ByVal DragState As fmDragState, _
ByVal Effect As MSForms.ReturnEffect, _
ByVal Shift As fmShiftState)

MsgBox "wurde verschoben"

End Sub

Das funktioniert bis jetzt noch nicht, ich weiß aber ehrlich gesagt auch nicht, was die ganzen Variablen bedeuten
 

tombe

Erfahrenes Mitglied
Da du schreibst "...aktuelle Position auf dem Worksheet..." gehe ich davon aus das du mit Exel arbeitest.

Ich scheitere damit bereits am Versuch ein Steuerelement zu verschieben. Kann es sein das dies in Excel gar nicht möglich ist?
 

Be19

Grünschnabel
Ja, ich arbeite in Excel.
Aber ich erstelle eine Textbox mit dem Namen Label1, das ist ein bischen dumm.

ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 50, 50, 50, 50).Select
Selection.name = Label1

Die Hilfe kennt die Funktion eigentlich auch, ich bekomme nur immer die Fehlermeldung, dass ich zu wenig Variablen angegeben habe oder Ich die Textbox gar nicht erst erstellen kann, weil sie sofort mit dem Ereignis BeforeDragOver in verbindung gebracht wird...
 
Zuletzt bearbeitet:

tombe

Erfahrenes Mitglied
Der Name der Textbox spielt weniger eine Rolle.

In Excel ist es wohl nicht möglich die Position eines Steuerelements zur Laufzeit durch Drag & Drop zu verändern.
Wenn du bei den Eigenschaften die DragBehavior-Eigenschaft auf 1 gestellt hast, dann kannst du den im Textfeld enthaltenen Text per Darg & Drop in die Excel Tabelle ziehen, andernfalls kannst du den Text nur markieren.

Das BeforeDragOver-Ereignis wird ausgelöst wenn du den Text aus dem Textfeld ziehst, das Textfeld selber lässt sich nicht verschieben.

Beschreib doch mal genauer was du eigentlich machen willst. Vielleicht findet sich eine andere Lösung für dein Problem.
 

Be19

Grünschnabel
Also, ich habe eine Textbox. Das ist eigentlich nur ein Rechteck mit Text, das sich in einem Koordinatensystem befindet. In der Textbox stehen die jeweiligen Koordinaten als Pixelangaben.
Wenn der Benutzer jetzt die Textbox verschiebt, sollen sich die Koordinatenangaben in der Textbox automatisch ändern, ohne das eine Prozedur extra aufgerufen wird. Dafür habe ich das Ereignis gesucht.

Ich bin dankbar für jede Idee :)

Ein anderer Versuch war es, einen Timer zu benutzen, der das Blatt regelmäßig updatet, aber das wäre wahrscheinlich viel Rechenaufwand
 
Zuletzt bearbeitet:

tombe

Erfahrenes Mitglied
Wenn der Benutzer jetzt die Textbox verschiebt, sollen sich die Koordinatenangaben in der Textbox automatisch ändern, ohne das eine Prozedur extra aufgerufen wird.

Ich frag nochmal. Kannst du die Textbox bei dir in der Tabelle zur laufzeit verschieben**** Ich habe hier Excel 2000 und hier ist die nicht möglich. Man kann zur Entwurfszeit die Steuerelemente da hin platzieren wo man sie haben möchte, sonst aber nicht.
Per Makro habe ich es nicht versucht, damit sollte es aber ohne Probleme möglich sein.

Erkläre mir bitte wie du es anstellst das du das Textfeld verschieben kannst. Dann können wir weitermachen.
 

Be19

Grünschnabel
Ich markiere die Textbox am Rand, sodass der Curser nicht im Feld ist. Dann kann man sie verschieben. Aber nur, wenn sie mit ...activesheets.shapes.addTextbox() erstellt wurde. Wenn ich eine Form aus Excel verwedende funktioniert es nicht. Das sind glaub ich unterschiedliche Objekte.
Ich verwende Excel 2003, hab leider keine Ahnung ob das in 2000 auch so ist
 
Zuletzt bearbeitet:

tombe

Erfahrenes Mitglied
Ok, jetzt komm ich mit. Das ist ein Textfeld aus der Zeichnen-Symbolleiste und keines von den Steuerelementen, das kann verschoben werden.

Allerdings gibt es dafür keine Ereignisse. Du müsstest die neuen Koordinaten dann reinschreiben wenn irgendwas anderes in Excel selber passiert.
Wenn du nach dem Verschieben z.B. irgendwo in die Tabelle klickst, dann wird das Worksheet_SelectionChange-Ereignis ausgelöst. Dort könntest du die Anweisung für das Ändern der Koordinaten reinschreiben.
 

Neue Beiträge