Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1536to1540
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
Excel Textfeld - Zeile für Zeile
23.01.2017 12:47:25
Christian
Hallo,
in PowerPoint ist es möglich einzelne Zeilen eines Textfeldes auszulesen, geht das auch in Excel? Ziel ist einen zu langen String für die Diagrammbeschriftung manuell auf maximal 3 Zeilen umzubrechen. Gibt es evtl. sogar eine Möglichkeit direkt in einem Excel-Feld die Zeilen einzeln auszulesen? Der String selbst kann manuelle Umbrüche enthalten oder auch nicht.
ActivePresentation.Slides(1).Shapes("TextBox 1").TextFrame.TextRange.Linies(2)
Danke und Gruß,
Christian

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel Textfeld - Zeile für Zeile
23.01.2017 13:08:30
ChrisL
Hi Christian
Nein, gleich wie in PPT funktioniert es nicht, aber vielleicht so...
Sub BeispielZeile2()
MsgBox ZeileAuslesen(Range("A1"), 2)
End Sub

Private Function ZeileAuslesen(strGanzerText As String, lngZeile As Long) As String
Dim ar As Variant
ar = Split(strGanzerText, Chr(10))
ZeileAuslesen = ar(lngZeile - 1)
End Function
cu
Chris
AW: Excel Textfeld - Zeile für Zeile
23.01.2017 13:24:11
Christian
Leider nein, wie gesagt kann es sein, dass der Text keine Umbrüche enthält.
AW: Excel Textfeld - Zeile für Zeile
23.01.2017 13:28:57
ChrisL
hmmm... dann lasse ich die Frage offen
Der String selbst kann manuelle Umbrüche enthalten oder auch nicht.
Anzeige
AW: Excel Textfeld - Zeile für Zeile
23.01.2017 13:55:30
Daniel
Hi
automatische Umbrüche kannst du nur in einer ActiveX- bzw Userform-TextBox identifizieren.
dh du müsstest eine TextBox erstellen, die genauso groß und genauso formatiert ist wie deine Diagrammberschriftung.
Dann schreibst du dort den Text hinein und kannst dann die Zeilenzahl mit Textbox1.LineCount abfragen. Hierbei werden Zeilen, die durch automatische Zeilenumbrüche entstehen und erzwungene Zeilenumbrüche gleichermaßen gezählt.
Die TextBox muss den Focus haben.
für dein Problem könnte die Lösung dann aussehen:
Dim TextGesamt as String
dim TextGekürzt as String
dim i as Long
for i = 1 to len(TextGesamt)
Textbox1.Text = Left(TextGesamt, i)
if Textbox1.LineCount > 3 then Exit for
Next
TextGekürzt = Left(TextGesamt, i - 1)
Gruß Daniel
Anzeige
AW: Excel Textfeld - Zeile für Zeile
23.01.2017 14:43:06
Christian
Perfekt, danke. Hatte die Eigenschaft LineCount schon gesehen, bin aber nicht auf die Idee gekommen, diese auch zum String modifizieren zu nutzen.
Gerade wollte ich den Code noch darauf anpassen, nach jedem Zeilenumbruch ein Enter-Zeichen einzubauen.
Dabei habe ich durch Zufall doch noch die gesuchte Eigenschaft gefunden, für ein im Tabellenblatt hinterlegtes Textfeld:
With Sheets(1).Shapes("Name").TextFrame2.TextRange
For i = 1 To .Lines.Count
If i = 1 Then strText = .Lines(1) Else Text = Text & Chr(10) & .Lines(i)
If i = 3 Then Exit For
Next
End With

Anzeige

111 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige