Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Text mit Format in Textbox übertragen

Forumthread: Text mit Format in Textbox übertragen

Text mit Format in Textbox übertragen
24.07.2008 11:20:55
Joachim
Hi,
ich habe eine Zelle, die enthält diese Information:
01 Zeile 1;Name1;100;24.07.2008;25.07.2008;26.07.2008
02 Zeile 2;Name sowieso2;80;24.07.2008;;26.07.2008
03 Zeile 3;Name 3;20;24.07.2008;;26.07.2008
04 Zeile 4;Name sowieso4;100;24.07.2008;;26.07.2008
05 Zeile 5;Name 5;5;;;26.07.2008
06 Zeile 6;Name sowieso6;80;24.07.2008;;26.07.2008
Ich möchte diese Information nun in eine Textbox einlesen:
TextBox1 = (Range("B29"))
Soweit noch so gut. Nun das Problem:
Die Zeilen sind mit Semikolon getrennt und die Informatiuon pro Spalte sind unterschiedlich lang. Wie bekomme ich die daten sauber untereinender geschrieben (evt. Tabs), damit alle 6 Spalten wie Namen, alle Datums ... sauber untereinander stehn
Danke Joachim

Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Hier eine Korrektur
24.07.2008 11:26:00
Joachim
Hi,
muss mich korregieren:
ich lese die Daten in die Textbox so ein:
'Daten Description eintragen
For Each C In Range("B29")
TextBox1.Value = C.Value
Next
Gruss
Joachim

keine eine Idee ? oT :-)
24.07.2008 14:05:00
Joachim

AW: keine eine Idee ? oT :-)
24.07.2008 17:19:18
Tino
Hallo,
TextBox Eigenschaft AutoSize auf True und MultiLine auf True
TextBox1 = Replace(Range("B29"), ";", vbCr)
Gruß Tino

www.VBA-Excel.de


Anzeige
AW: keine eine Idee ? oT :-)
24.07.2008 19:14:42
Joachim
Hallo Tino,
habe gemacht, was Du geschrieben hast, funktioniert leider nicht so, wie gehofft:
Hatte zum testen gerade aber nur Excel 2000 , macht das was am Ergebnis ?
Schau mal auf meine Mappe:
https://www.herber.de/bbs/user/54119.xls
Vielleicht mach ich doch was falsch.
Danke
Gruss
Joachim

Anzeige
AW: keine eine Idee ? oT :-)
24.07.2008 20:41:00
Tino
Hallo,
was du machen willst, kann man in einer Textbox nur sehr schwer umsetzen.
Hab hier mal angefangen, passt aber noch nicht richtig.
https://www.herber.de/bbs/user/54121.xls
Ich lass die Frage mal offen.
Gruß Tino

www.VBA-Excel.de


Anzeige
hmmm, blöd, aber trotzdem Danke ...
24.07.2008 21:06:42
Joachim
... dass ich mir aber auch immer die schwierigsten Sachen ausdenken muss :-()
Gruss
Joachim

AW: hmmm, blöd, aber trotzdem Danke ...
25.07.2008 07:39:00
Tino
Hallo,
habe mal noch etwas gebastelt.

Die Datei https://www.herber.de/bbs/user/54125.xls wurde aus Datenschutzgründen gelöscht


Ist bestimmt noch ausbaufähig. ;-)
Gruß Tino

www.VBA-Excel.de


Anzeige
Das kommt das Sache schon näher :-)
25.07.2008 10:36:00
Joachim
Hi Tino,
Danke, mir ist nur eines nicht klar: Ich wollte die Breite der esrten Spalte im Code verändern, das wird ja sicher hier gemacht:
Case 60 To 100: meTabs = .Rept(vbTab, 0)
Case 50 To 60: meTabs = .Rept(vbTab, 1)
Case 40 To 50: meTabs = .Rept(vbTab, 2)
Case 0 To 40: meTabs = .Rept(vbTab, 3)
die erste Spalte kann gut mal zwischen 10 und 70 Zechen habe. Nun wollte ich die erste Spalte auf ca 100 zeichen mal ausrichten. Dabei verändere ich aber beim einlesen in die Textbox automatisch die Breiten der nachfolgenden Spalten. Die erste Splate ist doch vbTab,0 oder ?
Irgend was mache ich falsch. schau mal bite noch mal auf beine Mappe , habe das mal mit langen und kurzen Einträgen dargestellt.
Ansonsten echt spitze.
Gruss
joachim
https://www.herber.de/bbs/user/54135.xls

Anzeige
AW: Das kommt das Sache schon näher :-)
25.07.2008 11:37:30
Tino
Hallo,
dies war für die Berechnung der Nötigen vbTab Zeichen um den Text richtig einzurücken.
Für 8 Zeichen benötigt man 3 Tabs für 16 braucht man noch 2 Tabs für 24 nur ein Tab.
Bei Texten mit gleicher länge, bräuchte man nur 1 Tab und dies müsste im Code abgefangen werden.
Man könnte es noch so weit ausbauen, dass man zuerst den längsten Block ermittelt und dies entsprechend in die Funktion einbaut.
Ist doch einfach oder ;-)
Habe schon mal geschrieben, dies ist nicht so leicht umzusetzen.
Ich versuche mal etwas zu programmieren, kann aber ein Weilchen Tauern.
Gruß Tino

www.VBA-Excel.de


Anzeige
Geht nicht und keine Idee mehr!
25.07.2008 19:49:00
Tino
Hallo,
also es Funktioniert nicht.
Mein VBA Programm setzt die Tabs richtig, dies kann man in einem Texteditor gut erkennen, wenn man den Text aus der Textbox dort einfügt.
Userbild
Gruß Tino

Anzeige
trotzdm vielen, vielen Dank Tino ...
25.07.2008 21:46:00
Joachim
Hallo Tino,
kein Problem, muss mir halt irgend wie ein andren weg suchen, vielleicht lese ich die Daten spaltenweise aus meiner datenbank aus und mache dann mehrere Textboxen nebeneiner und lese dort die einzelnen Spalten wieder ein oder irgend wie so.
Schönes Wochenende.
Grus
Joachim
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Text mit Format in Textbox einlesen und übertragen


Schritt-für-Schritt-Anleitung

  1. TextBox erstellen: Füge eine TextBox in dein Excel-Userform ein. Setze die Eigenschaften MultiLine auf True und AutoSize auf True, damit der Text korrekt dargestellt wird.

  2. Daten einlesen: Verwende den folgenden VBA-Code, um die Daten aus einer Zelle (z.B. B29) in die TextBox zu übertragen:

    Dim C As Range
    For Each C In Range("B29")
       TextBox1.Value = Replace(C.Value, ";", vbCr)
    Next
  3. Zeilenformatierung: Stelle sicher, dass die Daten in der Zelle mit Semikolons getrennt sind, damit sie richtig in der TextBox angezeigt werden können.

  4. Daten anpassen: Wenn du unterschiedliche Spaltenbreiten brauchst, kann es hilfreich sein, die Tabs entsprechend anzupassen. Du kannst dies mit dem vbTab-Steuerzeichen erreichen.


Häufige Fehler und Lösungen

  • Fehler 1: Die TextBox zeigt nicht die erwarteten Zeilen an.

    • Lösung: Überprüfe, ob die TextBox-Eigenschaft MultiLine auf True gesetzt ist.
  • Fehler 2: Tabs werden nicht korrekt angezeigt.

    • Lösung: Achte darauf, dass du die Anzahl der Tabs im Code richtig berechnest. Für unterschiedliche Zeichenlängen musst du möglicherweise mehrere Tabs hinzufügen.
  • Fehler 3: Daten werden nicht richtig übertragen.

    • Lösung: Stelle sicher, dass die Daten in der Quellzelle (z.B. B29) mit Semikolons getrennt sind und dass die Replace-Funktion korrekt arbeitet.

Alternative Methoden

Eine alternative Methode zur Übertragung von Daten in eine TextBox könnte das Einlesen der Daten spaltenweise aus einer Datenbank sein. Hierbei könntest du mehrere TextBoxen nebeneinander anordnen und jede TextBox mit einer bestimmten Spalte füllen, um ein übersichtlicheres Layout zu erhalten.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du die Zeilen in einer TextBox formatieren kannst:

Dim data As String
data = "01 Zeile 1;Name1;100;24.07.2008"
TextBox1.Value = Replace(data, ";", vbTab) ' Ersetzt Semikolons durch Tabs

In diesem Beispiel wird der Text aus einer Zelle in die TextBox übertragen und dabei werden die Semikolons durch Tabs ersetzt, um die Daten sauber untereinander anzuzeigen.


Tipps für Profis

  • Dynamisches Hochzählen: Wenn du mit Excel arbeitest und Daten dynamisch hochzählen möchtest, könntest du eine Funktion erstellen, die das Alphabet für die Spaltenbezeichnungen in einer Tabelle automatisch hochzählt.

  • Eingabefelder anpassen: Überlege, die Größe der TextBox dynamisch anzupassen, je nachdem, wie viele Daten du erwartest. Das sorgt für eine bessere Benutzererfahrung.

  • Fehlermeldungen einbauen: Implementiere eine Fehlerbehandlung im Code, um den Benutzer über Probleme beim Einlesen oder Übertragen der Daten zu informieren.


FAQ: Häufige Fragen

1. Warum wird der Text nicht richtig in der TextBox angezeigt? Stelle sicher, dass die Eigenschaften MultiLine und AutoSize der TextBox korrekt eingestellt sind.

2. Kann ich die Daten auch aus einer anderen Quelle einlesen? Ja, du kannst Daten auch aus einer Datenbank oder einer anderen Excel-Tabelle einlesen, indem du entsprechende VBA-Funktionen verwendest.

3. Wie kann ich unterschiedliche Datenformate in der TextBox anzeigen? Du kannst die Format-Funktion in VBA verwenden, um die Daten vor der Übertragung in die TextBox zu formatieren.

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