Makro zum Löschen von Zeilen mit dem gleichen Anfang

  • #1
T

Tobias Krohn

Guest
Hallo!

Ich habe eine recht große Word-Datei, bei der ich mit einem Makro alle Zeilen löschen möchte, die mit einem bestimmten Wort beginnen. Dabei sollen allerdings die nachfolgenden Zeilen nicht hochrutschen. Kann mir wohl jemand helfen?

Vielen Dank!
 
  • #2
Hallo Tobias Krohn,

ich hoffe du meinst mit Zeilen Absätze.

Für diesen Fall hab ich dir einen Makro gestrickt.

Gruß Matjes :)
Code:
Sub ParagpraphenTextLoeschenWennMitWortBeginnt()
 -> Löscht den Text aller selektierten Paragraphen,
 -> die mit dem eingegebenen Anfangswort anfangen
  
  Dim s_Wort As String, s As String, x As Long, b_ok As Boolean
  Dim p_s As Paragraphs, p As Paragraph, l_selection As Long
  
 ->Prüfen, ob etwas selektiert ist
  l_selection = Selection.Range.End - Selection.Range.Start
  If l_selection = 0 Then
    MsgBox (Nichts markiert. Bitte markeiren Sie den Bereich.)
    Exit Sub
  End If
  
 ->Eingabe-Schleife
  s_Wort = 
  Do
   ->Eingabe
    s_Wort = InputBox( _
      Biite geben Sie das Anfangswort für die zu löschenden Paragraphen-Texte ein., _
      Paragraphen-Text löschen, wenn Text mit Anfangswort beginnt, s_Wort)
    
   ->Eingabe prüfen
    If s_Wort =  Then Exit Sub
    b_ok = True
    For x = 1 To Len(s_Wort)
      s = Mid(s_Wort, x, 1)
      Select Case s
        Case 0 To 9, a To z, A To Z, ä, Ä, ö, Ö, ü, Ü, ß, -, _
        Case Else
          MsgBox (x & . Zeichen unzulässig. & vbCrLf & Bitte korrigieren.)
          b_ok = False
          Exit For
      End Select
    Next
   ->Prüfung ok ?
    If b_ok Then Exit Do
  Loop
  
 ->selektierte Paragraphen merken
  Set p_s = Selection.Paragraphs
  
 ->Text der Absätze mit Anfangswort löschen
  For x = p_s.Count To 1 Step -1
   ->nächster Paragraph
    Set p = p_s(x)
   ->Anfangswort ?
    If s_Wort = Left(p.Range.Text, Len(s_Wort)) Then
     ->Text löschen
      p.Range.Text = Right(p.Range.Text, Len(vbCr))
    End If
  Next
End Sub
 
  • #3
Zunächst vielen Dank für das Makro!

Das Problem ist, dass es sich offensichtlich nicht um richtige Zeilen, sondern um mehrere Zellen in einer Zeile hintereinander handelt . Insgesamt drei Textfelder, das Wort des erste Textfeldes ist immer indentisch, die beiden nachfolgenden Textfelder sind immer unterschiedlich.

Das Makro müsste also alle Textfelder mit dem bestimmten Inhalt finden, dann die Textfelder selbt und jeweils die beiden nachfolgenden Textfelder löschen. Wichtig ist zudem, dass sich die Zeilen nicht durch das Löschen verschieben.

Ich bin für jede Hilfe dankbar!
 
  • #4
Hallo Tobias,

schick mir doch mal die Beispiel-Datei. Dann schau ich mal wie die aufgebaut ist und passe den Makro entsprechend an. So ist das irreführend.

Kann eine Tabelle sein, Textfelder ,...

Gruß Matjes :)
 
Thema:

Makro zum Löschen von Zeilen mit dem gleichen Anfang

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.839
Beiträge
707.962
Mitglieder
51.492
Neuestes Mitglied
Janus36
Oben