Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Sicherheitshinweis ---> für registrierte Mitglieder <-
Verknüpfungen per VBA löschen
Gehe zu Seite 1, 2  Weiter
zurück: Literaturverzeichnis in Word bis 2003 weiter: Text von Excel ins Word übernehmen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Quo
Gast


Verfasst am:
13. Mai 2009, 12:48
Rufname:

Verknüpfungen per VBA löschen - Verknüpfungen per VBA löschen

Nach oben
       Version: Office 2003

Hallo VBA-Freaks,

wie kann man per VBA alle Verknüpfungen (auch die in den Kopf-/Fußzeilen) löschen?

...Fields.Unlink gilt nur im markierten Text - das reicht mir nicht wg. Kopf-/Fußzeilen Evil or Very Mad

Gibt es evtl. eine for each-Schleife? Confused

Vielen Dank für eure Hilfe

Quo
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
13. Mai 2009, 13:15
Rufname:
Wohnort: Leipzig


AW: Verknüpfungen per VBA löschen - AW: Verknüpfungen per VBA löschen

Nach oben
       Version: Office 2003

Hallo Quo,

ja, gibt es, etwa so:
Code:
Sub AlleFelderLoesen()

    Dim sty As Word.Range
   
    For Each sty In ActiveDocument.StoryRanges
        sty.Fields.Unlink
        Do While Not (sty.NextStoryRange Is Nothing)
            Set sty = sty.NextStoryRange
            sty.Fields.Unlink
        Loop
    Next sty

End Sub

ABER VORSICHT: Da werden wirklich alle Felder aufgelöst, auch Seitenzahlenfelder, Datumsfelder usw.

Wenn Du eine Auswahl treffen willst, kommst Du nicht drum herum, innerhalb der Schleife noch durch die Felder zu schleifen und deren Typ zu überprüfen, etwa so:
Code:
Sub AlleFelderLoesen()

    Dim sty As Word.Range
   
    For Each sty In ActiveDocument.StoryRanges
        Call FeldTyppruefen(sty)
        Do While Not (sty.NextStoryRange Is Nothing)
            Set sty = sty.NextStoryRange
            Call FeldTyppruefen(sty)
        Loop
    Next sty

End Sub

Sub FeldTyppruefen(ByRef sty As Word.Range)

    Dim fld As Word.Field
   
    For Each fld In sty.Fields
        Select Case fld.Type
            Case wdFieldPage, wdFieldDate   'und evtl. andere
            Case Else
                fld.Unlink
        End Select
    Next fld

End Sub

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

Guter Rat ist teuer!
Quo
Gast


Verfasst am:
13. Mai 2009, 13:35
Rufname:

AW: Verknüpfungen per VBA löschen - AW: Verknüpfungen per VBA löschen

Nach oben
       Version: Office 2003

Hallo Lisa,

vielen Dank für das tolle Makro! ABER ausgerechnet die Verknüpfung in der Kopfzeile wird auch mit deinem Makro nicht gelöscht. Evil or Very Mad

Evtl. brauche ich ein anderes Objekt anstelle StoryRanges?

Vielen Dank für weitere Vorschläge

Quo
MarcSLK
Word seit 4.0 (DOS


Verfasst am:
13. Mai 2009, 14:37
Rufname:

AW: Verknüpfungen per VBA löschen - AW: Verknüpfungen per VBA löschen

Nach oben
       Version: Office 2003

Hallo,

probier es mal mit:

Strg+Shift+F9.

Leider aus Zeitgründen nicht getestet.

Gruss

Marcus
MarcSLK1
Gast


Verfasst am:
13. Mai 2009, 14:40
Rufname:


AW: Verknüpfungen per VBA löschen - AW: Verknüpfungen per VBA löschen

Nach oben
       Version: Office 2003

Hallo,

vorher mit

Strg+A markieren

Gruss

Marcus
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
13. Mai 2009, 16:51
Rufname:
Wohnort: Leipzig

AW: Verknüpfungen per VBA löschen - AW: Verknüpfungen per VBA löschen

Nach oben
       Version: Office 2003

Hallo Quo,

ich hatte nicht damit gerechnet, dass in der Kopfzeile Textfelder stehen, in denen die Feldfunktionen untergebracht sind. Probier mal das hier:
Code:
Sub AlleFelderLoesen()

    Dim sty As Word.Range
    Dim shp As Word.Shape
    Dim rngshp As Word.Range
   
    For Each sty In ActiveDocument.StoryRanges
        If sty.StoryType = wdPrimaryHeaderStory Then
            For Each shp In ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Shapes
                If shp.TextFrame.HasText Then
                    Set rngshp = shp.TextFrame.TextRange
                    rngshp.Fields.Unlink
                End If
            Next shp
        End If
        sty.Fields.Unlink
'        Call FeldTyppruefen(sty)
        Do While Not (sty.NextStoryRange Is Nothing)
            Set sty = sty.NextStoryRange
            sty.Fields.Unlink
'            Call FeldTyppruefen(sty)
        Loop
    Next sty

End Sub

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

Guter Rat ist teuer!
Gast



Verfasst am:
16. Mai 2009, 10:44
Rufname:

AW: Verknüpfungen per VBA löschen - AW: Verknüpfungen per VBA löschen

Nach oben
       Version: Office 2003

Hallo Lisa, hallo Mark,

vielen Dank für eure Tips!

Leider werden immer nur die Verknüpfungen im Text gelöscht - die Verknüpfung in der Kopfzeile bleibt hartnäckig stehen.

Habt ihr evtl. noch eine Idee? Confused

Vielen Dank

Quo
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
16. Mai 2009, 11:40
Rufname:
Wohnort: Leipzig

AW: Verknüpfungen per VBA löschen - AW: Verknüpfungen per VBA löschen

Nach oben
       Version: Office 2003

Hallo Quo,

so richtig verstehe ich das nicht. Es handelt sich bei der "Verknüpfung" doch um eine Feldfunktion? Du kannst das feststellen, indem Du auf die Verknüpfung klickst und mit Shift F9 in die Funktions-Ansicht umschaltest, da solltest Du jetzt den Feldcode sehen. Ist das so? Also eine geschweifte Klammer mit einem Code darin:
Code:
{ LINK "D:\..." } oder
{ INCLUDEPICTURE "D:\..." }

oder etwas Ähnliches.

Wenn Du keinen Feldcode siehst, handelt es sich nicht um ein Feld, in dem Fall wird die Schleife zum Auflösen der Felder die "Verknüpfung" nicht finden. Falls das so ist, was meinst Du genau mit "Verknüpfung"?

Gibt es noch irgendwelche anderen Besonderheiten außer der Kopfzeile, die Du noch nicht erwähnt hast?
  1. Ist im Dokument die Option "Erste Seite anders" aktiviert?
  2. Ist im Dokument die Option "Gerade ungerade Seiten anders" aktiviert?
  3. In welcher Kopfzeile (mit Blick auf 1 und 2) steht die "Verknüpfung"? In der 1. Kopfzeile oder in der normalen? In einer geraden Kopfzeile? In der ungeraden?


Es würde die Sache erleichtern, wenn Du Dich registrieren und die Datei hochladen würdest:

Vorteile durch Registrierung und Login

Dateien hochladen

Gruß
Lisa
Quo
Excelprofi, VBA gut


Verfasst am:
19. Mai 2009, 10:48
Rufname:

AW: Verknüpfungen per VBA löschen - AW: Verknüpfungen per VBA löschen

Nach oben
       Version: Office 2003

Hallo Lisa,

erst einmal vielen Dank für deine Geduld und dein Engagement Very Happy

Ich habe mich registiert und lade die Datei hoch.

Wie du sehen kannst, gibt es im 409Test.doc 4 Verknüpfungen zu Excel in der Form {Link.....}. 3 Verknüpfungen im Fließtext, 1 Verknüpfung in der Kopfzeile auf Seite 2.

Das folgende Makro löscht Verknüpfungen in der Kopfzeile:

ActiveDocument.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
Selection.WholeStory
Selection.Fields.Update
Selection.Fields.Unlink

Leider funktioniert der erste Befehl von Excel aus (nicht mehr)! Evil or Very Mad

Deshalb suche ich nach einer Alternative Verknüpfungen in der Kopfzeile zu löschen.

Vielen Dank für weitere Tips

Quo
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
19. Mai 2009, 11:33
Rufname:
Wohnort: Leipzig

AW: Verknüpfungen per VBA löschen - AW: Verknüpfungen per VBA löschen

Nach oben
       Version: Office 2003

Hallo Quo,

ähem, die Datei hängt nicht dran. Wenn Du freigeschaltet bist, lade sie bitte hoch. Dann seh ich mir das an.

Gruß
Lisa
Quo
Excelprofi, VBA gut


Verfasst am:
19. Mai 2009, 13:15
Rufname:

AW: Verknüpfungen per VBA löschen - AW: Verknüpfungen per VBA löschen

Nach oben
       Version: Office 2003

Hallo Lisa,

hier der Anhang.

DANKE!

Quo



409Test.doc
 Beschreibung:

Download
 Dateiname:  409Test.doc
 Dateigröße:  88.5 KB
 Heruntergeladen:  20 mal

Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
19. Mai 2009, 16:51
Rufname:
Wohnort: Leipzig

AW: Verknüpfungen per VBA löschen - AW: Verknüpfungen per VBA löschen

Nach oben
       Version: Office 2003

Hallo Quo,

so, jetzt habe ich es gefunden. Prinzipiell funktioniert die obige Schleife, jedoch mit der Spezialität, dass in der Kopfzeile erst noch ein Positionsrahmen eingefügt ist, der eine Tabelle enthält, die das Feld enthält ... Die Kopfzeile, die nur den Positionsrahmen enthält, "sieht" für Word "leer aus". Deswegen füge ich mal ein Leerzeichen ein, dann "erkennt" Word, dass die Kopfzeile nicht leer ist.
Nimm mal diese Schleife:
Code:
Sub AlleFelderLoesen()

    Dim sty As Word.Range
    Dim shp As Word.Shape
    Dim rngshp As Word.Range
   
    For Each sty In ActiveDocument.StoryRanges
        If sty.StoryType = wdPrimaryHeaderStory Then
            For Each shp In ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Shapes
                If shp.TextFrame.HasText Then
                    Set rngshp = shp.TextFrame.TextRange
'                    rngshp.Fields.Unlink
                    Call FelderLoesen(rngshp)
                End If
            Next shp
        End If
'        sty.Fields.Unlink
        Call FelderLoesen(sty)
        Do While Not (sty.NextStoryRange Is Nothing)
            Set sty = sty.NextStoryRange
'            sty.Fields.Unlink
            Call FelderLoesen(sty)
        Loop
    Next sty

End Sub

Sub FelderLoesen(ByVal sty As Word.Range)

    Select Case sty.StoryType
        Case 6 To 11
            If Len(sty.Text) = 0 Then
                sty.Text = " "
            End If
    End Select
    sty.Fields.Unlink

End Sub

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

Guter Rat ist teuer!
Gast



Verfasst am:
19. Mai 2009, 21:15
Rufname:

AW: Verknüpfungen per VBA löschen - AW: Verknüpfungen per VBA löschen

Nach oben
       Version: Office 2003

Hallo Lisa,

ich habe soeben dein neues Makro im 409Test.doc getestet. Ich traue mich es kaum zu sagen: Es tut mir schrecklich leid, aber die Verknüpfung in der Kopfzeile bleibt stehen. Sad

Inzwischen habe ich mir wie folgt beholfen: Da es nur zwei Seiten sind habe ich die Tabelle mit der Verknüpfung in der Kopfzeile gelöscht und einfach in den Fließtext kopiert- VOILA! Idea

Eine direkte Lösung wäre "ehrenhalber" immer noch interessant.

Vielen Dank

Quo
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
19. Mai 2009, 21:43
Rufname:
Wohnort: Leipzig

AW: Verknüpfungen per VBA löschen - AW: Verknüpfungen per VBA löschen

Nach oben
       Version: Office 2003

Hallo quo,

das ist ja wirklich äußerst seltsam.

Ich habe die Schleife in Deinem Dokument eingesetzt und gerade nochmal mehrfach probiert.
Ich lade es jetzt nochmal mit Code hoch. Bei mir lasse ich das Makro laufen und es löst alle (!) Verknüpfungen auf. Bitte lade mal die Datei herunter, ich benenne sie mal 410.doc und lass das Makro daraus laufen.

Nein, aber wirklich, es leuchtet mir nicht ein, dass das bei Dir nicht funktionieren soll, wo es bei mir in DIESER DATEI funktioniert.

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

Guter Rat ist teuer!



410.doc
 Beschreibung:

Download
 Dateiname:  410.doc
 Dateigröße:  95.5 KB
 Heruntergeladen:  28 mal

Quo
Excelprofi, VBA gut


Verfasst am:
20. Mai 2009, 08:05
Rufname:


AW: Verknüpfungen per VBA löschen - AW: Verknüpfungen per VBA löschen

Nach oben
       Version: Office 2003

Hallo Lisa,

in deinem 410.doc funktioniert das Makro tatsächlich perfekt. Im 409Test.doc bleibt bei mir die Verknüpfung in der Kopfzeile stehen. Sehr seltsam Confused

Vielleicht finde ich noch den Unterschied in den Kopfzeilen heraus.

Nochmals vielen Dank für deine tolle Unterstützung Exclamation

Schönes langes Wochenende

Quo
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Gehe zu Seite 1, 2  Weiter
Diese Seite Freunden empfehlen

Seite 1 von 2
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: Verknüpfungen in bearbeitbaren Text umwandeln 2 SerafinaBeja 934 25. Jan 2014, 13:02
J_Jay Verknüpfungen in bearbeitbaren Text umwandeln
Keine neuen Beiträge Word Serienbriefe: Problem mit INCLUDEPICTURE => wie leere Bilder löschen? 1 Heka 191 24. Sep 2013, 19:08
MarkMH_K Problem mit INCLUDEPICTURE => wie leere Bilder löschen?
Keine neuen Beiträge Word Serienbriefe: Serienbrief per Outlook, Adressquelle Excel 6 mohi 22869 20. Feb 2013, 15:26
Pseudo_Gast Serienbrief per Outlook, Adressquelle Excel
Keine neuen Beiträge Word Serienbriefe: Word Dokument per Klick auf Button per mail versenden 3 lexi3112 2274 19. Dez 2012, 16:27
Alex3112 Word Dokument per Klick auf Button per mail versenden
Keine neuen Beiträge Word Serienbriefe: Einzelne Seiten aus Word per Email versenden 0 NicoRose 1156 09. Jan 2012, 16:08
NicoRose Einzelne Seiten aus Word per Email versenden
Keine neuen Beiträge Word Serienbriefe: Word Serienbrief als pdf per email verschicken 3 vitalik_1984 15548 15. Dez 2011, 21:54
mumpel Word Serienbrief als pdf per email verschicken
Keine neuen Beiträge Word Serienbriefe: Excel-Tabelle per Serienbrief dynamisch in Word 0 Panix 1220 05. Jul 2011, 12:55
Panix Excel-Tabelle per Serienbrief dynamisch in Word
Keine neuen Beiträge Word Serienbriefe: Serienbrief als einzelne PDFs per e-Mail versenden? 1 marlis 3049 09. Aug 2010, 13:41
Lord_Movie Serienbrief als einzelne PDFs per e-Mail versenden?
Keine neuen Beiträge Word Serienbriefe: Verknüpfungen von Wörtern - Kein Querverweis! 1 Sepp1234 718 19. Mai 2010, 12:40
mojos Verknüpfungen von Wörtern - Kein Querverweis!
Keine neuen Beiträge Word Serienbriefe: Neues Leerdokument mit Verknüpfungen in andere Dokumente 1 alex.krumnow 1203 01. Jul 2009, 23:27
charlybrown Neues Leerdokument mit Verknüpfungen in andere Dokumente
Keine neuen Beiträge Word Serienbriefe: Excel verknüpfungen weg 4 Sven D. 2044 26. Apr 2009, 18:16
Sven D. Excel verknüpfungen weg
Keine neuen Beiträge Word Serienbriefe: .mdb per e-mail 2 schokomo 999 17. Apr 2009, 09:20
Gast .mdb per e-mail
 

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