Excel <-> Word Seriendruck (wenn Zelle nicht leer)
14.12.2007 00:41:00
Alex
bin leider immer noch am Kämpfen mit meinem Projekt - habe nun dank Jens alles soweit hinbekommen, wie ich mir das vorgestellt habe. Allerdings eine Sache geht noch überhaupt nicht. Seriendruck in Excel oder von mir aus kann es auch ein Makro sein, dass mir Word startet und dann in die Felder die Daten übernimmt.
Problem ist - ich hab in VBA nur äußerst bescheidene Kenntnisse und weis nicht, wie ich an Word nur dann einen "Datumswert" übergebe, wenn in der Tabelle einer eingetragen ist. (quasi irgendwie If Not xxx "" oder If Not IsEmpty(Range...)) - aber irgendwie klappt das nicht... hab entweder eine Endlosschleife die ich nicht mehr verlassen kann - oder der Compiler meckert, dass ich eine Typen unverträglich sind, With-Block... nicht passt, etc.
Hab hier mal zwei screenies angehängt - mit der Bitte um Erklärung, wie ich Excel sagen kann, dass es nur Name, Klasse und Datum in eine zweite Tabelle kopiert, wenn ein Datumswert vorhanden ist - und dann Datum an Datum in eine eigene Spalte legt.
Hier noch mein bisheriger Versuch:
Sub BonSchueler()
Dim name As Long
Dim Row As Range
Dim rngSource As Range, Copy As Range
Dim cell As Range
Dim ws1 As Worksheet, ws2 As Worksheet
Set ws1 = Sheets("Datenbank")
Set ws2 = Sheets("Bondruck")
Set rngSource = ws1.Range("D2:AH34") 'Bereich in dem die Datumswerte per
'Steuerelement Kalender eingetragen werden
Application.ScreenUpdating = False
Worksheets("BonSchueler").Cells.Clear 'Alte Tabelleninhalte löschen
For name = 1 To Sheets("Datenbank").Cells(2, 1).End(xlDown).Row
If Not IsEmpty(rngSource) Then ' Wenn Zelle nicht leer ist
' With Copy
ws2.Cells(6 + 6, 3) = ws1.Cells(Range("D2:AH2"), 1) ' Datum
ws2.Cells(4 + 6, 3) = ws1.Cells(Row.Count, 1) ' Name
ws2.Cells(5 + 6, 3) = ws1.Cells(Row.Count, 2) ' Klasse
ws2.Cells(3 + 6, 3) = ws1.Cells(Row.Count, 3) ' Menüpreis
' End With
End If
Next
Application.ScreenUpdating = True
End Sub
Hoffe dass mir da jemand einige Tipps geben kann...
Danke
Alex S.