Thema Datum  Von Nutzer Rating
Antwort
Rot Word Dok. Tabelle kopieren, einfügen
01.12.2016 08:07:30 Lenny2016
NotSolved
01.12.2016 08:09:56 Gast39843
NotSolved
01.12.2016 08:21:48 Lenny2016
NotSolved
01.12.2016 08:24:40 Lenny2016
NotSolved

Ansicht des Beitrags:
Von:
Lenny2016
Datum:
01.12.2016 08:07:30
Views:
1456
Rating: Antwort:
  Ja
Thema:
Word Dok. Tabelle kopieren, einfügen
Hallo Zusammen Ich versuche 2 Makros für mein Word Dokument zu schreiben aber irgendwie kriege ich das nicht hin. Die Funktion ist eigentlich ganz simpel. In einem geschützten Word Dokument habe ich eine Tabelle (2 Spalten und 4 Zeilen). In der 1. Zeile, links steht der Titel. In den Zeilen 2 und 3, kommt links ein Foto rein und rechts einen Text dazu. In die 4. Zeile kommt links der Button für “Eine Seite hinzufügen“ und recht für “Eine Seite entfernen“. Mit dem Button “Eine Seite hinzufügen“ soll das Makro die bestehende Tabelle, inkl. Inhalt kopieren, ohne die Erste Zeile. Am Ende des Dokuments einen Seitumbruch einfügen und dann die kopierte Tabelle inkl. Buttons einfügen und auf der ersten Seite die Buttons wieder entfernen. Der Button “Eine Seite hinzufügen“ soll einfach die letzte Seite entfernen. Und die Buttons auf die neue, letzte Seite setzten. Zu den nötigen Makros habe ich bereits einige Tipps und Hilfe bekommen, aber ich bekomme es einfach nicht hin, dass die Makros sauber und ohne Fehler laufen. Weiss einer von euch Rat? Vielen Dank in Voraus für eure Hilfe Hier Mal der Code den ich zusammen habe, aber nicht läuft: Option Explicit Private Sub CommandButton1_Click() Dim rgTab As Range, tbTab As Table, clHead As Cell Dim Sp%, Zl%, rgDoc As Range If MsgBox("1 Seite hinzufügen?", vbYesNo, "") = vbYes Then If ActiveDocument.ProtectionType <> wdNoProtection Then ActiveDocument.Unprotect 'Falls ein Fehler auftritt, springe zur Programmmarke "Err_Keine_Tabelle_vorhanden": On Error GoTo Err_Keine_Tabelle_vorhanden 'Die nächste Zeile kann einen Fehler auslösen, falls noch keine "Table" existiert: 'Merke dir den Bereich der ersten "Table" im "ActiveDocument": Set rgTab = ActiveDocument.Tables(1).Range 'Gehe ans Ende des "ActiveDocument": Set rgDoc = ActiveDocument.Range rgDoc.Collapse Direction:=wdCollapseEnd 'Füge hier einen "Seitenumbruch" ein: rgDoc.InsertBreak Type:=wdPageBreak 'Es soll die erste "Table" ohne ihrer ersten Spalte kopiert werden: Sp% = rgTab.Columns.Count 'Ermittle Spaltenanzahl der Tabelle (=Sp%) rgTab.Columns(2).Select 'Markiere die 2.Spalte der Tabelle 'Erweitere die Marierung um die restlichen Spalten (Sp%-2) der Tabelle Selection.MoveRight Unit:=wdCharacter, Count:=Sp% - 2, Extend:=wdExtend Selection.Copy 'Kopiere Markierung in die Zwischenablage rgDoc.Paste 'Füge Zwischenablage am Ende des "ActiveDocument" ein. 'Schütze das "ActiveDocument" wie gehabt: ActiveDocument.Protect wdAllowOnlyFormFields, NoReset:=True End If End If Exit Sub Err_Keine_Tabelle_vorhanden: 'Es gibt im "ActiveDocument" noch keine "Table": Erzeuge daher eine "Table": 'Gehe dazu ans Ende des "ActiveDocument" Set rgDoc = ActiveDocument.Range rgDoc.Collapse Direction:=wdCollapseEnd 'Füge hier eine (die erste) "Table" hinzu mit 10 Zeilen und 4 Spalten: Set tbTab = ActiveDocument.Tables.Add(Range:=rgDoc, NumRows:=10, NumColumns:=4) tbTab.AutoFormat Format:=wdTableFormatClassic2 'Füge in die 1.Zeile dieser "Table" eine behelfsweise Kopfzeilenbeschriftung ein: Sp% = 1 For Each clHead In tbTab.Rows(1).Cells clHead.Range.Text = "Spalte" & Sp% Sp% = Sp% + 1 Next clHead 'Springe zurück in die Programmzeile, die den Fehler ausgelöst hat, und 'führe sie nochmals (und diesmal fehlerfrei) aus: Resume End Sub Private Sub CommandButton2_Click() Dim tbCt%, rgDoc As Range If MsgBox("1 Seite entfernen?", vbYesNo, "") = vbYes Then If ActiveDocument.ProtectionType <> wdNoProtection Then ActiveDocument.Unprotect 'Gehe ans Ende der vorletzten "Table" tbCt% = ActiveDocument.Tables.Count Set rgDoc = ActiveDocument.Tables(tbCt% - 1).Range rgDoc.Collapse Direction:=wdCollapseEnd 'Behalte diese Stelle als Anfangsmarkierung, 'erweitere die Markierung bis ans Ende des "ActiveDocument" rgDoc.MoveEnd Unit:=wdStory 'Lösche diesen so ermittelten Bereich rgDoc.Delete ActiveDocument.Protect wdAllowOnlyFormFields, NoReset:=True End If End If End Sub

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Word Dok. Tabelle kopieren, einfügen
01.12.2016 08:07:30 Lenny2016
NotSolved
01.12.2016 08:09:56 Gast39843
NotSolved
01.12.2016 08:21:48 Lenny2016
NotSolved
01.12.2016 08:24:40 Lenny2016
NotSolved