vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Textmarken/Bookmarks - Von Excel auf Word Textmarke zugreifen -> neues WordDoc 
Autor: Main
Datum: 12.09.14 07:28

Hallo!

Programmbeschreibung(Kann übersprungen werden):
Ich habe eine Excel Tabelle in der ich Textmarken anharken möchte. Diese Textmarken befinden sich in einem Word-Dokument und sind bekannt. Diese ausgewählten Textmarken sollen in einem neuem Word-Dokument gespeichert werden und zwar nicht als Textmarke den ich dann einfügen kann sondern als quasi eingefügte Textmarke/Bookmark. So sollen sich individuel Prüfbögen erstellen lassen, die dann einfach ausgefüllt werden können.

Problem:
Ich kann nicht die Textmarken vom WordDokument A in das frisch erzeugte WordDokument B einfügen.

Fehlversuche:

Dim AppWDTextmarken As Object
 
Dim wdApp As Object 'Die Word Application
 
Dim wDoc As Object 'Das Word Dokument bzw. geöffnete Seite
 
On Error Resume Next
 
Set wdApp = GetObject(, "Word.Application")
 
On Error GoTo 0
 
If wdApp Is Nothing Then
 
Set wdApp = CreateObject("Word.Application")
 
wdApp.Visible = True
 
End If
 
wdApp.documents.Add
 
Set wDoc = wdApp.ActiveDocument
 
Set AppWDTextmarken = CreateObject("Word.Application") 'Word als Object starten
 
AppWDTextmarken.Visible = True
 
AppWDTextmarken.documents.Open
Sheets("Einstellungen").Range("C10").Value & "\" &
Sheets("Einstellungen").Range("B10").Value & ".docx"
 
Dim strVar As String
 
Dim TMRange As Range
 
Dim TM As String
 
'Variablen mit Werten füllen
 
strVar = AppWDTextmarken.ActiveDocument.Bookmarks(Sheets( _
  "Prüferstellung").Range("D17").Value).Range.Text
 
TM = Sheets("Prüferstellung").Range("D17").Value
 
'Textmarke füllen und neu setzen
 
If AppWDTextmarken.ActiveDocument.Bookmarks.Exists(TM) Then
 
Set TMRange = AppWDTextmarken.ActiveDocument.Bookmarks(TM).Range
 
'Rangeobjekt einen Wert zuweisen
 
TMRange = strVar
 
'Textmarke mit dem wert setzen
 
wdApp.ActiveDocument.Bookmarks.Add TM, AppWDTextmarken.ActiveDocument.Bookmarks( _
  TM).Range
 
Else
 
Fehlermeldung, wenn es die Textmarke nicht gibt
 
MsgBox "Textmarke konnte nicht gesetzt werden!"'
End If
Oder das hier:
Dim rng As Range
' AppWDTextmarken.ActiveDocument.Bookmarks(Sheets("Prüferstellung").Range( 
' "D17").Value).Range.Copy
 
AppWDTextmarken.ActiveDocument.Bookmarks(Sheets("Prüferstellung").Range( _
  "D17").Value).Range.Copy
 
rng.Paste
rng.Font.Hidden = False
wdApp.ActiveDocument.Bookmarks.Add Sheets("Prüferstellung").Range("D17").Value, _
  rng
Ich hab das jetzt in den verschiedensten Konstalltionen schon durch und bekomme es leider nicht hin. Benutze ich den falschen Code? Ich hab leider noch nie mit Textmarken gearbeitet.

Vielen Dank!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textmarken/Bookmarks - Von Excel auf Word Textmarke zugreifen -> neues WordDoc 
Autor: Main
Datum: 15.09.14 07:30

Niemand eine Idee?

Ich möchte die Namen der Textmarken in ein Excel Dokument eintragen, wo ich im Anschluss einfach nur die Textmarken anharken muss und er sie mir aus einem 65 Seiten langen Dokument die Textmarken raussucht und in ein neues Dokument kopiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textmarken/Bookmarks - Von Excel auf Word Textmarke zugreifen -> neues WordDoc 
Autor: powerzone3000
Datum: 15.09.14 10:47

Hallo,
ich habe noch nicht endgültig verstanden was du eigentlich machen möchtest. Eventuell kannst du mal ein Beispiel deiner Excel- und Word-Dateien zeigen? (z. B. bei einem Filehoster hochladen)

Aber was mir bereits aufgefallen ist:
Nimm mal das "On Error GoTo 0" raus, damit du auch Fehlermeldungen bekommst. Dann kann man evtl. eher sagen wo es hakt
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textmarken/Bookmarks - Von Excel auf Word Textmarke zugreifen -> neues WordDoc 
Autor: Main
Datum: 15.09.14 13:50

Hab den Code noch mal überarbeitet damit er übersichtlicher wird. Ich hoffe ich habe ihn gut Dokumentiert.

Ich möchte einfach die Textmarke aus der Quelldatei in eine Neue Datei kopieren und anhand dieser aneinanderreihung soll ein Prüfprotokoll entstehen.

Hier der Quellcode mit nur einer Textmarke

Sub WordDokumentErstellen2()
Dim WordApp As Object 'Die Word App
Dim WordQuellDatei As Object 'Die Word Quelldatein mit Textmarken
Dim WordZielDatei As Object 'Die neu erstellte Zieldatei
Dim TextmarkenName As String
Dim rngBereich As Range
TextmarkenName = "NameTextmarke"
'Prüfe ob Word bereits geöffnet ist. Wenn ja dann greife darauf zu und wenn 
' nicht dann gehe weiter
On Error Resume Next
Set WordApp = GetObject(, "Word.Application")
On Error GoTo 0
 
'Wenn noch kein Dokument offen dann öffne ein neues
If WordApp Is Nothing Then
Set WordApp = CreateObject("Word.Application")
WordApp.Visible = True
End If
 
'Erstelle ein neues Word-Dokument
WordApp.Documents.Add
'Weise das neue Dokument als WordZielDatei zu
Set WordZielDatei = WordApp.ActiveDocument
 
'Hier können dann Parameter zur Formatierung mit With wdApp.Selection eingefügt 
' werden
 
'Hier wird die Textmarken Datei geöffnet
WordApp.Documents.Open Sheets("Einstellungen").Range("C10").Value & "\" & _
  Sheets("Einstellungen").Range("B10").Value & ".docx"
'Hier die Word-Textmarkendatei an WordQuellDatei binden
Set WordQuellDatei = WordApp.ActiveDocument
 
If WordQuellDatei.Bookmarks.Exists(TextmarkenName) Then
MsgBox WordQuellDatei.Bookmarks(TextmarkenName).Range
Set rngBereich = WordQuellDatei.Bookmarks(TextmarkenName).Range
rngBereich.Copy
WordZielDatei.Range(Start:=WordZielDatei.Content.End - 1, _
  End:=WordZielDatei.Content.End - 1).Paste
End If
 
 
End Sub
In der Zeile 33
Set rngBereich = WordQuellDatei.Bookmarks(TextmarkenName).Range
bekomme ich einen Fehler:
Laufzeitfehler '13':
Typen unverträglich

Dieser Code wird allerdings in mehreren Foren so genutzt. Hab jetzt noch nicht den fehler in meinem gefunden.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textmarken/Bookmarks - Von Excel auf Word Textmarke zugreifen -> neues WordDoc 
Autor: powerzone3000
Datum: 15.09.14 14:38

Hallo,
das Problem liegt darin, dass Excel- und Word-Ranges nicht kompatibel sind.
Wenn du in Excel VBA Dim rngBereich As Range schreibst, wird die Variable als Excel-Range-Objekt deklariert - dem kannst du keine Word-Range zuweisen

Du musst das Range-Objekt also folgendermaßen deklarieren:
Dim rngBereich As Word.Range
Dann brauchst du allerdings einen Verweis auf die Microsoft Word 15.0 Object Library (Versionsnummer unterscheidet sich je nach Office-Version)Dazu einfach den entsprechenden Haken unter Extras -> Verweise setzen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textmarken/Bookmarks - Von Excel auf Word Textmarke zugreifen -> neues WordDoc 
Autor: Main
Datum: 15.09.14 15:30

Super Danke!
Das war es gewesen. Wirklich vielen dank. Saß da jetzt echt lange dran.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel