Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Textfeld als Aufzählung formatieren

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

Anzeige

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
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Textfeld als Aufzählung in Excel formatieren


Schritt-für-Schritt-Anleitung

Um eine Aufzählung in einem Excel-Textfeld zu erstellen, kannst du VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu, indem du im Menü auf „Einfügen“ > „Modul“ klickst.

  3. Kopiere den folgenden VBA-Code in das Modul:

    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) ' Spaltennummern der Zellen
       ReDim arrBeginn(LBound(arrZeilen) To UBound(arrZeilen))
       With wks
           For i = LBound(arrZeilen) To UBound(arrZeilen)
               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
           With .Characters(Start:=1, Length:=Len(strText)).Font
               .Name = "Arial"
               .Size = 12
           End With
           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
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Füge ein Textfeld in dein Arbeitsblatt ein.

  6. Führe das Makro aus, um die Aufzählung in Excel zu erstellen.


Häufige Fehler und Lösungen

  • Fehler: Das Textfeld wird nicht aktualisiert.
    Lösung: Stelle sicher, dass das Textfeld auf dem richtigen Arbeitsblatt ist und dass du das Makro im richtigen Kontext ausführst.

  • Fehler: Aufzählungszeichen werden nicht angezeigt.
    Lösung: Überprüfe, ob die Schriftart für die Aufzählungszeichen korrekt auf "Wingdings" gesetzt ist.


Alternative Methoden

Falls du keine VBA-Programmierung verwenden möchtest, kannst du auch die folgenden Methoden ausprobieren:

  • Aufzählung in einer Excel-Zelle formatieren:
    Du kannst in einer Zelle Aufzählungszeichen einfügen, indem du ALT + 7 für einen Bullet Point drückst, während du in die Zelle schreibst.

  • Verwendung von Textfeldern:
    Du kannst Text in ein Textfeld kopieren und dann manuell Aufzählungszeichen hinzufügen, indem du die Bullet-Point-Taste nutzt.


Praktische Beispiele

  1. Aufzählung in Excel Zelle:
    In Zelle A1 kannst du Folgendes eingeben:

    • Punkt 1
    • Punkt 2
    • Punkt 3
  2. VBA-Beispiel für mehrere Zeilen:
    Mit dem obigen VBA-Code kannst du Text aus den Zellen A1, A2 und A3 nehmen und in ein Textfeld als Aufzählung formatieren.


Tipps für Profis

  • Experimentiere mit verschiedenen Schriftarten für die Aufzählungszeichen, um deine Präsentation zu verbessern.
  • Verwende den Makrorekorder, um VBA-Code für wiederkehrende Aufgaben zu erstellen, wenn du die Aufzählung in Excel öfters benötigst.
  • Speichere deine Excel-Datei als Makro-fähige Datei (.xlsm), um den VBA-Code zu behalten.

FAQ: Häufige Fragen

1. Wie kann ich eine Aufzählung in Excel Zelle einfügen?
Du kannst Aufzählungszeichen direkt in eine Zelle eingeben, indem du ALT + 7 für einen Bullet Point verwendest.

2. Gibt es eine Möglichkeit, Aufzählungszeichen in Excel automatisch zu generieren?
Ja, du kannst VBA verwenden, um Text aus Zellen zu extrahieren und automatisch als Aufzählung in einem Textfeld zu formatieren. Das Beispiel im obenstehenden Abschnitt zeigt, wie das geht.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige