Thema Datum  Von Nutzer Rating
Antwort
07.06.2021 15:42:06 Detleff
NotSolved
07.06.2021 16:55:25 Gast461
NotSolved
08.06.2021 11:05:45 Detleff
NotSolved
09.06.2021 09:41:57 Detleff
NotSolved
09.06.2021 15:28:03 Gast82810
NotSolved
09.06.2021 16:19:35 Ulrich
NotSolved
10.06.2021 09:24:18 Gast76414
NotSolved
11.06.2021 08:16:30 Ulrich
NotSolved
11.06.2021 09:16:22 Ulrich
NotSolved
11.06.2021 10:33:19 Detleff
NotSolved
11.06.2021 10:33:20 Detleff
NotSolved
11.06.2021 12:03:55 Ulrich
NotSolved
Rot Textbaustein / Schnellbaustein
11.06.2021 12:50:28 Ulrich
Solved
14.06.2021 08:33:06 Detleff
Solved
14.06.2021 09:09:04 Ulrich
NotSolved
15.06.2021 11:25:52 Detleff
Solved
09.06.2021 17:28:56 xlKing
NotSolved
09.06.2021 17:48:05 xlKing
NotSolved
10.06.2021 15:14:19 Detleff
NotSolved
11.06.2021 08:13:10 Gast34775
NotSolved
11.06.2021 08:40:02 Gast43812
NotSolved
11.06.2021 10:34:30 Detleff
NotSolved

Ansicht des Beitrags:
Von:
Ulrich
Datum:
11.06.2021 12:50:28
Views:
508
Rating: Antwort:
 Nein
Thema:
Textbaustein / Schnellbaustein

...

der letzte Code geht davon aus, dass deine Abkürzungen alle exakt 4 Zeichen lang sind. Weil ich es in meine Codesammlung aufnehmen wollte, habe ich das gerade ein bisschen umgeschrieben, so dass ich es (ähnlich der Schnellbausteine in Word) verwenden kann. Dabei habe ich festgelegt, dass vor der Abkürzung ein Trennzeichen verwendet werden muss (zwingend!). Dadurch kann die Abkürzung beliebig lang sein. Als Trennzeichen habe ich für mich für
Leerzeichen, Zeilenumbruch, Tab, und (
entschieden.

Vielleicht willst ja auch du unterschiedlich lange Abkürzungen verwenden.

Das sähe dann im ersten Entwurf so aus:

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 And Shift = 0 Then 'Enter ohne (Shift | STRG | Alt | ...)
'    If KeyCode = 114 And Shift = 0 Then 'F3 ohne (Shift | STRG | Alt | ...)
        If replace_shortcut() Then
            KeyCode = 0
        End If
    End If
End Sub
  

Function replace_shortcut()
'Returns True if abbreviation is replaced
Static Dic As Object
Dim last_word As String, last_word_index As Long
              
    'Abbreviations and long terms in Dic
    If Dic Is Nothing Then
        Set Dic = CreateObject("Scripting.Dictionary")
        Dic.Add "A123", "Kunde anschreiben"
        Dic.Add "mfg", "Mit freundlichen Grüßen"
        Dic.Add "lg", "Liebe Grüße"
        'Dic.Add ..., ...
    End If
    
    replace_shortcut = False
    
    With TextBox1
        last_word_index = Application.WorksheetFunction.Max( _
                        InStrRev(.Text, " ", -1, vbBinaryCompare), _
                        InStrRev(.Text, vbCr, -1, vbBinaryCompare), _
                        InStrRev(.Text, vbLf, -1, vbBinaryCompare), _
                        InStrRev(.Text, vbTab, -1, vbBinaryCompare), _
                        InStrRev(.Text, "(", -1, vbBinaryCompare)) + 1
                        
        last_word = CStr(Mid(.Text, last_word_index))
        If Dic.Exists(last_word) Then
            .Text = Mid(.Text, 1, Len(.Text) - Len(last_word)) & Dic(last_word)
            replace_shortcut = True
        End If
    End With
     
End Function

Grüße, Ulrich


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
07.06.2021 15:42:06 Detleff
NotSolved
07.06.2021 16:55:25 Gast461
NotSolved
08.06.2021 11:05:45 Detleff
NotSolved
09.06.2021 09:41:57 Detleff
NotSolved
09.06.2021 15:28:03 Gast82810
NotSolved
09.06.2021 16:19:35 Ulrich
NotSolved
10.06.2021 09:24:18 Gast76414
NotSolved
11.06.2021 08:16:30 Ulrich
NotSolved
11.06.2021 09:16:22 Ulrich
NotSolved
11.06.2021 10:33:19 Detleff
NotSolved
11.06.2021 10:33:20 Detleff
NotSolved
11.06.2021 12:03:55 Ulrich
NotSolved
Rot Textbaustein / Schnellbaustein
11.06.2021 12:50:28 Ulrich
Solved
14.06.2021 08:33:06 Detleff
Solved
14.06.2021 09:09:04 Ulrich
NotSolved
15.06.2021 11:25:52 Detleff
Solved
09.06.2021 17:28:56 xlKing
NotSolved
09.06.2021 17:48:05 xlKing
NotSolved
10.06.2021 15:14:19 Detleff
NotSolved
11.06.2021 08:13:10 Gast34775
NotSolved
11.06.2021 08:40:02 Gast43812
NotSolved
11.06.2021 10:34:30 Detleff
NotSolved