Guten Morgen,
Ich habe eine Tablle von der aus mehrere Werte in ein Word Dokument übertragen werden sollen. Durch klicken auf ein Button wird dieses Dokument geöffnet und dann sollen die Werte eingetragen werden.
Das mit dem Button klicken und öffnen des Dokuments funktioniert bis jetzt prima (Ich bin ein VBA neuling) . Mein Problem ist, dass ich den Quelltext einfacher kopierbar machen möchte, ohne das jemand groß in den Quelltext reingehen muss.
Vorher habe ich Variablen erstellt für jede Zelle und diese dann an das Word Dokument übergeben in eine Textmarke (hat auch funktioniert). Nur muss ich, falss jetzt ein neuer Arikel dazu kommt die komplette Spalte kopieren und den Quelltext für diesen Artikel anpassen.
Public Auswert As String
Public Component As String
Public Component_eintrag1 As String
Public Component_eintrag2 As String
Public Component_eintrag3 As String
'___________________________________________________________________________
Sub Schaltfläche3_Klicken() 'Name der Schaltfläche
Auswert = MsgBox("Word-Dokument erstellen?", vbYesNo, "Dokument") 'Abfrage ob das Word-Dokument erstellt werden soll
If Auswert = vbNo Then 'Wenn "Nein" dann Box "ok"
MsgBox "Ok"
Else
Call Auswertung 'Wenn ja, dann Auswertung aufrufen
End If
End Sub
'___________________________________________________________________________
Sub Auswertung()
'Eventuell noch eine Auswertung nötig, aber momentan nicht
MsgBox "Auswertung 3 ok"
Call Dokument_öffnen
End Sub
'___________________________________________________________________________
Sub Dokument_öffnen()
'MsgBox "Dokument 1 wird geöffnet"
'Gibt es hierfür eine einfachere Lösung? Anstatt jede Zelle mit einer Variable zu definieren?
'___________________________________________________________________________
'In Variablen schreiben, was in den einzelnen Zellen steht
Component = ActiveSheet.Range("B5")
Component_eintrag1 = ActiveSheet.Range("E5")
Component_eintrag2 = ActiveSheet.Range("E12")
'___________________________________________________________________________
'Öffnen des Word Dokuments
Dim Doku1 As Object
On Error Resume Next
Set Doku1 = GetObject(, "Word.Application")
If Doku1 Is Nothing Then Set Doku1 = CreateObject("Word.Application")
On Error GoTo 0
With Doku1
.Visible = True
.Documents.Open "C:\Users\pby891\Desktop\Excel Projekt\PLT-3 IQ 2x2-24DC-P wo PKG - 3.dotm"
End With
'___________________________________________________________________________
'Abfrage ob die Textmarke vorhanden ist, dann eintragen der Variablen
'Wenn die Textmarke nicht vorhanden ist, anzeigen eines Fehlers
If Doku1.ActiveDocument.Bookmarks.Exists("Component") = True Then
'Fall Abfrage ob die Textmarke "..." exitiert
If Doku1.ActiveDocument.Bookmarks.Exists("Component_eintrag1") = False Then
MsgBox "Felher - Textmarke" & Component_eintrag1 & "nicht vorhanden", vbkOKonly, "FEHLER"
Else
Doku1.ActiveDocument.Bookmarks("Component_eintrag1").Range = Component_eintrag1
If Doku1.ActiveDocument.Bookmarks.Exists("Component_eintrag2") = False Then
MsgBox "Felher - Textmarke" & Component_eintrag2 & "nicht vorhanden", vbkOKonly, "FEHLER"
Else
Doku1.ActiveDocument.Bookmarks("Component_eintrag2").Range = Component_eintrag2
If Doku1.ActiveDocument.Bookmarks.Exists("Component_eintrag3") = False Then
MsgBox "Felher - Textmarke" & Component_eintrag3 & "nicht vorhanden", vbkOKonly, "FEHLER"
Else
Doku1.ActiveDocument.Bookmarks("Component_eintrag3").Range = Component_eintrag3
End If
End If
End If
Else: MsgBox "Felher - Textmarke nicht vorhanden", vbkOKonly, "FEHLER"
End If
End Sub
'___________________________________________________________________________
So habe ich das Dokument erstmal. Habe für jeden Artikel ein Modul erstellt und eine Schaltfläche, also genau den Quelltext.
Nur weiß ich nicht wie ich das besser hin bekomme mit den Variablen. Hat jemand vielleicht eine Idee?
Die Tabelle wird am Ende etwas über 130 Artikel haben mit jeweils an die 100 Werten die drunter stehen.
|