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

Zu einem Kommentar / Notiz die zugehörige Zelle ermitteln

Zu einem Kommentar / Notiz die zugehörige Zelle ermitteln
26.02.2024 15:45:35
RWillie
Hallo,

ich habe eine große Tabelle mit vielen Kommentaren (Notizen), wo immer wieder Zeilen ein- und ausgeblendet werden. Das zerhaut durchaus häufig und lästig und mir nur halb verständlich die zu den Zellen gehörende relative Position und die Größe der Kommentare.

Meine Idee ist, die Position der Kommentare über Top/Left - Eigenschaft an den respektiven Top/Left-Werten der Zelle, an die die Kommentare geknüpft sind, zu orientieren und mit einem leichten festen Versatz nach rechts-oben per VBA zu setzen.

Mein Problem ist, ich habe bis jetzt nicht rausgefunden, wie ich die mit einem Kommentar verknüpfte Zelle, bestimmen kann.

Plan A: Ich hatte gedacht, dass es vom Kommentar-Objekt, das ich über

For Each Objekt In ActiveSheet.Comments
oder
For Each Objekt In ActiveSheet.Shapes
If Objekt.Type = msoComment Then

abklappern kann, eine direkte Verbindung zur zugehörigen Zelle gibt, sowas wie Parent oder etwas anderes. Aber ich habe da nichts gefunden :-(

Wisst ihr, ob es da eine Methode/Eigenschaft gibt?

Plan B wäre alle Zellen abzuklappern und zu testen, ob diese einen Kommentar trägt, wenn ja habe ich dann auch die Zelle. Aber das wäre ggü. Plan A bei weitem nicht so elegant und wenig performant.

Nun hoffe ich auf Euch!
AW: Zu einem Kommentar / Notiz die zugehörige Zelle ermitteln
26.02.2024 16:29:48
Uduuh
Hallo,
bei mir funktioniert
Sub aa()

Dim oCMT As Comment
For Each oCMT In ActiveSheet.Comments
MsgBox oCMT.Parent.Address
Next
End Sub

einwandfrei.

Gruß aus'm Pott
Udo
AW: Zu einem Kommentar / Notiz die zugehörige Zelle ermitteln
26.02.2024 16:54:49
RWillie
Hallo Uduuh,

super das passt!

die Eigenschaft "address" hatte ich im Lokalen- oder Überwachungsfenster nicht gesehen ...


Allerdings komme ich bei der "anderen" Schleife, die zu einem Kommentar führt nicht weiter:
> For Each Objekt In ActiveSheet.Shapes
> If Objekt.Type = msoComment Then

dort funktioniert
> Debug.Print Objekt.Parent.[Parent].Address
leider nicht.

Da scheint es einen Unterschied zwischen einem
> Comment- bzw. Comment/Shape-Objekt
und einem
> Object/Shape-Objekt zu geben ...

Falls dazu noch jemand klärende Worte findet, gerne!

Ansonsten habe ich eine Lösung und bin's zufrieden.

Herzlichen Dank an das Forum!


BTW, leidet noch jemand unter verzockten Kommentar-Positionen und -Größen??
Anzeige
AW: Zu einem Kommentar / Notiz die zugehörige Zelle ermitteln
26.02.2024 17:01:00
Oberschlumpf
Hi,

lass doch mal [Parent] und einen der beiden Punkte weg.

Ciao
Thorsten
AW: Zu einem Kommentar / Notiz die zugehörige Zelle ermitteln
26.02.2024 17:08:50
RePeter
Zur Frage, ob noch jemand "leidet": Ja, ich litt. Für meine Bedürfnisse half dann:

Sub Alle_Notizen_bzw_Kommentare_ausrichten()
Dim pComment As Comment
For Each pComment In Application.ActiveSheet.Comments
pComment.Shape.Top = pComment.Parent.Top + 5
pComment.Shape.Left = pComment.Parent.Offset(0, 1).Left + 5
Next
End Sub

sowie

Sub Comment_AutoFit()
' Formatiert alle Kommentare auf automatische Größe
Dim Kommentar As Range
For Each Kommentar In ActiveSheet.Cells.SpecialCells(xlCellTypeComments)
Kommentar.Comment.Shape.TextFrame.AutoSize = True
'ggf. die nächsten beiden Zeilen deaktivieren!
'Kommentar.Comment.Shape.Width = 80 'Breite des Kommentarfeldes
' Kommentar.Comment.Shape.Height = 300 'Höhe des Kommentarfeldes

Next
End Sub

VG RePeter
Anzeige
AW: Zu einem Kommentar / Notiz die zugehörige Zelle ermitteln
26.02.2024 17:32:45
RWillie
Hallo Peter,

da bin ich schon fast wieder froh, dass ich nicht der einzige Leidende bin :-)

Ich musste erstmal das Problem der Zell-Adresse lösen und hatte noch nicht sehr weit nach vorne geschaut. Von daher finde ich Deine Lösung recht hilfreich und sehr elegant. Vielen Dank!


Wenn ich das jetzt richtig sehe, kommst Du aber auch direkt aus dr Comments-Auflistung, wie zur Bestimmung der Adresse, über das Comment-Objekt zu
> pComment.Shape.TextFrame.AutoSize
und
> pComment.Shape.Width/Height

da brauchst Du die neue Schleife über
> For Each Kommentar In ActiveSheet.Cells.SpecialCells(xlCellTypeComments)
gar nicht zu gehen.
Anzeige
AW: Zu einem Kommentar / Notiz die zugehörige Zelle ermitteln
26.02.2024 17:04:49
RWillie
I did!

Bei mir kommt dann:
Objekt unterstützt diese Eigenschaft oder Methode nicht ...
AW: Zu einem Kommentar / Notiz die zugehörige Zelle ermitteln
26.02.2024 16:44:56
Yal
Hallo Willie,

ich würde eine Auge im Objekt-Katalog werfen: Ansicht, Objekt-Katalog und nach "comment" suchen. Da sieht man die Eigenschaften und Methode einer Klasse.
Darin ist aber das "comment"-Objekt aufgrund der Kompatibilität aufgeführt. Anscheinend geht 365 eine andere Strategie nach ("CommentThread").

VG
Yal
AW: Zu einem Kommentar / Notiz die zugehörige Zelle ermitteln
26.02.2024 17:06:06
daniel
Hi
du kannst über das Menü Start - Bearbeiten - Suchen und Auswählen - Inhalte auswählen gezielt auf die Zellen mit Kommentar zugreifen.
das sollte einen dann mit Hilfe des Recorders und etwas Grundwissen zu dieser Schleife führen:

Dim Zelle as Range

For Each Zelle In Cells.SpecialCells(xlCellTypeComments)
Debug.Print Zelle.Address
Next


hier werden dann alle Zellen mit Kommentar einzeln abgeklappert.
Gruß Daniel
Anzeige
AW: Zu einem Kommentar / Notiz die zugehörige Zelle ermitteln
26.02.2024 17:24:47
RWillie
Danke sehr für diesen Hinweis!

Witzig, das ist dann die 3te Schleife, die zu Kommentaren führt.

Eigentlich wollte ich die Schleife über alle Zellen vermeiden, und die Version über die Comments-Auflistung scheint mir hier das eleganteste zu sein.


Die Nachfrage zum Object/Shape-Objekt , und wie man dort an die Adresse kommt, ist akademisch. Es scheint nicht "analog" zu gehen, wenn man schon einmal beim Object/Shape-Objekt angelangt ist.

Von dort gelangt man aber per Parent zur Comments-Auflistung, und dann ist man wieder bei Uduuhs Lösung.

AW: Zu einem Kommentar / Notiz die zugehörige Zelle ermitteln
26.02.2024 17:37:51
Oberschlumpf
Hi,

diesen Satz von dir...
"Eigentlich wollte ich die Schleife über alle Zellen vermeiden"
...verstehe ich nicht.

Such mal nach Erklärungen zu diesem Schlüsselwort: xlCellTypeComments

Ciao
Thorsten
Anzeige
AW: Zu einem Kommentar / Notiz die zugehörige Zelle ermitteln
26.02.2024 17:59:34
RWillie
Hallo,

ja, schon klar. Aber weiß man, was Excel da macht? Rennt das trotzdem alle Zellen durch und prüft auf 'xlCellTypeComments', oder benutzt es intern die Comments-Auflistung. Wenn letzteres, dann kann ich auch selber gleich die Comments-Auflistung verwenden.

Ich vermute, dass der Weg über die Comments-Auflistung schneller ist. da diese ein eigenes Objekt darstellt, während der Weg über die Zellen nicht über ein direktes Objekt läuft, sondern über Eigenschaften eines Worksheet- odre Range-Objektes.

Aber ich kann hier nur mutmaßen, ich habe jetzt keine expliziten Speed-Tests gemacht, welche Methode schneller, oder ob sie beide identisch sind ... wäre interessant.




Anzeige
AW: Zu einem Kommentar / Notiz die zugehörige Zelle ermitteln
26.02.2024 18:10:29
Oberschlumpf
Hi,

ich hab den Code mit ...xlCellTypeComments... getestet:
1 Datei
1 Blatt
4 Zellen nur mit Werten
2 andere Zellen mit Kommentaren
der Code hat nur die Adressen der 2 Kommentar-Zellen ausgeworfen...und das so schnell, dass ich nich glaube, dass auch andere Zellen "überprüft" wurden.

"...oder ob sie beide identisch sind ... wäre interessant..."
Dann musst du wohl doch Tests durchführen....

Ciao
Thorsten
AW: Zu einem Kommentar / Notiz die zugehörige Zelle ermitteln
26.02.2024 19:00:17
daniel
schwer zu sagen.
irgendwo muss sich Excel ja merken, wo Kommentare stehen.
ist dann letztendlich auch egal.
Auch ein Cells.SpecialCells läuft nie über alle 2^34 Zellen, sondern maximal über die, die tatsächlich verwendeten Zellbereich liegen.
wenn du also die Zellen A1:J10 mit Werten füllst und alle anderen Zellen leer und unformatiert lässt, werden auch nur diese 100 Zellen vom SpecialCells geprüft.
du dürftest von der Geschwindigkeit her keinen Unterschied spüren.

und die Methode mit dem Cells und SpecialCells kann man sich über das Menü und den Recorder auch ohne angelesenes Spezialwissen selbst erarbeiten.

Gruß Daniel
Anzeige
AW: Zu einem Kommentar / Notiz die zugehörige Zelle ermitteln
26.02.2024 16:54:17
Uduuh
Hallo Yal,
unter 365 funktioniert es so wie ich geschrieben habe.

Gruß aus'm Pott
Udo

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige