Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
888to892
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
888to892
888to892
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Textfeld als Aufzählung formatieren
23.07.2007 22:06:00
Alex
Hallo forum,
Ich möchte gerne mit VBA Text in ein Textfeld schreiben, das automatisch als Aufzählung mit Bullet-Points formatiert wird. Dazu soll Text aus verschiedenen Zellen ausgelesen und in das Textfeld geschrieben werden.
Bis jetzt versuche ich es wie folgt über Shape:
Set TextField1 = Worksheets(1).Shapes(1).TextFrame
With Worksheets(1)
text = .Cells(1, 1).Value & Chr(10) & _
.Cells(2, 1).Value & Chr(10) & _
....
End With
TextField1.Characters.Text = text
Funktioniert auch soweit, nur ich weiß nicht, wie ich die einzelnen Zeilen als Aufzählung formatieren kann.
Kann jemand helfen?
Besten Dank vorab!
Viele Grüße,
Alexander

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

Betreff
Datum
Anwender
Anzeige
AW: Textfeld als Aufzählung formatieren
23.07.2007 23:18:51
Horst
Hi,
prizipiell geht das schon, nur wird das eine elende Bastelei.
Verwende z.B. als Bullet ein kleines L mit Schriftart Wingdings und versuche, das Ganze
mit dem Makrorekorder aufzudröseln.
mfg Horst

AW: Textfeld als Aufzählung formatieren
24.07.2007 05:05:55
fcs
Hallo Alexander,
hier mein Lösungsvorschlag. Die einzulesenden Zellen werden dabei in Arrays für Zele und Spalte festgelegt. In einer 1. Schleife kann man dann zunächst den Text zusammenfügen, wobei gleichzeitig die Position der 1. Zeichen der Zeilen in einem Array gespeichert wird. In einer 2. Schleife wird dann das 1. Zeichen jeder Zeile in Schriftart Wingdings formatiert um das Aufzählungszeichen anzuzeigen.
Gruß
Franz

Sub AufzaehlungInTextbox()
Dim wks As Worksheet, TextField1 As TextFrame, arrZeilen, arrSpalten
Dim arrBeginn(), strText$, i%
Set wks = Worksheets(1)
Set TextField1 = Worksheets(1).Shapes(1).TextFrame
arrZeilen = Array(1, 2, 3) 'Zeilennummern der Zellen
arrSpalten = Array(1, 1, 2) 'Spaltennumern der Zellen
'Feld für die Position des 1. Zeichens jeder Zeile
ReDim arrBeginn(LBound(arrZeilen) To UBound(arrZeilen))
With wks
For i = LBound(arrZeilen) To UBound(arrZeilen)
'Zeichen 108 ist "l", wird zum Bullet mit Font Wingdings
If strText = "" Then
arrBeginn(i) = 1
strText = Chr$(108) & " " & .Cells(arrZeilen(i), arrSpalten(i)).Text
Else
arrBeginn(i) = Len(strText) + 2
strText = strText & Chr$(10) & Chr$(108) & " " _
& .Cells(arrZeilen(i), arrSpalten(i)).Text
End If
Next
End With
With TextField1
.Characters.Text = strText
'Basisformatierung des Textes
With .Characters(Start:=1, Length:=Len(strText)).Font
.Name = "Arial"
.FontStyle = "Standard"
.Size = 12
.Bold = False
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
'1. Zeichen der Zeile in anderer Schriftart
For i = LBound(arrZeilen) To UBound(arrZeilen)
With .Characters(Start:=arrBeginn(i), Length:=1).Font
.Name = "Wingdings"
.Size = 8
End With
Next
End With
End Sub


Anzeige
Sehr schön! oT
24.07.2007 16:06:07
Horst
ot

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige