Hallo Expertinnen und Experten,
ich habe eine Excel-Tabelle ist als Rechnungsformular eingerichtet. Das Adressfeld ist als Textfeld (angezeigter Name: Textfeld4) konzipiert. Die Rechnungsdaten werden später per VBA in ein Journal übertragen. Das funktioniert mit den Daten in der Tabelle einwandfrei. Wie aber bekomme ich den Namen aus dem Textfeld ausgelesen. Wie muss das Textfeld angesprochen werden?
So z. B.:
Inhalt = ActiveSheet.Shapes("Textfeld 4").TextFrame2.TextRange.Text ' oder:
Inhalt = ActiveSheet.Shapes("Textfeld 4").TextFrame.Characters.Text
MsgBox Inhalt
Vielen Dank, Niclaus Wurthberg!
Das funktioniert.
Und wie bekomme ich den Inhalt einer bestimmten Zeile des Textfeldes? Ich möchte nur den Namen aus Zeile 5. Zeile 1 = Absender, Zeilen 2-4 leer.
Danke und beste Grüße Rudi
Hallo Rudi
Damit es ganz klar ist: Dein Textfeld 4 schaut so aus:
Die einzelnen Zeilen sind mit RETURN/ENTER abgetrennt. Zeilenumbruch = Chr(10) im folgenden Makro.
Das folgende Makro gibt entsprechend dem Wert der Variablen „suchz“ die gewünschte Zeile aus . Hier: suchz = 5
Bei mir klappt’s. Ich hoffe, bei Dir auch. Grüsse Niclaus
Sub m2aaa()
Dim sText As String, vX As Variant, i As Long
Dim suchz As Long, BestZeile As String
suchz = 5 ' Zeile, die ausgegeben werden soll.
sText = ActiveSheet.Shapes("Textfeld 4").TextFrame2.TextRange.Text
vX = Split(sText, Chr(10))
For i = 0 To UBound(vX)
' MsgBox vX(i) ' nennt alle Zeilen der Reihe nach
Next i
BestZeile = vX(suchz - 1)
MsgBox BestZeile
End Sub
Hallo Niclaus,
genial mit Split(… gelöst. Ich hatte das inzwischen mühselig mit 3 For/Next Schleifen versucht.
Nochmal vielen Dank und Grüße
Rudi