Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Intelligentes Finden und Ersetzen eines Leerzeichens in einer Textbox
#1
Hallo Leute,

ich brüte über ein Problem. Ich habe eine Textbox in dem die einzelnen Wörter ganz normal wie in einem Satz üblich durch ein Leerzeichen getrennt sind.
Zwecks Weiterverarbeitung möchte ich mittels des Mauscursor durch anfahren an eine beliebige Leerstelle, diese Leerstelle durch ein Sonderzeichen, sagen
wir mal ein Sternchen * ersetzen. Das Problem dabei ist, die Cursorposition soll eine gewisse Positionstoleranz beitzen. Sagen wir mal ein Zeichen links und rechts von
der jeweiligen Leerstelle. Durch Mausklick soll dann das Sonderzeichen *, die entsprechende angefahrene Leerstelle ersetzen unabhängig davon, ob sich der
Cursor ein Zeichen zu weit links oder rechts von der betreffenden Leerstelle befand. Wie könnte man so etwas programmiertechnisch umsetzen?
Antworten Top
#2
Was ist dein Problem ?
Antworten Top
#3
Ganz klar die programmiertechnische Umsetzung. Der in der Textbox stehende Satz wird durch einen String repräsentiert. Wie berechne ich, die Position des entsprechenden Leerzeichens im String, dass durch den Mauszeiger vorher angefahren wurde, so dass per Mausklick dann das Sonderzeichen * an, dass betreffende Leerzeichen erzsetzt.
Antworten Top
#4
Hallöchen,

das wäre als Ansatz erst mal der genaue Treffer eines Leerzeichens. Ausgelöst wird das durch einen Doppelklick auf die Stelle.

Code:
Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
  If Mid(TextBox1.Text, TextBox1.SelStart + i, 1) = " " Then
    TextBox1.Text = Left(TextBox1.Text, TextBox1.SelStart + i - 1) & "*" & _
      Right(TextBox1.Text, Len(TextBox1.Text) - TextBox1.SelStart + i - 2)
  End If
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#5
Code zur Einfügung eines Sonderzeichens innerhalb einer vorgegebenen Toleranzgrenze.
Code:
Sub Sonderzeichen(vbs, a)
TextBox1 = Mid(vbs, 1, a) & "@" & Mid(vbs, a + 2, Len(vbs) - 1)
End Sub


Sub TextBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Dim a, länge
Select Case Button
Case 1 'linke Maustaste
vbs = TextBox1.Text
a = TextBox1.SelStart
vsts = Split(vbs)
For i = 0 To UBound(vsts)
länge = länge + Len(vsts(i)) + 1  
If länge - 2 = a Then Call Sonderzeichen(vbs, a + 1)
If länge - 1 = a Then Call Sonderzeichen(vbs, a)
If länge = a Then Call Sonderzeichen(vbs, a - 1)
If länge + 1 = a Then Call Sonderzeichen(vbs, a - 2)
Next i
Case 2 'rechte Maustaste
TextBox1 = Replace(TextBox1, "@", " ")
Case 4 'Mausrad drücken
'unbesetzt
End Select
TextBox1.SelStart = 0
End Sub


Sub UserForm_Initialize()
Dim vsts
TextBox1.Font.Size = 20
TextBox1.Font.Bold = True
vsts = "Dies ist ein zur Demonstration zur Einfügung eines Sonderzeichens dienender Satz."
TextBox1 = vsts
End Sub
Antworten Top
#6
Thumps_up
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#7
Hallo Leute,

ich habe in meinem Code einige Mausbefehle eingebaut. Mausrad drücken ist klar. Aber wie würde der Code aussehen, wenn ich für das  Mausrad den Befehl rollen/scrollen einbauen wollte?
Antworten Top
#8
Hallöchen,

da gibt es kein Event. Eventuell kannst Du mit API's die Scrollradbewegung abfangen und in Excel auswerten, schaue mal hier:
http://www.office-loesung.de/ftopic522291_0_0_asc.php
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste