Makro ohne Zwischenablage

Dieses Thema Makro ohne Zwischenablage im Forum "Microsoft Office Suite" wurde erstellt von PCDjoe, 9. Mai 2006.

Thema: Makro ohne Zwischenablage Ola, ich benutze seit jahren ein aufgezeichnetes Makro, um zwei Buchstaben, zwischen denen die Einfügemarke steht,...

  1. Ola,

    ich benutze seit jahren ein aufgezeichnetes Makro, um zwei Buchstaben, zwischen denen die Einfügemarke steht, gegeneinander auszutauschen. Das Ding hat nur einen Nachteil: Es macht jedes mal die Zwischenablage platt. Es gibt sicher eine Abwandlung, die ohne Zwischenablage funktioniert: Wäre schön, wenn das jemand wüsste :)

    Code:
    Sub TauschZwei()
    '
    ' TauschZwei Makro
    ' Makro aufgezeichnet am 21.06.2001 
    '
      Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
      Selection.Cut
      Selection.MoveRight Unit:=wdCharacter, Count:=1
      Selection.Paste
      Selection.MoveLeft Unit:=wdCharacter, Count:=1
    End Sub
     
  2. Hallo PCDJoe,

    dann probier mal diese Version.

    Gruß Matjes :)
    Code:
    Sub TauschZwei_fuerPCDJoe_ohneBenutzungDerZwischenablage()
        
      Dim mytext As String
        
      mytext = Selection.Text
      If Len(mytext) < 2 Then
        MsgBox (Es sind weniger als 2 Zeichen selektiert.)
      Else
        mytext = Right(mytext, 1) & Left(mytext, Len(mytext) - 1)
        Selection.Text = mytext
      End If
    
    End Sub
     
  3. ola,

    danke, Matjes, aber die Funktionsweise stimmt so nicht: Zwei zeichen zu markieren ist nicht praktikabel, das hab ich schon versucht: Die Schreibmarke steht zwischen den zu vertauschenden Zeichen (ohne Markierung und da soll es auch wieder hin.
    Ich hab also am Anfnag und am Ende ein wenig cursorschubsen angehängt :) Jetzt funktioniert es, sieht aber elende aus :) Geht das besser?
    Code:
    Sub TauschZwei_fuerPCDJoe_ohneBenutzungDerZwischenablageKorr()
        
      Dim mytext As String
      Selection.MoveRight Unit:=wdCharacter, Count:=1
      Selection.MoveLeft Unit:=wdCharacter, Count:=2, Extend:=wdExtend
      mytext = Selection.Text
      If Len(mytext) < 2 Then
        MsgBox (Es sind weniger als 2 Zeichen selektiert.)
      Else
        mytext = Right(mytext, 1) & Left(mytext, Len(mytext) - 1)
        Selection.Text = mytext
      End If
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
    End Sub
     
  4. Hallo PCDJoe,

    ich hab jetzt deinen alten Makro genommen und nur Cut und Paste ersetzt.
    Code:
    Sub TauschZwei_new()
      Dim Mytext As String
        Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
        Mytext = Selection.Text
        Selection.Text = 
        Selection.MoveRight Unit:=wdCharacter, Count:=1
        Selection.Text = Mytext
        Selection.MoveLeft Unit:=wdCharacter, Count:=1
    End Sub
    Gruß Matjes :)
     
  5. Ola,

    danke, so einfach kann das Leben also sein :)
     
  6. Hab ich mir auch gedacht  ;D
     
Die Seite wird geladen...

Makro ohne Zwischenablage - Ähnliche Themen

Forum Datum
Kopie von Dateien ohne Makros und Kommentare Microsoft Office Suite 21. Jan. 2007
Excel-Makro öffnet Datei schreibgeschützt ohne Mitteilung Windows XP Forum 22. Sep. 2005
Excel: String splitten ohne Makro? Microsoft Office Suite 6. Sep. 2005
Excel VBA Makro zum suchen eines Textes und anschließend einen Breich zu kopieren Microsoft Office Suite 22. Jan. 2015
Word 2013 VBA: Makro aus einer anderen Datei aufrufen Microsoft Office Suite 16. Juni 2014