Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
String in Textfeld an Cursor einfügen
27.04.2019 11:14:31
Sebastian
Hallo,
ich möchte gerne in einem UserForm in einem Textfeld an der Cursorposition einen String Per Button einfügen.
Ich habe schon ein bissel probiert aber eine richtige Lösung ist das nicht. Bei Umbrüchen im Textfeld funktioniert das nicht wirklich. Hat jemand einen Idee wie man das elegant und einfach lösen kann?
Vielen Dank für Hilfe
Mein Code bisher:
Private Sub CommandButton1_Click()
Pos = TextBox1.SelStart + TextBox1.SelLength
TextBox1 = Left(TextBox1, Pos) & "MeinName" & Mid(TextBox1, Pos)
End Sub

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

Betreff
Datum
Anwender
Anzeige
null Fehlerbeschreibung: "Funktioniert nicht!" owT
27.04.2019 11:44:47
EtoPHG

AW: null Fehlerbeschreibung: "Funktioniert nicht!" owT
27.04.2019 11:47:19
Sebastian
OK Sorry,
der Fehler ist, dass es dann irgendwo eingefügt wird und nicht an der gewünschten Stelle
VG Sebastian
Irgendwo, kann ich mir schlecht vorstellen...
27.04.2019 11:57:00
EtoPHG
Sebastian,
Bevor du Deine Befehle ausführst, kannst Du doch mal mit
Debug.Print TextBox1.SelStart, TextBox1.SelLength

Die beiden Werte im Direktfenstern des VBE ansehen und überprüfen.
Gruess Hansueli
AW: Irgendwo, kann ich mir schlecht vorstellen...
27.04.2019 12:18:49
Sebastian
Ich weiß jetzt nicht genau wie du das meinst - ich habe aber mal schnell ein Beispiel hochgeladen.
https://www.herber.de/bbs/user/129433.xlsm
Immer wenn ich im Textfeld den Namen einfügen will, da wo der Cursor steht, macht er z.B. einen Doppelpunkt oder ein Umbruch :-(
Anzeige
AW: Irgendwo, kann ich mir schlecht vorstellen...
27.04.2019 12:52:08
EtoPHG
Hallo Sebastian,
Dann ersetze mal deinen Code im CommandButton, durch diesen:
With TextBox1
Pos = .SelStart + .SelLength + _
(Len(Left(.Text, .SelStart)) - _
Len(Replace(Left(.Text, .SelStart), vbCrLf, vbNullString))) / 2
TextBox1 = Left(.Text, Pos - .SelLength) & "Thomas" & Mid(.Text, Pos + 1)
End With
Gruess Hansueli
AW: Irgendwo, kann ich mir schlecht vorstellen...
27.04.2019 12:38:57
Matthias
Moin!
Bei einer Textbox mit Multiline liefert .selpos einen falschen Wert. Es wird je Zeilenumbruch nur 1 Zeichen genommen anstatt 2. Das könntest du natürlich berechnen. Zählen wie oft ein Zeilenumbruch im Text bis zum .selpos vorkommt. Die Anzahl dann der position hinzufügen. Das aber nur bei multiline Textboxen. Das zumindest, wenn du bei deinem Code bleiben willst.
Da du aber den Namen an Stelle des selektierten Textes (entweder der Text oder die POsition) einfügst, sollte der COde hier auch das gewünschte machen.
Private Sub CommandButton1_Click()
Me.TextBox1.SelText = "MeinName"
End Sub
VG
Anzeige
AW: String in Textfeld an Cursor einfügen
27.04.2019 12:23:17
Sepp
Hallo Sebastian,
probiere es so.
Private Sub CommandButton1_Click()
  Dim objDataObject As MSForms.DataObject
    
  Set objDataObject = New MSForms.DataObject
  objDataObject.SetText "MeinName"
  objDataObject.PutInClipboard
  TextBox1.SetFocus
  Me.ActiveControl.Paste
  
  Set objDataObject = Nothing
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


Anzeige
AW: String in Textfeld an Cursor einfügen
27.04.2019 12:30:10
Sebastian
Perfekt - das ist die Lösung :-) Vielen Dank
AW: String in Textfeld an Cursor einfügen
27.04.2019 12:41:05
Matthias
Moin!
Das bier wäre kürzer und ohne Datenobjekte.
Private Sub CommandButton1_Click()
Me.TextBox1.SelText = "MeinName"
End Sub
VG
Bravo... Matthias, kurz und bündig!
27.04.2019 13:50:21
EtoPHG
Man (ich) kann mir das Leben auch unnötig schwer machen ;-)
Gruess Hansueli
AW: String in Textfeld an Cursor einfügen
27.04.2019 13:56:59
Sebastian
Das ist die Beste und einfachste Lösung :-)
Auf die Idee muss man erstmal kommen - Danke, Vielen Dank

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige