Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1776to1780
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

Text in Shape ist unbearbeitbar

Text in Shape ist unbearbeitbar
22.08.2020 09:05:16
Harald
Ich (VBA-Greenhorn) bin heute das 1.Mal hier und hoffe, dass mir jemand helfen kann.
Nachstehend der Code, der leider nicht das gewünschte Ergebnis liefert:
Sub Legende_bearbeitbar_einfügen()
ActiveSheet.Unprotect                     'Das Blatt muss in meiner Anwendung geschützt  _
sein
Let AktiverUser = "hk"
Let KTS = "2020-08-22"
ActiveSheet.Shapes.AddShape(msoShapeRectangularCallout, 100, 100, 136.5, 65.5).Select
Selection.ShapeRange.Name = KTS
Selection.Locked = msoFalse
Selection.Placement = xlMove
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = AktiverUser & ":"
ActiveSheet.Protect
End Sub
Nach meinem Verständnis sollte man den Text in diesem Shape jetzt - trotzdem das Blatt gesperrt ist - bearbeiten können.
Wenn ich den gleichen Prozess nicht per Makro sondern händisch mittels des Excel-Menüs eingebe (und bei den Eigenschaften des Shapes "Objekt sperren" und "Text sperren" deaktiviere), dann funktioniert es ja auch.
Was fehlt in meinem Makro?
"Selection.Locked = msoFalse" habe ich ja gesetzt. Ich habe in den VBA-Tutorials nichts gefunden, was explizit ein "Unlock" der Texteingabe bewirken würde :-(
DANKE im Voraus!
Harald
P.S.: Ein generelles Freigeben der Shapes für dieses Blatt geht leider nicht, weil alle anderen Shapes darauf gesperrt bleiben müssen!

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Text in Shape ist unbearbeitbar
22.08.2020 10:09:05
Hajo_Zi
Hallo Harald,
Du hast das Locked auf das Objekt gesetzt und nicht Tabelle.
Select, Activate usw. ist in VBA zu 99,8% nicht notwendig.
Der Cursor ist kein Hund der überall rumgeführt werden muss.
Hinweise zu select usw. Hajo-Excel.de
Hinweise zu select usw. Online-Excel.de
Hinweise zu select usw. Online-Excel.de
Der Cursor ist kein Hund, der überall rum geführt werden muss.

Anzeige
AW: Text in Shape ist unbearbeitbar
22.08.2020 11:56:34
Harald
DANKE für die stilistischen Hinweise!
Wodurch habe ich das "Locked" auf das Objekt gesetzt?
Das "Locked" wird doch durch ActiveSheet.Protect auf die Tabelle gesetzt.
Durch "Selection.Locked = msoFalse" sollte doch für das Objekt die Sperre aufgehoben sein, oder etwa nicht?
Harald
AW: Text in Shape ist unbearbeitbar
22.08.2020 13:07:36
Hajo_Zi
ActiveSheet.Shapes.AddShape(msoShapeRectangularCallout, 100, 100, 136.5, 65.5).Select
Gruß Hajo
AW: Text in Shape ist unbearbeitbar
22.08.2020 15:20:33
Harald
Auch wenn ich das Makro wie folgt formuliere, ist der Text der Legende nach dem Schützen des Blattes nicht bearbeitbar.
Sub Bearbeitbare_Legende()
ActiveSheet.Unprotect
Set Legende = ActiveSheet.Shapes.AddShape(msoShapeRectangularCallout, 100, 100, 136.5, 65.5) _
With Legende
.Name = "Legende"
.Locked = msoFalse  '... mit und ohne dieser Zeile'
'ist der Text nach dem Schützen des Blattes nicht bearbeitbar!
.Placement = xlMove '... sonst ist die Legende nicht bewegbar
.TextFrame2.TextRange.Characters.Text = "hk:"
End With
Set Legende = Nothing
ActiveSheet.Protect
End Sub
Ein ziemlich verzweifelter Harald
Anzeige
AW: Text in Shape ist unbearbeitbar
22.08.2020 15:31:16
Hajo_Zi
Hallo Harald,
Gut mein Tipp hat Dir nicht gefallen. Du machst Locked immer noch auf das Objekt.
Ich bin dann raus.
Gruß Hajo
AW: Text in Shape ist unbearbeitbar
22.08.2020 19:41:02
Harald
Hallo Hajo,
es mag ja sein, dass ich zu blöd für das Erstellen von Makros bin, aber wenn's so einfach ist, dann frage ich mich, warum du nicht einfach ein in meinem Sinn (sh.u.) funktionierendes Makro hier ins Forum schreibst.
Das, was du bisher geschrieben hast, löst mein Problem nicht!
Sicherheitshalber noch einmal die Anforderung:
Es soll in einem geschützten Blatt von einem User, der sonst nichts in dem Blatt darf, eine Legende eingefügt werden, die vom User bewegt und mit Text befüllt werden soll. Alle anderen Zellen, Shapes, etc. dürfen nicht veränderbar sein.
Vielleicht erbarmst du dich ja noch einmal?
lg harald
Anzeige
AW: Text in Shape ist unbearbeitbar
23.08.2020 10:03:34
Harald
Danke für deine bisherige Mühe!
... auch wenn ich deine Art zu "helfen" (einem Anfänger wie mir gegenüber) als ziemlich überheblich empfunden habe.
Aber einmal abgesehen davon, dass deine Rückmeldungen mein Problem nicht gelöst haben, haben sie mich angespornt selbst nochmals (v.a. auf englischen Seiten) zu recherchieren. Dabei bin ich zum Glück fündig geworden. Mein Problem ist damit also gelöst.
Nachstehend daher der vielleicht stilistisch nicht schöne, dafür aber funktionierende Code:
Sub Bearbeitbare_Legende()
ActiveSheet.Unprotect
Set Legende = ActiveSheet.Shapes.AddShape(msoShapeRectangularCallout, 100, 100, 136.5, 65.5) _
With Legende
.Locked = msoFalse
.DrawingObject.LockedText = False
.Name = "Legende"
.Placement = xlMove
.TextFrame2.TextRange.Characters.Text = "hk:"
End With
Set Legende = Nothing
ActiveSheet.Protect
End Sub
Die Zauberformel lautet:
.DrawingObject.LockedText = False
lg harald
Anzeige
AW: Text in Shape ist unbearbeitbar
22.08.2020 10:34:08
Luschi
Hallo Harald,
bei mir (Excel 2019) funktioniert Dein Code, allerdings würde ich ihn so schreiben:

Dim AktiverUser As String, KTS As String
Sub Legende_bearbeitbar_einf?gen()
Dim shp As Object
ActiveSheet.Unprotect      'Das Blatt muss in meiner Anwendung gesch?tzt sein
Let AktiverUser = "hk"
Let KTS = "2020-08-22"
Set shp = ActiveSheet.Shapes.AddShape(msoShapeRectangularCallout, 100, 100, 136.5, 65.5)
''auskommentierte Zeilen sind nicht erforderlich
With shp
''.Select
.Name = KTS
''.Locked = msoFalse
''.Placement = xlMove
.TextFrame2.TextRange.Characters.Text = AktiverUser & ":"
End With
ActiveSheet.Protect
Set shp = Nothing
End Sub
Gruß von Luschi
aus klein-Paris
PS: die Variablenzuweisung per 'Let' hatte ich schon jahrelang nicht mehr gesehen und schon fast vergessen. So geht es auch die Autoren des Buches: "Microsoft Excel 2019 - VBA und Makros" von Bill Jelen und Tracy Syrstad. Dort wird 'Let' nur noch im Zusammenhang mit 'Property' erwähnt und ist da auch erforderlich; statt
Let AktiverUser = "hk"
schreibt man heute
AktiverUser = "hk"
Anzeige
AW: Text in Shape ist unbearbeitbar
22.08.2020 11:47:33
Harald
DANKE für die stilistischen Hinweise!
Ich werde diese in Zukunft (versuchen zu) berücksichtigen.
Wie ich ja geschrieben habe, bin ich ein Anfänger und "lerne" über den Makro-Recorder.
Leider erfüllte das Ergebnis deines Codes nicht meine Anforderungen.
Denn ich kann den Text in der Legende im geschützten Blatt nicht bearbeiten :-(
Liebe Grüße
Harald
AW: Text in Shape ist unbearbeitbar
22.08.2020 11:58:09
Harald
Habe irrtümlich mein Problem als "gelöst" gekennzeichnet :-(

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige