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 SubWas habe ich falsch gemacht? Wer kann mit helfen?
|
|