20. Apr 2024, 05:15
VB-fun.de - Beitragsübersicht zum VB-/VBA-Forum-Archiv 0404
  W03: Daten aus VB6 in Word 2003 in eine Tabelle füllen
 Von Emil
 Am 29. Januar 2008 um 16:31:48
 Frage 1. Aus einem Menüeintrag einer starte ich eine Form mit einer Listbox, da hinein sammle ich meine Daten.
2. Danach starte ich WORD und die Vorlage und lasse die Daten aus dem Feld
in die 1. Tabelle einfüllen.

Hier der Quellcode mit dem ich dies realisiere:
Private Sub Command4_Click()
Dim info$
info$ = "Der Bericht wird nun erstellt und mit ausgewählten Lernziel-Daten gefüllt. Danach beschriften Sie im Kopfteildie Schülerangaben. Anschliessend kann der Text noch präzise anpassen und vervollständigt (Lernzielstand = x) werden. Das Layout des Berichtblattes kann auch individuell verändert werden. Zum Schluss speichern Sie das Dokument unter dem Namen des Schülers ab(speichern unter...)."
MsgBox info$, , "Berichterstellung"
Dim WordAppl As Object
Set WordAppl = CreateObject("Word.Application")
WordAppl.WindowState = 0
If be_art = 1 Then 'nur Mathe
WordAppl.Documents.Open App.Path & "\BerichteVorl\Mathe.doc"
End If
If be_art = 3 Then ' Mathe + Deutsch
WordAppl.Documents.Open App.Path & "\BerichteVorl\MatheDeutsch.doc"
End If

WordAppl.Visible = True
AppActivate WordAppl

'WordAppl.ActiveDocument.SaveAs App.Path & "\Schülerberichte\"

If WordAppl.ActiveDocument.Tables.Count = 0 Then
MsgBox "Der Hauptteil des Dokuments enthält keine Tabelle.", vbInformation
Exit Sub
End If
'ActiveDocument.Tables(1).Select
ReDim gew(ListBox2.ListCount)
For i% = 0 To ListBox2.ListCount - 1
gew(i%) = ListBox2.List(i%)
Next i%

For i% = 2 To ListBox2.ListCount + 2
WordAppl.ActiveDocument.Tables(1).Cell(i%, 1).Range.Text = gew(i% - 2)
Next i%
If be_art = 1 Then
Form2.Hide
End If
End Sub

Eine 1. Tabelle zu füllen gelingt mir bereits!

Nun möchte ich jedoch, eine 2. Datensammlung durchführen, und die Ergebnisse
in die 2. Tabelle einfüllen - jetzt aber kbekomme ich den Laufzeitfehler '4248'
Dieser Befehl ist nicht verfügbar, weil kein Dokument geöffnet ist

Hier der Quelltext für die 2. Füllung:
Private Sub Command5_Click()

Dim info$
info$ = "Der Deutsch-Bericht wird nun erstellt und mit ausgewählten Lernziel-Daten gefüllt. Danach beschriften Sie im Kopfteildie Schülerangaben. Anschliessend kann der Text noch präzise anpassen und vervollständigt (Lernzielstand = x) werden. Das Layout des Berichtblattes kann auch individuell verändert werden. Zum Schluss speichern Sie das Dokument unter dem Namen des Schülers ab(speichern unter...)."
MsgBox info$, , "Berichterstellung"

Dim WordAppl As Object
Set WordAppl = CreateObject("Word.Application")

WordAppl.WindowState = 0

If be_art = 2 Then 'nur Deutsch
WordAppl.Documents.Open App.Path & "\BerichteVorl\Deutsch.doc"
End If

If be_art = 3 Then 'nur Deutsch
' WordAppl.Documents.Open App.Path & "\BerichteVorl\MatheDeutsch.doc"
End If

WordAppl.Visible = True
AppActivate WordAppl

'WordAppl.ActiveDocument.SaveAs App.Path & "\Schülerberichte\"

If WordAppl.ActiveDocument.Tables.Count = 0 Then
MsgBox "Der Hauptteil des Dokuments enthält keine Tabelle.", vbInformation
Exit Sub
End If

If be_art = 2 Then 'nur Deutsch

'ActiveDocument.Tables(1).Select
ReDim gew(ListBox2.ListCount)
For i% = 0 To ListBox2.ListCount - 1
gew(i%) = ListBox2.List(i%)
Next i%

For i% = 2 To ListBox2.ListCount + 2
WordAppl.ActiveDocument.Tables(1).Cell(i%, 1).Range.Text = gew(i% - 2)
Next i%
End If

If be_art = 3 Then 'Mathe und Deutsch

'ActiveDocument.Tables(1).Select
ReDim gew(ListBox2.ListCount)
For i% = 0 To ListBox2.ListCount - 1
gew(i%) = ListBox2.List(i%)
Next i%

For i% = 2 To ListBox2.ListCount + 2
WordAppl.ActiveDocument.Tables(2).Cell(i%, 1).Range.Text = gew(i% - 2)
Next i%
End If
If be_art = 2 Then
Form2.Hide
End If
End Sub

Was habe ich falsch gemacht?
Wer kann mit helfen?

[ VB-/VBA-Forum | Archiv 0404 | Archiv-Übersicht ]
 Antworten
W03: Daten aus VB6 in Word 2003 in eine Tabelle füllen - Emil 29. Januar 2008 um 16:31:48
Re: Daten aus VB6 in Word 2003 in eine Tabelle füllen - r.mueller@sz-online.de 29. Januar 2008 um 21:48:28
-

Zum Seitenanfang

Startseite | VB-/VBA-Tipps | Projekte | Tutorials | API-Referenz | Komponenten | Bücherecke | Gewinnspiele | VB-/VBA-Forum | DirectX | DirectX-Forum | VB.Net | VB.Net-Forum | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum