Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1208to1212
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel an Word Codeoptimierung

Excel an Word Codeoptimierung
Volker
Hallo zusammen,
Ich übergebe mittels nachfolgenem Code Daten aus einer Tabelle in ein Word Dokument.
funktionierte auch soweit. Dauert aber ziemlich lange -bei 270 zu befüllenden Textmarken-
wdAnw.ActiveDocument.FormFields.Item("Text1").Result = Cells(2, 1) 'Eingabe1 Zeile1
wdAnw.ActiveDocument.FormFields.Item("Text2").Result = Cells(2, 2)
wdAnw.ActiveDocument.FormFields.Item("Text3").Result = Cells(2, 3)
wdAnw.ActiveDocument.FormFields.Item("Text4").Result = Cells(2, 4)
wdAnw.ActiveDocument.FormFields.Item("Text5").Result = Cells(2, 5)
wdAnw.ActiveDocument.FormFields.Item("Text6").Result = Cells(2, 6)
Nachdem ich wegen eines anderen Problems diesen Code gepostet hatte, bekam ich als Alternative
With wdAnw.ActiveDocument.FormFields
For i = 1 To 6
If Cells(2, i) = Empty Then Exit

Sub 'Abbrechen, wenn Zelle leer ist
.Item("Text1" & i).Result = Cells(2, i)
Next i
End With
freundlicherweise zur Verfügung gestellt. Ich bekam ihn aber nicht eingebaut :-((((
Somit habe ich mit dem oberen Code gearbeitet. Jetzt nervt mich aber die Wartezeit.
Somit möchte ich -mit Eurer Hilfe- versuchen das Ding doch lauffähig zu bekommen.
Hier der Code wie er im Modul steht.
Private Declare 

Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Option Explicit

Sub übergabe_an_word()
Dim wdAnw As Object
Dim i As Integer
On Error Resume Next
Set wdAnw = GetObject("Word.Application") '.10
If Err.Number  0 Then
Err.Clear
Set wdAnw = CreateObject("Word.Application") '.10
wdAnw.Visible = True: 'objWW.WindowState = wdWindowStateMaximize
Else
wdAnw.Activate
wdAnw.Visible = True:
End If
wdAnw.Application.Documents.Open "C:\Fahrschulverwaltung\Modulverwaltung\Modulnachweis.dot"""
wdAnw.ActiveDocument.FormFields.Item("Text1").Select
With wdAnw.ActiveDocument.FormFields
For i = 1 To 6
If Cells(2, i) = Empty Then Exit Sub
.Item("Text1" & i).Result = Cells(2, i) 'Eingabe1
Next i
End With
'WORD-Instanz schliessen
'wdAnw.Application.Quit (True)
'Variable leeren
'Set wdAnw = Nothing
End Sub
Bin für jeden Hinweis Dankbar!!
Danke und
Gruss Volker

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Excel an Word Codeoptimierung
18.04.2011 14:02:55
Rudi
Hallo,
.Item("Text1" & i).Result = Cells(2, i) 'Eingabe1
das ergibt Text11-Text16!
Gruß
Rudi
AW: Excel an Word Codeoptimierung
18.04.2011 14:29:21
Volker
Hallo Rudi,
Danke für Deine Antwort, stimmt, somit ist schonmal ein Fehler erledigt.
AAAAber, das Hauptproblem liegt aber darin, das nur die ersten sechs Zellen übertragen werden.
Es ist nur die erste Zeile.
Würdest Du mir bitte den Code überprüfen?
Danke und
Gruß Volker
was weiß ich,
18.04.2011 14:32:04
Rudi
wie deine Tabelle aussieht.
Gruß
Rudi
AW: was weiß ich,
18.04.2011 15:46:44
Volker
Hallo Rudi,
Danke für Deine Antwort.
Du hast ja recht, Asche auf mein Haupt.
Der Tabellenbereich erstreckt sich von A2:F14.
Ich hoffe das war es was Du meinst.
Danke
und Gruß
Volker
Anzeige
AW: was weiß ich,
18.04.2011 16:33:29
Volker
Hallo Rudi,
Danke für Deine Antwort.
Du hast ja recht, Asche auf mein Haupt.
Der Tabellenbereich erstreckt sich von A2:F14.
Ich hoffe das war es was Du meinst.
Danke
und Gruß
Volker
AW: was weiß ich,
18.04.2011 17:47:47
Rudi
Hallo,
vllt in der Art?
With wdAnw.ActiveDocument.FormFields
For i = 2 To 14
For j = 1 To 6
n = n + 1
.Item("Text" & n).Result = Cells(i, j) 'Eingabe1
Next j
Next i
End With

Gruß
Rudi
AW: was weiß ich,
18.04.2011 18:38:56
Volker
Hallo Rudi,
genau so soll's sein!!!!
Danke und Gruß
Volker

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige