Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Tabelle an bookmark einfügen
Gehe zu Seite 1, 2  Weiter
zurück: Dokument als Mail-Anhang versenden, Dateiname vorgeben weiter: Textformularfelder in Tabelle addieren 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
fredf
Gast


Verfasst am:
24. Apr 2009, 13:58
Rufname:

Tabelle an bookmark einfügen - Tabelle an bookmark einfügen

Nach oben
       Version: Office 2003

Hi zusammen!

Vielleicht hat jemand ja noch eine andere Idee wie ich eine bereits vorhandene Tabelle an die stelle einer Bookmark einfügen kann.

Ich mach es bisher so:
Code:


Sub tabelle_einfügen()

 boxanz = ThisDocument.Bookmarks.Count

For j = 1 To boxanz

                Set m_WordDocument = CreateObject(pfad)
                Word.Application.Visible = True
               
                Selection.Tables(1).Select
                Selection.Copy
               
                ActiveDocument.Close
               
                ThisDocument.Activate
                ThisDocument.Bookmarks(yeah).Range.Select
                Selection.Paste

next j

end sub


Vielleicht kennt ja noch jemand eine andere Methode, das wäre fein Smile

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


Verfasst am:
24. Apr 2009, 19:26
Rufname:
Wohnort: Leipzig


AW: Tabelle an bookmark einfügen - AW: Tabelle an bookmark einfügen

Nach oben
       Version: Office 2003

Hallo Fred,

etwa so ähnlich:
Code:
Sub Tabelle_Einfuegen()

    Dim docZiel As Word.Document
    Dim docQuelle As Word.Document
    Dim j As Long
   
    Set docZiel = ActiveDocument
   
    Set docQuelle = Application.Documents.Open(FileName:="D:\test\blabla.doc")
    docQuelle.Tables(1).Range.Copy
   
    For j = 1 To docZiel.Bookmarks.Count
        If docZiel.Bookmarks(j).name = "yeah" Then
            docZiel.Bookmarks(j).Range.Paste
            Exit For
        End If
    Next j
   
    docQuelle.Close wdDoNotSaveChanges
    Set docQuelle = Nothing

End Sub

Besser wäre es, wenn man genau weiß, was Du da machst. Denn innerhalb der Schleife x-mal das Dokument zu öffnen und wieder zu schließen (wie in Deinem Beispiel) ist ja komplett sinnlos.
Wenn Du das Ganze innerhalb von Word machst, brauchst Du kein CreateObject.

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

Guter Rat ist teuer!
Gast



Verfasst am:
28. Apr 2009, 10:02
Rufname:

AW: Tabelle an bookmark einfügen - AW: Tabelle an bookmark einfügen

Nach oben
       Version: Office 2003

Hi!

Cool dein Code is natürlich um einiges besser als meiner, werde ihn gleich mal bei mir integrieren! Vielen Dank!

Es ist übrigens nicht so das ich immer wieder dasselbe Dokument in der Schleife öffne, sondern immer andere, hatte den Code der einfachheitshalber aufs nötigste herruntergebrochen Smile

Gruß und nochmal vielen herzlichen Dank!
Fredf
fredf
Gast


Verfasst am:
28. Apr 2009, 12:11
Rufname:

AW: Tabelle an bookmark einfügen - AW: Tabelle an bookmark einfügen

Nach oben
       Version: Office 2003

Hi!

Mir is gerade was seltsames aufgefallen und ich weiß nicht woher es kommen mag:
Obwohl ich keine Textmarke mit dem Namen "IDX" im Dokument habe, erscheint sie nach dem ausführen meines Makros? Wie kommt sowas?Kann das was damit zu tun haben das es scheinbar nur Tabellen betrifft die auf der Seite nach der Textmarke die Tabelle haben?

Ich finds schon komisch, wäre toll wenn jemand ein ähnliches problem mal hatte, ich kann dazu im Netz nämlich nichts finden!

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


Verfasst am:
28. Apr 2009, 12:52
Rufname:
Wohnort: Leipzig


AW: Tabelle an bookmark einfügen - AW: Tabelle an bookmark einfügen

Nach oben
       Version: Office 2003

Hallo Fredf,

das ist ein "Abfallprodukt" bei Copy und Paste. Ich hab gerade nochmal ein Beispiel gebaut, wie Du an einer Bookmark eine Tabelle aus einem anderen Dokument einfügst ohne Copy & Paste:
Code:
Sub TabellenKopieren()

    Dim docA As Document
    Dim docB As Document
    Dim tblB As Word.Table
    Dim bmk As Word.Bookmark
   
    Set docA = ActiveDocument

    Set docB = Documents.Open("D:\test\blabla.doc")
    If docB.Tables.Count > 0 Then
        Set tblB = docB.Tables(1)
    End If
   
    If docA.Bookmarks.Exists("yeah") Then
        Set bmk = docA.Bookmarks("yeah")
        bmk.Range.FormattedText = tblB.Range.FormattedText
    End If
   
    Set tblB = Nothing
    docB.Close wdDoNotSaveChanges
    Set bmk = Nothing
    Set docB = Nothing
    Set docA = Nothing

End Sub

Da treten solche Nebeneffekte nicht auf.

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

Guter Rat ist teuer!
fredf
Gast


Verfasst am:
28. Apr 2009, 13:18
Rufname:

AW: Tabelle an bookmark einfügen - AW: Tabelle an bookmark einfügen

Nach oben
       Version: Office 2003

Hi Lisa!

Aha ein Abfallprodukt also, komisch das das beim einfügen von 3 Probetabellen nie aufgetreten ist. Egal, dein Hinweis is jedenfalls Gold wert Smile

Lieder tuts dein vorgeschlagener Code nicht 100%. Wenn ich ihn benutze, haut Word, den letzten Satz vor der Bookmark immer in die erste Tabellenzelle der eingefügten Tabelle. Rolling Eyes Was also tun?
Gruß
Fredf
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
28. Apr 2009, 13:46
Rufname:
Wohnort: Leipzig

AW: Tabelle an bookmark einfügen - AW: Tabelle an bookmark einfügen

Nach oben
       Version: Office 2003

Hallo Fred,

ist es eine geschlossene Bookmark? Was meinst Du mit "Satz"? Den letzten Absatz vor der Bookmark? Dann setz die Bookmark in einen eigenen Absatz. Oder probier mal so:
Code:
Sub TabellenKopieren()

    Dim docA As Document
    Dim docB As Document
    Dim tblB As Word.Table
    Dim bmk As Word.Bookmark
    Dim rng As Word.Range
   
    Set docA = ActiveDocument
    Set docB = Documents.Open("D:\Nora\test\RangeInsertFile.doc")
   
    If docB.Tables.Count > 0 Then
        Set tblB = docB.Tables(1)
    End If
   
    If docA.Bookmarks.Exists("yeah") Then
        Set bmk = docA.Bookmarks("yeah")
        Set rng = bmk.Range.Duplicate
        rng.MoveEnd wdParagraph
        rng.Collapse wdCollapseEnd
        rng.FormattedText = tblB.Range.FormattedText
    End If
   
    Set tblB = Nothing
    docB.Close wdDoNotSaveChanges
    Set rng = Nothing
    Set bmk = Nothing
    Set docB = Nothing
    Set docA = Nothing

End Sub

Wenn das noch nicht so funktioniert, wie gewünscht, bitte möglichst genau die Ausgangssituation schildern. Wo steht eine Bookmark (offen/geschlossen)? Wo soll eingefügt werden, davor, danach, anstatt? usw. Ich kann ja Deine Dokumente nicht sehen und bin auf Deine exakte Beschreibung angewiesen.

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

Guter Rat ist teuer!
fredf
Gast


Verfasst am:
28. Apr 2009, 14:16
Rufname:

AW: Tabelle an bookmark einfügen - AW: Tabelle an bookmark einfügen

Nach oben
       Version: Office 2003

Tausend Dank Lisa!!!

Der erweiterte Code von dir tut genau was er soll Smile
Danke, danke für deine Mithilfe, ohne dich wäre ich nie auf den IDX-Müll aufmerksam geworden!!! Smile

Gut das es dich hier gibt!
Gruß
fredf
fredf
Gast


Verfasst am:
28. Apr 2009, 14:47
Rufname:

AW: Tabelle an bookmark einfügen - AW: Tabelle an bookmark einfügen

Nach oben
       Version: Office 2003

Huhu Lisa!

Und da bin ich wieder, kaum hab ich es über mehr als 7 einzufügene Tabellen in einer Schleife laufen lassen ist das alte Problem wieder da: es wird eine IDX Bookmark erstellt Rolling Eyes Trotz deines tollen Programms oben.....

muß vielleicht der Zwischenspeicher ab und zu aufgeräumt werden?

Ich bin ratlos!
Was soll mein Programm grundsätzlich mal machen?
Es soll an per Hand eingefügte offene Bookmarken Tabellen aus verschiedenen Rtf Dateien (Dateiname der Rtf-Datei=Bookmarkname und alle RTF-Dateien innerhalb eines Ordners) einfügen und zwar hinter die Bookmark.

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


Verfasst am:
28. Apr 2009, 15:02
Rufname:
Wohnort: Leipzig

AW: Tabelle an bookmark einfügen - AW: Tabelle an bookmark einfügen

Nach oben
       Version: Office 2003

Hallo Fred,

leider kann ich es hier nicht nachvollziehen. Ich habe hier allerdings Word 2002 und habe nur Tabellen aus anderen Word-Dateien (*.doc" eingefügt. Deine RTF-Dateien werden ja vermutlich aus einer Fremdanwendung erzeugt. Bei mir werden keinerlei "IDX-Bookmarks" erzeugt. (Ich hatte das mal bei Copy/Paste, es war aber, wenn ich Excel-Tabellen in Word eingefügt habe, ich kriege es im Augenblick nicht reproduziert, erinnere mich nur, dass da mal was war.)

Aber mal pragmatisch: Machen die IDX-Bookmarks irgendetwas, das den Ablauf stört? Läuft der Code trotzdem fehlerfrei durch? Wie heißen die genau? Sind es offene oder geschlossene?

Falls das zutrifft, lösch doch am Ende der Schleife einfach mit einer Schleife die IDX-Bookmarks:
Code:
Sub UeberzaehligeBookmarksLoeschen()

    Dim bkm As Word.Bookmark
   
    For Each bkm In ActiveDocument.Bookmarks
        If InStr(1, bkm.name, "IDX", vbBinaryCompare) > 0 Then
            bkm.Delete
        End If
    Next bkm

End Sub

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

Guter Rat ist teuer!
fredf
Gast


Verfasst am:
28. Apr 2009, 15:40
Rufname:

AW: Tabelle an bookmark einfügen - AW: Tabelle an bookmark einfügen

Nach oben
       Version: Office 2003

Hi!

Wenn ich die Dateien als doc einlese (hab sie eben mal schnell umgewandelt)macht das keinen Unterschied, der Fehler besteht trotzdem weiter!!

Ja, leider stören diese IDX-Bookmarks das Programm, ich weiß nicht inwiefern, aber sobald sie auftauchen werden die Tabellen danach nicht mehr eingefügt! Schon komisch irgendwie, wenn ich nur 5 Tabellen einlese gibts keine Probleme *seufz*

Es scheint aber in der Tat so zu sein das diese IDX-Bookmarks immer nur dann auftauchen wenn ein Bookmark in der letzten Zeile einer Seite steht (also ganz normal, keine Fußnote oder ähnliches), dann nämlich wird auf der nächsten Seite in der tabelle diese IDX-Bookmark gesetzt!!!

Vielleicht liegts ja auch an meinem Programm, deshalb schreib ich den Code hier mal hin. Habe langsam auch das Gefühl ein bißchen fehlerblind zu sein.
Code:
Sub tabelle_einfügen()

        Dim m_WordDocument As Word.Document
        Dim docQuel As Word.Document
        Dim tbl As Word.Table
        Dim bmk As Word.Bookmark
        Dim strDateiname As String
        Dim yeah As String
        Dim strPfad As String
        Dim pfad As String
        Dim j As Long
        Dim rng As Range
       
        Set m_WordDocument = ThisDocument
               
        bmanz = ThisDocument.Bookmarks.Count
       
        With Application.Dialogs(wdDialogFileOpen)
            If .Display = -1 Then
                strDateiname = .Name
            End If
        End With

        strPfad = CurDir
           
        For j = 1 To bmanz
            yeah = ThisDocument.Bookmarks(j).Name
            'MsgBox yeah
                     
            pfad = strPfad & "\" & yeah & ".rtf"
               
                'existiert die Tabelle überhaupt?
                If Dir(pfad) <> "" Then
               
                    Set m_WordDocument = ThisDocument
                    Set docQuel = Application.Documents.Open(FileName:=pfad)
                   
                    Set tbl = docQuel.Tables(1)
                   
                    Set bmk = m_WordDocument.Bookmarks(yeah)
                    MsgBox yeah
                    Set rng = bmk.Range.Duplicate
                    rng.MoveEnd wdParagraph
                    rng.Collapse wdCollapseEnd
                    rng.FormattedText = tbl.Range.FormattedText
                                       
                    Set tbl = Nothing
                    docQuel.Close wdDoNotSaveChanges
                    Set bmk = Nothing
                    Set docQuel = Nothing
                   
                    Set rng = Nothing
                    Set m_WordDocument = Nothing
                End If
           
            'Set m_WordDocument = Nothing
        Next j
         
End Sub

Vielleicht läuft die Schleife ja aufgrund meines Codes nicht ganz über alle Bookmarks?!

Gruß
Fredf

PS: Es sind übrigens offene Bookmarken, ganz normale als nix spezielles dran!
fredf
Gast


Verfasst am:
28. Apr 2009, 16:26
Rufname:

AW: Tabelle an bookmark einfügen - AW: Tabelle an bookmark einfügen

Nach oben
       Version: Office 2003

Ich nochmal!

Vergesst was ich über den Beginn einer neuen Seite im Zusammenhang mit der IDX-Bookamark gesagt habe, es gibt nämlich auch Fälle wo ebenfalls die Tabelle auf eine neue Seite eingefügt wird, dennoch keine IDX Bookmark gesetzt wird!

Wie ich mittlerweile aber rausgefunden habe, wird sobald Tabelle 6 eingefügt wurde, zwar der Schleifenindex auf 7 erhöht, jedoch danach statt Tabelle 7 nochmal Tabelle 6 eingelesen und ich weiß nicht warum!!!

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


Verfasst am:
28. Apr 2009, 16:49
Rufname:
Wohnort: Leipzig

AW: Tabelle an bookmark einfügen - AW: Tabelle an bookmark einfügen

Nach oben
       Version: Office 2003

Hallo Fred,

fang doch mal die Schleife mit 7 an und sieh, wie es dann nach oben weitergeht.

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

Guter Rat ist teuer!
fredf
Gast


Verfasst am:
28. Apr 2009, 17:04
Rufname:

AW: Tabelle an bookmark einfügen - AW: Tabelle an bookmark einfügen

Nach oben
       Version: Office 2003

Okay ich weiß jetzt zumindest was mein Programm macht:

Es läuft ganz normal bis ca Tabelle 5 , dann wird nachdem Tabelle 6 eingefügt wurde eine IDX-Bookmark in die Tabelle 6 gesetzt (WARUM???Ich habe extra nochmal neue willkürliche Bookmarken gesetzt, das Problem bleibt).
Zack, mein Zählerindex
Code:
For j = 1 To ThisDocument.Bookmarks.Count 'geändert im Vergleich zu oben


erhöht sich um eins. Da die Bookmarks scheinbar Alphabetisch druchnumeriert sind ist jetzt die erste Bookmark die Idx-Textmarke (zur Info, meine andern Marken beginnen alle mit Tab). Deshalb wird zwar jetzt j=7 aufgerufen, aber die Bookmark 7 ist jetzt die die eben 6 war, also wird nochmal tabelle 6 aufgerufen und eingefügt, danach geht alles wie immer (okay ich hab danach nur noch 2 Tabellen, kann sein das wenn ich mehr generiere das ganze nochmal auftaucht)!

Leider hilft es nicht die Idx-Marke in der Schleife zu löschen, der Zähler bleibt trotzdem hoch und die Marke wird auch scheinabr nicht gelöscht! Sehr seltsam, den wenn man Lisas Code nach dem makro nochmal separat aufruft, dann wird sie gelöscht!

Da ich mich aber ja nicht verlassen kann das die andern nutzer ihre Textmarken nicht ganz anders benennen werden, muß ich es irgendwie schaffen die IDX-Marken zu umgehn! Wer also eine Idee hat, ich wär wirklich wirklich dankbar!

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


Verfasst am:
28. Apr 2009, 17:19
Rufname:
Wohnort: Leipzig


AW: Tabelle an bookmark einfügen - AW: Tabelle an bookmark einfügen

Nach oben
       Version: Office 2003

Hallo Fred,

dann teste den Namen der Bookmark. Nur, falls im Namen nicht "IDX" enthalten ist, wird weitergemacht, etwa so:
Code:
      For j = 1 To bmanz
            yeah = ThisDocument.Bookmarks(j).Name
            'MsgBox yeah
           
            If InStr(1, yeah, "IDX", vbBinaryCompare) = 0 Then
            'wenn "IDX" im Namen der Bookmark nicht vorkommt
           
                pfad = strPfad & "\" & yeah & ".rtf"
                   
                    'existiert die Tabelle überhaupt?
                    If Dir(pfad) <> "" Then
                   
                        Set m_WordDocument = ThisDocument
                        Set docQuel = Application.Documents.Open(FileName:=pfad)
                       
                        Set tbl = docQuel.Tables(1)
                       
                        Set bmk = m_WordDocument.Bookmarks(yeah)
                        MsgBox yeah
                        Set rng = bmk.Range.Duplicate
                        rng.MoveEnd wdParagraph
                        rng.Collapse wdCollapseEnd
                        rng.FormattedText = tbl.Range.FormattedText
                                           
                        Set tbl = Nothing
                        docQuel.Close wdDoNotSaveChanges
                        Set bmk = Nothing
                        Set docQuel = Nothing
                       
                        Set rng = Nothing
                        Set m_WordDocument = Nothing
                    End If
            End If
           
            'Set m_WordDocument = Nothing
        Next j

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

Guter Rat ist teuer!
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: Leerzeilen in Tabelle/Serienbrief unterdrücken 2 joni.2000 3234 18. Jan 2009, 22:10
charlybrown Leerzeilen in Tabelle/Serienbrief unterdrücken
Keine neuen Beiträge Word Serienbriefe: Serienbrief Grußzeile Dr. einfügen 2 Aimee79 7798 27. Nov 2008, 11:44
charlybrown Serienbrief Grußzeile Dr. einfügen
Keine neuen Beiträge Word Serienbriefe: Anrede einfügen 0 ArianeH 910 27. Aug 2008, 11:47
ArianeH Anrede einfügen
Keine neuen Beiträge Word Serienbriefe: mit Wenn/Dann-Bedingungsfeld Tabelle einfügen? 10 Bärbel G. 3136 17. Jul 2008, 20:00
Maulende Myrte mit Wenn/Dann-Bedingungsfeld Tabelle einfügen?
Keine neuen Beiträge Word Serienbriefe: Leere Zeilen nicht drucken in einer Word Tabelle 0 Gast 3212 26. Mai 2008, 11:40
Gast Leere Zeilen nicht drucken in einer Word Tabelle
Keine neuen Beiträge Word Serienbriefe: Tabelle an Datenmenge anpassen, Nächster Ds in Kopfzeile 0 ghostdog 882 22. Jun 2007, 15:50
ghostdog Tabelle an Datenmenge anpassen, Nächster Ds in Kopfzeile
Keine neuen Beiträge Word Serienbriefe: Manuellen Seitenumbruch einfügen 1 BWolf 1400 16. Mai 2007, 21:05
Hübi Manuellen Seitenumbruch einfügen
Keine neuen Beiträge Word Serienbriefe: In einem Serienbrieg Daten aus Access einfügen 2 Dorian 980 19. Apr 2007, 10:21
Betty2004 In einem Serienbrieg Daten aus Access einfügen
Keine neuen Beiträge Word Serienbriefe: Leerzeile einfügen??? 5 tupelo1308 4360 27. März 2007, 22:20
shifra Leerzeile einfügen???
Keine neuen Beiträge Word Serienbriefe: Word Dokument aus Access Tabelle heraus erstellen 1 Gast 6544 14. Jun 2006, 10:23
tom2ba Word Dokument aus Access Tabelle heraus erstellen
Keine neuen Beiträge Word Serienbriefe: Serienbrief aus Access in einer Word Tabelle 1 mitulski 2094 02. Jun 2006, 14:07
mitulski Serienbrief aus Access in einer Word Tabelle
Keine neuen Beiträge Word Serienbriefe: Einfügen einer Grafik (immer andere, je nach Kunden) 10 betti 3732 08. Mai 2006, 18:43
Hübi Einfügen einer Grafik (immer andere, je nach Kunden)
 

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