Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Alle Zeilen mit Einzug x bis Einzug y finden
zurück: Aufgezeichnetes Makros und deren Integration weiter: Bildwasserzeichen - Pfad ändern Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Offen Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Nachtkrabb
Im Profil kannst Du frei den Rang ändern


Verfasst am:
06. Sep 2007, 10:30
Rufname:

Alle Zeilen mit Einzug x bis Einzug y finden - Alle Zeilen mit Einzug x bis Einzug y finden

Nach oben
       Version: Office 2003

Hi,

angenommen ich will mit nem Suchen&Ersetzen - Makro alle List Bullet Formatvorlagen selecten, die einen linken Einzug zwischen 2,6 und 3,1 haben, wie drück ich das denn aus?



das wäre der code für einen expliziten Wert von 3.07:

Selection.Find.Style = ActiveDocument.Styles("List Bullet")
With Selection.Find.ParagraphFormat
.LeftIndent = CentimetersToPoints(3.07)
.SpaceBeforeAuto = False
.SpaceAfterAuto = False
.CharacterUnitLeftIndent = 0
End With
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
07. Sep 2007, 14:53
Rufname:
Wohnort: Leipzig


AW: Alle Zeilen mit Einzug x bis Einzug y finden - AW: Alle Zeilen mit Einzug x bis Einzug y finden

Nach oben
       Version: Office 2003

Hallo Nachtkrabb,

kannst Du doch mit "And" verknüpfen:
Code:
    If Selection.ParagraphFormat.LeftIndent > CentimetersToPoints(2.6) And _
        Selection.ParagraphFormat.LeftIndent < CentimetersToPoints(3.1) Then
        MsgBox "Einzug zwischen 2,6 und 3,1!"
    End If

_________________
Sei doch so nett und gib eine Rückmeldung, ob es klappt!
Gruß, Lisa

Guter Rat ist teuer!
Nachtkrabb
Im Profil kannst Du frei den Rang ändern


Verfasst am:
10. Sep 2007, 15:08
Rufname:

AW: Alle Zeilen mit Einzug x bis Einzug y finden - AW: Alle Zeilen mit Einzug x bis Einzug y finden

Nach oben
       Version: Office 2003

Hallo Lisa,
danke für die Antwort, in einem simplen Testdokument hat das schon mal funktioniert! Smile Tuts aber nicht mehr, sobald auch andere Formatierungen im Dokument sind.
Ich bin in VBA-Syntax leider nur marginal bewandert Rolling Eyes - an welcher Stelle füg ich denn die If-Schleife in meinem Makro ein und wie schmück ich sie aus? Ich möchte folgendes erreichen:

In einem Alt-Dokument hab ich 4 Bullet-Listen-Level - unglücklicherweise alles manuell mit Tabs formatiert. Razz Jetzt will ich das per Makro in klar unterscheidbare List Level retten; alles zwischen Indent 0 und 1 --> "Bullet Level 1", alles zwischen 1 und 2 --> "Bullet Level 2", usw.

So hab ichs bisher:


Code:
Selection.Find.ClearFormatting
    Selection.Find.Style = ActiveDocument.Styles("List Bullet")
   
If Selection.ParagraphFormat.LeftIndent > CentimetersToPoints(0) And _
        Selection.ParagraphFormat.LeftIndent < CentimetersToPoints(1) Then
       
   MsgBox "Einzug zwischen 0 und 1!"

       Selection.Find.Replacement.ClearFormatting
    Selection.Find.Replacement.Style = ActiveDocument.Styles( _
        "list_bullet_1")

    With Selection.Find
        .Text = ""
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
  End If
End Sub
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
16. Sep 2007, 13:39
Rufname:
Wohnort: Leipzig

AW: Alle Zeilen mit Einzug x bis Einzug y finden - AW: Alle Zeilen mit Einzug x bis Einzug y finden

Nach oben
       Version: Office 2003

Hallo Nachtkrabb,

ich würde das trotzdem anders machen. Auch wenn der Code möglicherweise bei dem Durchlauf durch das ganze Dokument etwas Zeit benötigt, würde ich einfach durch alle Absätze schleifen und eine Formatvorlage zuweisen:
Code:
Sub EinrueckungenVereinheitlichen()

    Dim Absatz As Word.Paragraph
    Dim Einzug As Single
   
    For Each Absatz In ActiveDocument.Paragraphs
        With Absatz
            Einzug = Absatz.LeftIndent
            Select Case Einzug
                Case 0 To 1
                    .Range.Style = "list_bullet_1"
                Case 1 To 2
                    .Range.Style = "list_bullet_2"
                Case 2 To 3
                    .Range.Style = "list_bullet_3"
                Case 3 To 4
                    .Range.Style = "list_bullet_4"
            End Select
        End With
    Next Absatz

End Sub

Das ist natürlich nur ein Bsp. Für andere Werte lassen sich im gleichen Durchlauf noch andere Formatvorlagen festlegen. Und Voraussetzung ist natürlich, dass die Formatvorlagen "list_bullet_1" bis "...4" auch existieren, klar.

_________________
Sei doch so nett und gib eine Rückmeldung, ob es klappt!
Gruß, Lisa

Guter Rat ist teuer!
Gast



Verfasst am:
17. Sep 2007, 13:49
Rufname:

AW: Alle Zeilen mit Einzug x bis Einzug y finden - AW: Alle Zeilen mit Einzug x bis Einzug y finden

Nach oben
       Version: Office 2003

Das Prinzip, Absatz für Absatz durchzugehn ist natürlich noch toller. Smile

Das Makro funktioniert bei mir aber noch nicht so 100%:
- Bisher werden alle Absätze nur in list_bullet_1 gewandelt. Es gibt aber definitiv auch die andren 3 Formatvorlagen und im Dokument auch die passenden Einzüge...
- es erwischt nicht alle Absätze/wandelt sie in list_bullet_1, andererseits werden auch nicht-Bulletlisten konvertiert. An welcher stelle definier ich denn wie, dass nur der Style "List Bullet" berücksichtigt wird?
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
17. Sep 2007, 14:21
Rufname:
Wohnort: Leipzig

AW: Alle Zeilen mit Einzug x bis Einzug y finden - AW: Alle Zeilen mit Einzug x bis Einzug y finden

Nach oben
       Version: Office 2003

Hallo Nachtkrabb,

ja, das ist klar. Das war ein Beispiel, wie man durch die Absätze schleift und auf die Einzüge reagiert. Die Styles müsste man dann noch extra testen und mit einbauen. Das Problem ist hier, dass Du offenbar alles auf einen Ritt erledigen willst. Ich würde Schritt für Schritt das Dokument bearbeiten.

Klar lässt sich alles in EIN Makro einbauen, aber dafür muss man selbst auch erst mal genau wissen, was das Makro machen soll. Das muss ganz klar formuliert sein.

Ich kann Dir dabei gern bei Einzelfragen helfen, jedoch die ganze Prozedur hier gemeinsam zu schreiben, dürfte etwas aufwendig werden, weil ich ja immer nur auf die Frage antworten kann und zwischendurch auch noch ein bisschen arbeiten muss. Very Happy

Also die Frage in Deiner letzten Rückfrage heißt: Wie werte ich die Formatvorlage aus? Oder habe ich das falsch verstanden. Die Formatvorlage kann man so auswerten:
Code:
Sub Test()

    Dim Absatz As Word.Paragraph
    Dim FV As Word.Style
   
    For Each Absatz In ActiveDocument.Paragraphs
        With Absatz
            Set FV = Absatz.Range.Style
            If FV = "List_Bullet_1" Then
                MsgBox "Dieser Absatz hat List_Bullet_1"
                Absatz.Range.Select
            End If
            Set FV = Nothing
        End With
    Next Absatz

End Sub


Weiter ist mir der Sinn des Ganzen bis jetzt noch nicht klar. Wenn im Dokument Formatvorlagen verwendet wurden, müssen diese doch gar nicht ersetzt werden. Dann reicht es doch, die Formatvorlage zu ändern. Damit werden alle mit dieser FV formatierten Absätze "erwischt".

Also vielleicht sagst Du noch mal genau, was ablaufen soll.

_________________
Sei doch so nett und gib eine Rückmeldung, ob es klappt!
Gruß, Lisa

Guter Rat ist teuer!
Nachtkrabb
Im Profil kannst Du frei den Rang ändern


Verfasst am:
17. Sep 2007, 15:55
Rufname:


AW: Alle Zeilen mit Einzug x bis Einzug y finden - AW: Alle Zeilen mit Einzug x bis Einzug y finden

Nach oben
       Version: Office 2003

Hallo Lisa,

das ist so: ich hab ne neue Dot gebastelt, die ich Alt-Dokumenten hinterlegen möchte, um aus deren Inhalt relativ automatisiert OnlineHilfen generieren zu können. Die alten Stile sollen per Makros auf neue überführt werden.
Probleme machen da aber vor allem alte Listen, die vorher mit dem standardmäßigen "List Bullet" formatiert waren. Verschiedene Einrückungsebenen wurden mit Tabs gemacht, was ansich ok sein mag, aber natürlich kritisch ist, wenn man Dokumente automatisiert weiterverarbeiten möchte... Rolling Eyes
Die einzige Möglichkeit, die (bis zu 4) Listen-ebenen zu unterscheiden, scheint der Einzug zu sein - über Tabs is zu wacklig, gleiche Level haben teilweise unterschiedlich viele Trippelschritte... Twisted Evil

Das zum Ziel, jetzt probier ich mit deinem Tipp mal bissel rum und melde mich gleich Smile
edit: ich komm heut gar nicht mehr zum probieren...

Grüßle Sebastian
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Word Serienbriefe: Leere Zeilen Unterdrücken beim Serienbrief 2 Scor3s 461 16. Jul 2013, 16:33
Scor3s Leere Zeilen Unterdrücken beim Serienbrief
Keine neuen Beiträge Word Formate: Formatvormatvorlage ändert automatisch den Einzug links 2 Finnxyz 1542 30. März 2011, 08:42
Gast Formatvormatvorlage ändert automatisch den Einzug links
Keine neuen Beiträge Word Formate: Einzug nach Zeilenumbruch 2 Gast 1929 06. Jan 2011, 18:59
Gast Einzug nach Zeilenumbruch
Keine neuen Beiträge Word Formate: In Word bestimmte Zeilen sperren und andere schreibbar lasse 4 Chlausbub 2587 20. Jul 2010, 11:47
Chlausbub In Word bestimmte Zeilen sperren und andere schreibbar lasse
Keine neuen Beiträge Word Formate: 30 Zeilen à 60 Anschläge für Word 2002 8 filinem 8476 30. Jun 2010, 18:20
Thomas1971 30 Zeilen à 60 Anschläge für Word 2002
Keine neuen Beiträge Word Formate: Einzug bei Fußnoten 1 Josephine 2448 09. Jun 2010, 23:31
G.O.Tuhls Einzug bei Fußnoten
Keine neuen Beiträge Word Formate: Bei einzelnen Zeilen über den Rand hinaus schreiben 3 Carl5 2876 03. Jun 2009, 12:06
hmueller333 Bei einzelnen Zeilen über den Rand hinaus schreiben
Keine neuen Beiträge Word Formate: Aufzählung: Abstand zum Rand und Einzug nachträglich ändern 1 Toby1001 5692 21. Feb 2009, 10:07
Wolfgang 1958 Aufzählung: Abstand zum Rand und Einzug nachträglich ändern
Keine neuen Beiträge Word Formate: Word2007-Dokument mit70 Zeichen pro Zeile und 33 Zeilen pro 2 Rikibu 3065 11. Okt 2008, 12:48
Gast Word2007-Dokument mit70 Zeichen pro Zeile und 33 Zeilen pro
Keine neuen Beiträge Word Formate: Einzug --> Sondereinzug "Hängend" 7 kaufi 13708 17. Jul 2008, 01:52
Gast Einzug --> Sondereinzug "Hängend"
Keine neuen Beiträge Word Serienbriefe: Serienbrief > Excel > Zusammenfassen von Zeilen 2 ase2005 3261 21. Mai 2008, 11:29
Betty2004 Serienbrief > Excel > Zusammenfassen von Zeilen
Keine neuen Beiträge Word Formate: Zeilen in Word hervorheben 5 Michaela1983 16889 07. Apr 2008, 08:35
Gast Zeilen in Word hervorheben
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Word VBA