Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.04.2024 14:18:05
28.04.2024 13:43:14
Anzeige
Archiv - Navigation
1940to1944
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

Kommentar einfügen mit Text und Text direkt zentrieren

Kommentar einfügen mit Text und Text direkt zentrieren
04.08.2023 15:17:37
dieter.bernhardt@gmx.de
Guten Tag an alle ...

in beiliegender Musterdatei, kannn per Buttonklick in Zelle C3 ein Kommentar mit Text eingefügt werden. Das funktionert.
Der Text im Kommentar soll auch zentriert werden und das funktioniert nicht.

Es funktionert nur, wenn ich das 2te Makro aufrufem aber vorher den Kommentar aufrufe, den Kommentarrand aktiviere und dann das 2te Makro separat aufrufe. Das geht.

Wie muss das 1. Makro lauten, damit der Text im Kommentar direkt nach einfügen des Textex auch zentriert wird?

Mit der Bitte um Hilfe, grüßt
Dieter(Drummer)

Testdatei: https://www.herber.de/bbs/user/162179.xlsm

Makro1:
Sub Kommentar_Text_rein_zentriert()

ActiveSheet.Range("C5").AddComment "Nur ein Test für Textzentrierung in Kommentar."

With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlCenter
End With

[A3].Select
End Sub


Makro2:
Sub Text_zentrieren()


With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With

[A3].Select
End Sub



21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Ende gut, alles gut.
04.08.2023 17:28:15
Klexy
So kann man beim Lehren lernen und beim Lernen lehren.
Perfekt.
AW: Kommentar einfügen mit Text und Text direkt zentrieren
04.08.2023 15:38:46
Klexy
Sub Kommentar_Text_rein_zentriert()

Set Dingdong = ActiveSheet.Range("C6").AddComment
Dingdong.Text Text:="Nur ein Test für Textzentrierung in Kommentar."
Dingdong.Visible = True
Dingdong.Shape.Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
Range("A1").Select
End Sub
Kommentar einfügen mit Text und Text direkt zentrieren
04.08.2023 16:04:59
Oberschlumpf
Hi Klexy,

nur als Info und Frage von mir:

Wäre es nicht "sauberer" in der Programmierung vor dem Einsatz von Dingdong eben Dingdong erst mal korrekt zu dimensionieren?
Und eigtl auch "sauberer" wäre es doch, wenn man vor End Sub mit Set Dingdong = Nothing wieder zurücksetzt?
Ach so, und anstelle von With Selection könnte man auch With Dingdong.Shape schreiben - so spart man sich das immer wieder "verteufelte" Select im Code :-)

Klar, dein Code ohne meinen "Schnickschnack" :-) funktioniert auch, aber wenn man einem Anfänger was zeigt, dann vielleicht ohne "Schönheitsfehler" zeigen.
Na ja, das is nur meine Meinung.

Ciao
Thorsten
Anzeige
Kommentar einfügen mit Text und Text direkt zentrieren
04.08.2023 17:20:53
Klexy
Dim hab ich vergessen. Das sollte man tatsächlich machen.
Dim Dingdong As Comment

Dadurch hat Berhard vermutlich die Fehlermeldung bekommen.
Aber With Dingdong.Shape funktioniert nicht. Warum, konnte ich auf die Schnelle nicht herausfinden.
Danke Klexy ...
04.08.2023 17:31:46
dieter.bernhardt@gmx.de
... hatte es schon entsprechend eingefügt.

Der Code von Thorsten klappt jetz prima.

Gruß, Dieter(Drummer)
Kommentar einfügen mit Text und Text direkt zentrieren
04.08.2023 16:26:15
dieter.bernhardt@gmx.de
Hallo Thorsten,

wie ich deine Hinweise im Code ändern könnte, habe ich nicht geschafft. Evtl. kannst du mir da noch helfen, das anzupassen, damit die "select" nicht mehr nötig sind.

Mit der Bitte um Hilfe und
Gruß, Dieter(Drummer)

Mein jetziger Code ist, der auch funktioniert:
'Herber: Klexy 04.08.2023 15:38:46
'Mit Hinweis von: Herber, Oberschlumpf (Thorsten) 04.08.2023 16:04:59

Sub Kommentar_Text_rein_zentriert2()

Dim DingDong As Comment

Set DingDong = ActiveSheet.Range("C6").AddComment
DingDong.Text Text:="Nur ein Test für Textzentrierung in Kommentar."
DingDong.Visible = True
DingDong.Shape.Select

DingDong.Shape.Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With

Set DingDong = Nothing

End Sub

Anzeige
Kommentar einfügen mit Text und Text direkt zentrieren
04.08.2023 16:44:09
Oberschlumpf
Hi Dieter,

versuch es mal hiermit:


Sub Kommentar_Text_rein_zentriert2()

Dim DingDong As Comment

Set DingDong = ActiveSheet.Range("C6").AddComment

With DingDong
.Text Text:="Nur ein Test für Textzentrierung in Kommentar."
.Visible = True
With .Shape.TextFrame
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
End With

Set DingDong = Nothing

End Sub

Hilfts?
Mit dem verschachtelten 2x With sparst du dir 2x DingDong schreiben zu müssen.
Und das TextFrame musste auch ich ergoogeln

Ciao
Thorsten

...ach so, eine Bitte hab ich noch: Schreib bitte nicht einfach nur "es funktioniert nicht", und schreib bitte nicht nur die Fehlermeldung. Wir müssen in beiden Fällen erst mal nachfragen - was genau nicht funktioniert - vor allem aber müssen wir erst mal fragen, WO GENAU kommt es zum Fehler.
Du könntest ja gleich sofort das WO verraten, wenn ETWAS nicht funktioniert...
Anzeige
Es war der .TextFrame !
04.08.2023 18:33:16
Klexy
Hab ich mal gewusst und dann wieder vergessen.
Der .TextFrame war's !!!
Klexy
Ich hatte nur .Text versucht.
Hab ich schon mal gewusst. Werd ich mir jetzt merken (hoffentlich).
Danke Thorsten, geht jetzt prima ...
04.08.2023 17:01:23
dieter.bernhardt@gmx.de
Danke Thorsten für funktionierenden, neuen und kurzen Code und deine Hinweise. Werde mich bessern ...

Hier jetzt dein Code mit einigen eigenen Anpassungen: Alten Kommentar löschen und nach Beendigung ausblenden. Klappt alles prima.

Danke und Gruß,
Dieter(Drummer)

Jetziger Code:
'Herber: Oberschlumpf (Thorsten)04.08.2023 16:44:09
'Kommentar einfügen mit Text und Text direkt zentrieren
'Mit Anpassung von Mx
Sub Kommentar_Text_rein_zentriert()


Dim DingDong As Comment

ActiveSheet.Range("C6").ClearComments 'Alten Kommentar löschen

Set DingDong = ActiveSheet.Range("C6").AddComment

With DingDong
.Text Text:="Nur ein Test für Textzentrierung in Kommentar."
.Visible = True
With .Shape.TextFrame
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
DingDong.Visible = False 'Comment ausblenden

End With
End With

Set DingDong = Nothing

End Sub




Anzeige
Danke Thorsten, geht jetzt prima ...
04.08.2023 18:07:55
Oberschlumpf
Hi reiner,

mir juckte es in den Fingern! :-)
Denn dein neuer Code kann man noch kürzer schreiben.
Hier, versuch mal das hier:


Sub Kommentar_Text_rein_zentriert()

Dim DingDong As Comment

With ActiveSheet.Range("C6") 'ActiveSheet. könntest du auch löschen; Erklärung dazu weiter unten in meiner Antwort
.ClearComments 'Alten Kommentar löschen
Set DingDong = .AddComment
With DingDong
.Text Text:="Nur ein Test für Textzentrierung in Kommentar."
.Visible = True
With .Shape.TextFrame
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
.Visible = False 'Comment ausblenden
End With
End With

Set DingDong = Nothing

End Sub


Du hast mit DingDong.Visible wieder 1x DingDong zu oft geschrieben :-)
Und da du ja schon mit dem Löschen aller Kommentare beginnst, kann man ja auch schon bei Range("C6") mit WITH... beginnen.

Aber alles gut! Dein Code funktioniert ja nun - meiner macht alles nur noch ein bisschen...schöner ,-)

Ach so, das ActiveSheet. könntest du auch komplett weglassen - denn jeder Code, der "nur" mit z Bsp Range(...) beginnt - bezieht sich - immer - auf das, zum Zeitpunkt der Codeausführung, angezeigte Tabellenblatt = ActiveSheet

Ciao
Thorsten
Anzeige
schulligung, ich meinte
04.08.2023 18:10:09
Oberschlumpf
schulligung, ich meinte
04.08.2023 18:11:40
Oberschlumpf
pfff! :-)

Im Betreff sollte eigtl stehen:

schulligung, ich meinte "Hi Dieter" owT

aber das neue Forum lässt mich noch nich, wie ich wollte :-)
Kommentar einfügen mit Text und Text direkt zentrieren
04.08.2023 16:42:18
Piet
Nachtrag - wenn es klappt die beiden Zeilen mit DingDong.Shapes.Select einfach löschen!
Kommentar einfügen mit Text und Text direkt zentrieren
04.08.2023 16:40:59
Piet
Hallo

ersetze in der With Klammer den Text Selection einfach durch DingDong (ohne Shapes). Würde mich freuen wenn es damit klappt.

mfg Piet
Klappt nicht ohne Select.
04.08.2023 17:24:32
Klexy
Bei mir klappt das nicht. Geht nur über Select. Hab aber auf die Schnelle nicht herausgefunden, warum.
Klappt nicht ohne Select.
04.08.2023 17:25:53
Oberschlumpf
hey, schau dir meine Lösung an, da steht der Grund drin, wie es auch ohne Select geht ;-)
Anzeige
Danke für Hinweis Thorsten ...
04.08.2023 16:10:03
dieter.bernhardt@gmx.de
... und Gruß,
Dieter(Drummer)
Habe Fehler Dim Anweisung erledigt und alle funktioniert mit Code von Klexy
04.08.2023 16:07:53
dieter.bernhardt@gmx.de
Habe Fehler korrigiert und Code von Klexy funktioniert: "Dim DingDong As Comment"

Gruß, Dieter(Drummer)
Kommt Fehlerhinweis:
04.08.2023 16:01:38
dieter.bernhardt@gmx.de
Danke Klexy für Rückmeldung.

Es kommt ein Fehlerhinweis bei Aufruf des Makros: ""Fehler beim Kompilieren, Variable nicht definiert".

Bitte nochmal um Hilfe.

Gruß, Dieter(Drummer)
Kommt Fehlerhinweis:
04.08.2023 17:21:34
Klexy
Hab eine Zeile vergessen. Vor Set Dingdong muss:
Dim Dingdong As Comment

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige