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

Längeren Zelleninhalt als Kommentar einfügen

Längeren Zelleninhalt als Kommentar einfügen
22.01.2019 10:48:42
rafe
Hallo Zusammen,
als VBA-Neuling arbeite ich gerade an meinem ersten "Programm" und bräuchte ein bisschen Unterstützung.
Ziel ist es zu lange Textinhalte in einem Kommentar darzustellen, damit ich die Formatierung meiner Tabelle nicht ändern muss.
Hierfür habe ich bereits aus einem altem Thread ein passenden Code herausgesucht:
--------------
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Const WORD_WRAP = 20
Dim objRange As Range, objCell As Range
Dim strText As String
Dim lngIndex As Long, lngCount As Long
Set objRange = Intersect(Target, Columns("Q:Y"))
If Not objRange Is Nothing Then
For Each objCell In objRange
If IsEmpty(objCell) Then
Call DeleteComment(objCell)
Else
If Len(objCell.Value) > 20 Then
strText = objCell.Text
For lngIndex = 1 To Len(strText)
lngCount = lngCount + 1
If lngCount >= WORD_WRAP And Mid$( _
strText, lngIndex, 1) = " " Then
Mid$(strText, lngIndex, 1) = vbLf
lngCount = 0
End If
Next
With objCell
If .Comment Is Nothing Then .AddComment
.Comment.Shape.DrawingObject.AutoSize = True
.Comment.Text Text:=strText
End With
Else
Call DeleteComment(objCell)
End If
End If
Next
End If
End Sub

Private Sub DeleteComment( _
ByRef probjCell As Range)
If Not probjCell.Comment Is Nothing Then probjCell.Comment.Delete
End Sub

---------------
Allerdings wird hier der Textinhalt innerhalb von einer Zeile als Kommentar angezeigt. Wie muss ich den Code anpassen, damit der Kommentar beispielsweise nach 60 Zeichen einen Zeilenumbruch macht ?
Leider verstehe ich den Teil ab "Else" nicht so richtig, vielleicht hat hier jemand auch ein paar erklärende Worte für mich parat ?
Gruß,
Rafe

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Längeren Zelleninhalt als Kommentar einfügen
22.01.2019 11:25:33
Daniel
Hallo Rafe,
ohne Beispieldatei kann man das leider nicht testen. Ich vermute aber, dass du die eine If Abfrage nur etwas erweitern müsstest:

If lngCount >= WORD_WRAP And Mid$(strText, lngIndex, 1) = " " Then
Mid$(strText, lngIndex, 1) = vbLf
lngCount = 0
Elseif lngCount > 60 Then 'Oder nach welcher Länge der Zeilenumbruch kommen soll
Mid$(strText, lngIndex, 1) = vbLf
End If
Grüße
Daniel
Anzeige

321 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige