Zeilenumbrüche aus Zelle in TextBox?

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Zeilenumbrüche aus Zelle in TextBox?
von: Lisa
Geschrieben am: 06.05.2015 11:52:26

Hallo zusammen,
ich habe meiner TextBox1 beigebracht, Mehrspaltig auch in die Tabellenzellen zu schreiben.

Private Sub CommandButton1_Click()
With Sheets(11)
.Unprotect
.Range("G13:O15") = Replace(TextBox1.Text, vbCr, "")
.Protect
End With
End Sub
Wie aber gelingt es mir den Text aus der Zelle wieder in die TextBox1 zuholen?
So, wie ich es versuche, wird es nichts, vermutlich muss der Zeilenumbruch auch berücksichtigt werden.
Wenn jemand hierzu eine Idee hat, würde ich mich über jede Hilfe freuen.
Private Sub UserForm_Initialize()
With UF_Zusatz
    .Caption = "Zusatzangaben"
    If Sheets(11).Range("G13:O15") <> "" Then
       .TextBox1 = Sheets(11).Range("G13:O15")
    End If
    .Show
    End With
End Sub

Liebe Grüße Lisa

Bild

Betrifft: AW: Zeilenumbrüche aus Zelle in TextBox?
von: Nepumuk
Geschrieben am: 06.05.2015 12:14:17
Hallo,
das:
If Sheets(11).Range("G13:O15") <> "" Then
kann schon nicht funktionieren denn ein Range aus mehreren Zellen gibt ein Array zurück. Das kannst du nicht mit einem einzelnen Wert vergleichen. Genauso wenig kannst du so ein Array an eine TextBox übergeben.
Steht denn in allen Zellen das selbe? Denn damit:
.Range("G13:O15") = Replace(TextBox1.Text, vbCr, "")
trägst du in allen 27 Zellen das selbe ein.
Beschreib einfach mal was du vor hast, dann findet sich sicher auch eine Lösung.
Gruß
Nepumuk

Bild

Betrifft: AW: Zeilenumbrüche aus Zelle in TextBox?
von: Daniel
Geschrieben am: 06.05.2015 12:14:25
Hi
sollte es sich bei G13:O15 um einen Zellverbund handeln, so reicht es aus, die linke obere Zelle (G13) zu verwenden.
Sowohl beim Schreiben, als auch beim Lesen des Zellinhaltes.
Ansonsten müsstest du die Zellinhalte der einzelnen Zellen zuerst zu einem Textstring verketten und dann diesen Textstring in die Zelle schreiben.
Ein zweidimensionalem Array, wie es die Werte von G13:O15 bilden, kann weder die Textbox verarbeiten, noch der Vergleich <> "".
ansonsten sollte es kein Problem geben.
die harten Zeilenumbrüche (Zeichen(10), vbLF, ALT+ENTER) werden dann auch in der Textbox angezeigt (vorausgesetzt die Eigenschaft MultiLine = True ist gesetzt)
bei den weichen Umbrüchen (Rand der Zelle ist erreicht) ist natürlich die Grösse der Textbox ausschlaggebend, nicht die der Zelle.
Sollten Zelle und Textbox unterschiedlich breit sein oder unterschiedliche Schriftarten oder -grössen verwenden, ergibt sich für die weichen Umbrüche natürlich ein anderes Bild.
Gruß Daniel

Bild

Betrifft: AW: Zeilenumbrüche aus Zelle in TextBox?
von: Nepumuk
Geschrieben am: 06.05.2015 12:14:33
Hallo,
das:
If Sheets(11).Range("G13:O15") <> "" Then
kann schon nicht funktionieren denn ein Range aus mehreren Zellen gibt ein Array zurück. Das kannst du nicht mit einem einzelnen Wert vergleichen. Genauso wenig kannst du so ein Array an eine TextBox übergeben.
Steht denn in allen Zellen das selbe? Denn damit:
.Range("G13:O15") = Replace(TextBox1.Text, vbCr, "")
trägst du in allen 27 Zellen das selbe ein.
Beschreib einfach mal was du vor hast, dann findet sich sicher auch eine Lösung.
Gruß
Nepumuk

Bild

Betrifft: AW: Zeilenumbrüche aus Zelle in TextBox?
von: Daniel
Geschrieben am: 06.05.2015 12:14:35
Hi
sollte es sich bei G13:O15 um einen Zellverbund handeln, so reicht es aus, die linke obere Zelle (G13) zu verwenden.
Sowohl beim Schreiben, als auch beim Lesen des Zellinhaltes.
Ansonsten müsstest du die Zellinhalte der einzelnen Zellen zuerst zu einem Textstring verketten und dann diesen Textstring in die Zelle schreiben.
Ein zweidimensionalem Array, wie es die Werte von G13:O15 bilden, kann weder die Textbox verarbeiten, noch der Vergleich <> "".
ansonsten sollte es kein Problem geben.
die harten Zeilenumbrüche (Zeichen(10), vbLF, ALT+ENTER) werden dann auch in der Textbox angezeigt (vorausgesetzt die Eigenschaft MultiLine = True ist gesetzt)
bei den weichen Umbrüchen (Rand der Zelle ist erreicht) ist natürlich die Grösse der Textbox ausschlaggebend, nicht die der Zelle.
Sollten Zelle und Textbox unterschiedlich breit sein oder unterschiedliche Schriftarten oder -grössen verwenden, ergibt sich für die weichen Umbrüche natürlich ein anderes Bild.
Gruß Daniel

Bild

Betrifft: AW: Zeilenumbrüche aus Zelle in TextBox?
von: fcs
Geschrieben am: 06.05.2015 12:31:20
Hallo Lisa,
verbundenen Zellen haben halt so ihre Tücken.

Private Sub UserForm_Initialize()
    With UF_Zusatz
      .Caption = "Zusatzangaben"
      If Sheets(11).Range("G13:O15").Range("A1") <> "" Then
         .TextBox1 = Sheets(11).Range("G13:O15").Range("A1").Text
      End If
      '.Show   '???????  - das gehört hier normal nicht hin außer dieser Code steht nicht unter  _
UF_Zusatz
    End With
End Sub


Bild

Betrifft: AW: Zeilenumbrüche aus Zelle in TextBox?
von: Lisa
Geschrieben am: 06.05.2015 12:36:30
Hallo Nepumuk, halle Daniel, als Erstes, vielen Dank für die schnellen Antworten.
Zum Ausgangspunkt, Range("G13:O15") ist ein Zellenverbund.
Die TextBox ist ebenfalls korrekt eingestellt.
Ich habe es anfänglich mit Sheets(11).cells(13, 7) versucht, so dachte ich auch, dass dann der Zelleninhalt aus dem Zellenverbund zurückgegeben wird.
Nach Euren Antworten nun noch einmal getestet, funktioniert es auch.
Ich zweifel an mir selbst, keine Ahnung was da gerade nicht funktionierte, wo ich mir selbst im Wege stand, der Fehler ist nun behoben. Peinlich, peinlich.
Vielen, vielen Dank und Entschuldigung.
LG Lisa

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zeilenumbrüche aus Zelle in TextBox?"