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

Komentarfeld Positionierung

Komentarfeld Positionierung
07.02.2019 20:11:15
David
Hallo,
ich verwedne folgenden Code um ein Komentarfeld von der Breite/Höhe und Position anzupassen.
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim cmt As Comment, ct As Integer, ht As Integer
Application.DisplayCommentIndicator = xlCommentIndicatorOnly
Set cmt = ActiveCell.Comment
If Not cmt Is Nothing Then
With ActiveWindow.VisibleRange
cmt.Shape.Width = 100
cmt.Shape.Top = cmt.Parent.Top - 150
cmt.Shape.Left = .Left + 200
ct = cmt.Shape.TextFrame.Characters.Count
If ct = 30 And ct 

Die Höhe varriert durch die Anzahl der Zeichen durch:
ct = cmt.Shape.TextFrame.Characters.Count
Die Top Positionierung wird über

cmt.Shape.Top = cmt.Parent.Top - 150 
geregelt.
Ist es möglich das ich genau wie bei "ct" auch diese Top Positionierung von den Zeichen abhängig mache?
Beispiel:
if ct If ct >= 30 And ct Ich hoffe ich konnte es verständlich erklären.
Vielen Dank für jeden Hinweis.
LG David

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Komentarfeld Positionierung
08.02.2019 00:03:51
Karl-Heinz
Hallo David,
vieles ist grundsätzlich möglich.
Habe Dir mal 'ne andere Code-Schreibweise beigefügt, mit der Du auch die Top-Angaben der Kommentare anpassen kannst. Die Positionen (Zahlen) dann bitte selbst anpassen.
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
  Dim cmt As Comment
  Application.DisplayCommentIndicator = xlCommentIndicatorOnly
  Set cmt = ActiveCell.Comment
  If Not cmt Is Nothing Then
     With cmt.Shape
       .Left = ActiveWindow.VisibleRange.Left + 200
       .Width = 100
       Select Case .TextFrame.Characters.Count
       Case Is < 30
         .Top = cmt.Parent.Top - 150
         .Height = 250
       Case Is > 150
         .Top = cmt.Parent.Top - 50
         .Height = 50
       Case Else
         .Top = cmt.Parent.Top - 100
         .Height = 100
       End Select
       .Visible = True
     End With
  End If
End Sub

VBA=>HTML, (c) 2018 by KHV

viele Grüße
Karl-Heinz

Anzeige
AW: Komentarfeld Positionierung
08.02.2019 19:04:23
David
Hallo Karl Heinz,
vielen vielen Dank für deinen Code.
Das ist genau das was ich brauche.
Zuerst ist das Kommetarfeld immer wieder in die ursprngliche Position gerutscht.
Ich habe dann .Visible = True durch cmt.Visible = True ersetz und nach oben gesetzt, jetzt geht alles.
Wenn es für jemanden interssant ist:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim cmt As Comment
Application.DisplayCommentIndicator = xlCommentIndicatorOnly
Set cmt = ActiveCell.Comment
If Not cmt Is Nothing Then
cmt.Visible = True
With cmt.Shape
.Left = ActiveWindow.VisibleRange.Left + 200
.Width = 100
Select Case .TextFrame.Characters.Count
Case Is 

Anzeige
AW: Komentarfeld Positionierung
08.02.2019 09:32:28
Nepumuk
Hallo David,
egal wie das Kommentarfeld positionierst, sobald du die Mappe schließt und wieder öffnest sind sie auf ihrer von Excel vorgegebenen Standardposition.
Gruß
Nepumuk

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige