MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Word
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 12.02.2011, 21:54   #1
Wasserhahn
Neuer Benutzer
Neuer Benutzer
Standard Word 2007 - komplette Zeile löschen, die einen bestimmten Wort NICHT beinhaltet?

Hallo,

ich suche eine möglichkeit, mit einem Makro in Word Zeilen zu löschen,
die einen bestimmten Wort NICHT beinhalten.

z.b
LöscheZeile, wenn Zeileninhalt NICHT "Telefonnummer" oder "E-mail"
ist

danke.
Wasserhahn ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.02.2011, 16:39   #2
Hasso
MOF Meister
MOF Meister
Standard

Hallo Wasserhahn,

"Zeile" ist kein Bereich, der hier verwendet werden kann. Die Länge einer Zeile hängt von Schriftgröße, Ansicht, Drucker etc. ab.
Wenn die Werte in einem Absatz stehen, wäre das machbar.

__________________

Gruß Hasso

Programmers don't die, they just GOSUB without RETURN

System Windows 7 Enterprise 64, Office 2013
Wenn dir mein Beitrag gefallen hat, kannst du ihn bewerten (mit dem Symbol links unten)
Hasso ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.02.2011, 20:46   #3
Wasserhahn
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo @Hasso und danke für dein Antwort,
die Zeilen stehen in einem Absatz.
Wasserhahn ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.02.2011, 08:38   #4
Hasso
MOF Meister
MOF Meister
Standard

Hallo Wasserhahn,

dann geht das so:
Code:

Sub absaetze_loeschen()
' Erstellt von Hasso am 14.2.2011
On Error Resume Next
Dim i As Integer
For i = 1 To ActiveDocument.Paragraphs.Count
  If InStr(ActiveDocument.Paragraphs(i), "Telefonnummer") Or InStr(ActiveDocument.Paragraphs(i), "E-mail") Then
    ActiveDocument.Paragraphs(i).Range.Delete
  End If
Next
End Sub

__________________

Gruß Hasso

Programmers don't die, they just GOSUB without RETURN

System Windows 7 Enterprise 64, Office 2013
Wenn dir mein Beitrag gefallen hat, kannst du ihn bewerten (mit dem Symbol links unten)
Hasso ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.02.2011, 18:22   #5
Wasserhahn
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Zitat:

LöscheZeile, wenn Zeileninhalt NICHT "Telefonnummer" oder "E-mail"

Hallo Hasso, ich fürchte wir habe uns misverstanden, dein Makro löscht alles zeilen mit "Telefonnummer" und "E-mail". Es soll, dass gegenteil geschehen.
Also, alle löschen außer "Telefonnummer" und "Email"
Wasserhahn ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.02.2011, 19:58   #6
Hasso
MOF Meister
MOF Meister
Standard

Hallo Wasserhahn,

du hast recht, aber die Lösung hättest du vielleicht auch selbst finden können
Code:

Sub absaetze_loeschen()
' Erstellt von Hasso am 14.2.2011
On Error Resume Next
Dim i As Integer
For i = 1 To ActiveDocument.Paragraphs.Count
  If Not (InStr(ActiveDocument.Paragraphs(i), "Telefonnummer") Or InStr(ActiveDocument.Paragraphs(i), "E-mail")) Then
    ActiveDocument.Paragraphs(i).Range.Delete
  End If
Next
End Sub

__________________

Gruß Hasso

Programmers don't die, they just GOSUB without RETURN

System Windows 7 Enterprise 64, Office 2013
Wenn dir mein Beitrag gefallen hat, kannst du ihn bewerten (mit dem Symbol links unten)
Hasso ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.02.2011, 22:18   #7
Wasserhahn
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Es funktioniert Leider nicht.
Wasserhahn ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.02.2011, 06:26   #8
stefan1975
Neuer Benutzer
Neuer Benutzer
Standard

Hallo Allerseits,

hier gibts auch einen Lösungsansatz zum GLEICHEN Problem:


http://www.office-loesung.de/
und hinten das folgende anhängen:
ftopic441650_0_0_asc.php

(irgendwie krieg ich es nicht als Link hin...)

viele Grüße
stefan

__________________

---------- Office 2002/2003 ----------
Wissen heißt wissen, wo's steht oder wissen wer's weiß.
(frei nach Albert Einstein 1879 - 1955)
stefan1975 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.02.2011, 06:31   #9
Hasso
MOF Meister
MOF Meister
Standard

Hallo Wasserhahn,

ich melde mich heute nachmittag, da ich jetzt zur Arbeit muss.

__________________

Gruß Hasso

Programmers don't die, they just GOSUB without RETURN

System Windows 7 Enterprise 64, Office 2013
Wenn dir mein Beitrag gefallen hat, kannst du ihn bewerten (mit dem Symbol links unten)
Hasso ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.02.2011, 13:50   #10
Hasso
MOF Meister
MOF Meister
Standard

So, jetzt bin ich mit der Lösung wieder da. Hab das mehrfach getestet.
Code:

Sub absaetze_loeschen()
' Erstellt von Hasso am 15.2.2011
On Error Resume Next
Dim i As Word.Paragraph
For Each i In ActiveDocument.Paragraphs
  If InStr(i.Range.Text, "Telefonnummer") = 0 And InStr(i.Range.Text, "E-mail") = 0 Then
    i.Range.Delete
  End If
Next
End Sub

__________________

Gruß Hasso

Programmers don't die, they just GOSUB without RETURN

System Windows 7 Enterprise 64, Office 2013
Wenn dir mein Beitrag gefallen hat, kannst du ihn bewerten (mit dem Symbol links unten)
Hasso ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.02.2011, 15:30   #11
ebs17
MOF Guru
MOF Guru
Standard

Zitat:

Lösungsansatz zum GLEICHEN Problem

Zuerst musst Du definieren, was Du unter einer Zeile verstehst.
Im Link zu office-loesung verwendet man eine Tabelle. Das ist ein identifizierbares Objekt in Word, und somit sind auch Tabellenzeilen identifizierbar.

Im Fließtext ist eine Zeile nicht als Objekt identifizierbar, Hasso hat das bereits hinreichend beschrieben. Ein Absatz wäre die naheliegende Alternative. Wenn ein Absatz allerdings mehr als die zu entfernende Zeile enthält, dann wird es wieder problematisch: Was davon ist die gewünschte Zeile?

Aus einem Fließtext könnte man einen Teiltext (Zeile) ermitteln, wenn man Beginn und Ende kennt. Im Teiltext kann man prüfen, ob es einen bestimmten Inhalt gibt. Einen Teiltext kann man löschen, wenn man ihn per Replace mit einem Nullstring ersetzt.
Ggf. könnte man hier auch Regular Expressions einsetzen. Über Suchmuster kann man da deutlich flexibler arbeiten.

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}
Dein Dankeschön: DBWiki=>Spende
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.02.2011, 17:21   #12
Hasso
MOF Meister
MOF Meister
Standard

Hallo Eberhard,

in seiner Antwort auf meine Frage hatte er schon gescrieben

Zitat:

Hallo @Hasso und danke für dein Antwort,
die Zeilen stehen in einem Absatz.

Das hatte ich so verstanden, dass eine Zeile einem Absatz entspricht.

__________________

Gruß Hasso

Programmers don't die, they just GOSUB without RETURN

System Windows 7 Enterprise 64, Office 2013
Wenn dir mein Beitrag gefallen hat, kannst du ihn bewerten (mit dem Symbol links unten)
Hasso ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.02.2011, 17:32   #13
ebs17
MOF Guru
MOF Guru
Standard

@Hasso: Das wäre möglich, ist aber nicht zwingend voraus zu setzen. Daher frage ich auch nach der eigenen Definition. Worte haben manchmal unterschiedliche Inhalte.

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}
Dein Dankeschön: DBWiki=>Spende
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.02.2011, 12:31   #14
sedfasfz
Standard

Hallo Hasso,

hast du dir den Tread unter www.office-loesung.de mal angesehen? Dort gibt es keinen Hinweis auf ein TEXT-Problem. Vielmehr wird wird sofort auf die Tabellenlösung eingegangen.

Daher sehe ich den Einwand von Stefan75 bzgl. der unterschiedlichen Informationen in beiden Foren als berechtigt an.

Wenn schon Crossposting, dann sollten auch alle die gleichen Informationen erhalten.

Grüßle
Heinz
 
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 18.02.2011, 03:34   #15
stefan1975
Neuer Benutzer
Neuer Benutzer
Standard

Hallo,

@ all: Wir sollten uns aufs Thema konzentrieren.

Um nochmal auf die Definition von "Zeile" zurückzukommen...

Kann man nicht über die Zeilennummer
Code:

Range.Information (wdFirstCharacterLineNumber)
auf eine Zeile zugreifen?

Hier eine Fließtext-Alternative, die nicht alle Absätze des Dokuments durchlaufen muss:
Code:

Option Explicit

Sub finden_loeschen()
Dim feldname As String

feldname = ""
Do
    feldname = InputBox("Wonach soll gesucht werden?", "suchabfrage", feldname)
    Do
    With Selection.Find
        .Execute findtext:=feldname, Wrap:=wdFindContinue
        If .Found = True Then
            Selection.Expand Unit:=wdParagraph
            Selection.Delete
        End If
    End With
    Loop Until Selection.Find.Found = False
Loop Until MsgBox("Erneute Suche?", vbYesNo) = vbNo
End Sub
Viele grüße
stefan

__________________

---------- Office 2002/2003 ----------
Wissen heißt wissen, wo's steht oder wissen wer's weiß.
(frei nach Albert Einstein 1879 - 1955)
stefan1975 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:22 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.