MS Word ganze Zeilen ersetzen

Dieses Thema MS Word ganze Zeilen ersetzen im Forum "Microsoft Office Suite" wurde erstellt von capi, 8. März 2005.

Thema: MS Word ganze Zeilen ersetzen Hallo, ich quäle mich schon seit längerem damit ganze Zeilen bei Word ersetzen zu lassen. Wenn die...

  1. Hallo,

    ich quäle mich schon seit längerem damit ganze Zeilen bei Word ersetzen zu lassen.
    Wenn die Buchstabenkombination .htm am Ende der Zeile gefunden wird, soll die ganze Zeile gelöscht werden und nicht nur das .htm
    H
    abe auch schon mit ersetze *.htm versucht, dann löscht er aber auch die Zeilen davor.

    Wäre für einen Lösungsvorschlag sehr dankbar!

    Capi
     
  2. Ola,

    das geht nur mit Trick. Du hast nicht alles geschrieben, also nehem ich an: Word 200x, Mit Zeile meinst Du einen Absatz.

    Erster Schritt
    suche ^p ersetze durch ^p#

    Im Ergebnis hast du an jedem Anfang eines Absatzes eine Raute

    Dann machst Du das, was du schon versucht hast, nur das du nicht nach *.htm sonden nach #*.htm suchst und wieder durch die Raute ersetzt
    Dann sollten in allen gelöschten Zeilen noch eine Raute stehen, die anderen haben immer noch die Rauten am Anfang
    Achtung: Suche nac Platzhalterzeichen wieder ausschalten

    Nächster Schritt:
    suche #^p ersetzte durch nix

    Abschließender Schritt
    Suche nach # ersetze durch nix
     
  3. Hi zusammen,

    hab das Gewünschte mal in einen Makro gegossen.

    Gruß Matjes :)
    Code:
    Sub PunkthtmAmZeilenende_ZeileLoeschen()
      Dim myRange As Range, b_found As Boolean, l_start As Long
    
      Set myRange = ActiveDocument.Content
     ->myRange.Select
      l_start = myRange.Start
      
      
      Do
       ->Bereich setzen, in dem noch nicht gesucht wurde
        myRange.SetRange Start:=l_start, End:=myRange.End
        myRange.Select
        Selection.Find.ClearFormatting
        Selection.Find.Text = .htm
        b_found = Selection.Find.Execute
        
       ->wenn nichts gefunden wurde -> ENDE
        If Not b_found Then Exit Do
        
       ->nächstes Zeichen untersuchen
        Selection.Collapse wdCollapseEnd
        Selection.Expand wdCharacter
      
       ->Fortsetzungzeilenende ? (chr(11))
        If Mid(Selection.Text, 1, 1) = Chr(11) Then
         ->Zeile markieren
          Selection.Expand wdLine
         ->Start nächster Suchbereich auf Zeilenanfang setzen
          l_start = Selection.Start
          Selection.Delete
       ->Zeilenende ? (chr(13))
        ElseIf Mid(Selection.Text, 1, 1) = Chr(13) Then
         ->Zeilenende ? (chr(13))
          Selection.Expand wdLine
         ->Start nächster Suchbereich auf Zeilenanfang setzen
          l_start = Selection.Start
          Selection.Delete
        Else
         ->kein Zeilenende -> nicht löschen
         ->Start nächster Suchbereich hinter die Fundstelle setzen
          l_start = Selection.Start
        End If
      Loop
      
     ->aufräumen
      Set myRange = Nothing
    End Sub
     
  4. Vielen Dank für die Antworten!!!

    Ich werde es mal gleich nach PCDjoe`s Methode ausprobieren, leider ist die Liste so verdammt lang, dass ich befürchte mein Rechner würde dafür einige Tage brauchen, es sei denn ich splitte die Datei.

    Leider weiss ich auch noch nicht wie man ein Makro erfolgreich einsetzt, vielleicht gibt es da ein FAQ oder wieder eine nette Erklärung ;)
     
  5. Hallo capi,

    du kannst folgendermassen vorgehen:

    1) Word-Datei öffnen
    2) VB-Editor öffnen Alt+F11
    Links siehst Du ein Fenster mit der Überschrift Projekt-VBA-Project.
    In diesem Fenster ist das Document unter dem Namen VBAProject(Dateiname) zu finden.

    3) VBA-Modul anlegen mit
    3a) VBAProject(Dateiname) mit der Maus selektieren
    3b) rechte Maustaste -> Einfügen -> Modul
    in der Mitte geht das Code-Fenster Dateiname-Modul1(Code) auf

    4) den gesamten Code per copy und Paste in dieses Fenster hineinkopieren
    5) VB-Editor schliessen mit Alt+Q
    6) mit Alt+F8 Makro PunkthtmAmZeilenende_ZeileLoeschen aufrufen

    Gruß Matjes  :)
     
  6. Beide Methoden funktionieren hervorragend, die von Matjes ist aufgrund meiner riesigen Liste natürlich viel CPU schonender, leider aber nicht so flexibel ohne Programmierkentnisse :)

    Kann man den Script so modifizieren, dass er alle Zeilen löscht welche am Ende kein
    .de/
    dranstehen haben?
     
  7. Hi capi,

    folgender Makro erledigt das Gewünschte.

    Gruß Matjes  ;)
    Code:
    Sub WennAmZeilenendeNichtSuchbegriff_ZeilenLoeschen()
      Const c_Suchbegriff = .de/
      
      Dim l_anz As Long
     ->Schreibmarke an den Anfang
      ActiveDocument.Range(Start:=0, End:=0).Select
      Selection.Expand wdLine
      
      Do
        If Right(Selection.Text, Len(c_Suchbegriff & Chr(11))) = _
              c_Suchbegriff & Chr(11) Then
         ->Suchbegriff mit Fortsetzungszeilenende ->
         ->nicht löschen, nächsten Satz markieren
          l_anz = Selection.Move(Unit:=wdLine, Count:=1)
         ->nächste Zeile vorhanden? ja: Zeile markieren nein:Ende
          If l_anz = 1 Then Selection.Expand wdLine Else Exit Do
        ElseIf Right(Selection.Text, Len(c_Suchbegriff & Chr(13))) = _
                c_Suchbegriff & Chr(13) Then
         ->Suchbegriff mit Zeilenende ->
         ->nicht löschen, nächsten Satz markieren
          l_anz = Selection.Move(Unit:=wdLine, Count:=1)
         ->nächste Zeile vorhanden? ja: Zeile markieren nein:Ende
          If l_anz = 1 Then Selection.Expand wdLine Else Exit Do
        Else
         ->Wenn die letzte Zeile selektiert ist
          If Selection.End = ActiveDocument.Range.End Then
           ->Zeile löschen und ENDE
            Selection.Delete
            Exit Do
          Else
           ->sonst
           ->Zeile löschen und nächste Zeile markieren
            Selection.Delete
            Selection.Expand wdLine
          End If
        End If
      Loop
    End Sub
     
  8. Vielen Danke !

    Hat wirklich super funktioniert!!! :D
     
Die Seite wird geladen...

MS Word ganze Zeilen ersetzen - Ähnliche Themen

Forum Datum
Ganze Seiten aus einem Word-Dokument löschen Microsoft Office Suite 2. Dez. 2003
Welches ist das letzte kaufbare Office und Fehler beim Scrollen in Word: Text verdoppelt sich Microsoft Office Suite 14. Juli 2016
Word und Powerpoint hakeln. Filme abspielen führt zu Aufhängen Windows 10 Forum 17. Dez. 2015
Webhosting für WordPress auf Windows Server Webentwicklung, Hosting & Programmierung 21. Juli 2015
Öffnen mit Doppelklick funktioniert bei Word u. Excel Dateien nichtmehr Microsoft Office Suite 10. Feb. 2015