Hallo liebes VBA Forum,
ich bin ein blutiger Anfänger im Programmieren und möchte mich trotzdem an eine, wie ich finde, nicht ganz so leicht Aufgabe wagen.
Ich hoffe es erbarmt sich jemand und hilft mir weiter.
Meine Aufgabe:
Ich habe eine ExcelDatenbank die mehrere Einträge für mehrere Kunden verwaltet. ( Name, Anrede, Straße usw. )
Außerdem habe ich ein Word Dokument erstellt in das ich die Word Textmarken eingefügt habe ( Ebenfalls so benannt Name, Straße, Anrede usw. )
Nun möchte ich in Excel eine Zeile anklicken und anschließend das Makro ausführen. ( Das Makro soll dann nur für die Ausgewählte Zeile ausgeführt werden )
Die Vorlage soll aber nicht überschrieben werden, es soll ein neues Word Dokument erstellt werden, in dem die Felder dann ausgefüllt sind ( Am besten mit anderem Speicherpfad den ich dann auch direkt im Makro eingeben kann. )
Natürlich habe ich es auch schon selber versucht, allerding haben mir die Codeschnipsel die ich aus dem Internet geholt habe nicht ganz geholfen.
Hier mein Code:
Sub AnschreibenGutachtenNeu()
Dim strFileName As String
Dim objWDApp As Object 'Word.Application
Dim objDocx As Object 'Word.Document
Dim xlZelle As Range 'Referenzzelle in Excel
strFileName = "C:\Users\Christopher Goihl\Documents\Spaces\Bea und Chris\Projekt Makro\tester.docx"
If Dir(strFileName) = "" Then
MsgBox "Datei """ & strFileName & """ nicht gefunden!"
Exit Sub
End If
'Excel-Referenzzelle für Auftrag setzen
ActiveCell.SpecialCells(xlLastCell).Select
With ActiveSheet
Set xlZelle = .Cells(ActiveCell.Row, 1) ' Zelle in aktiver Zeile, Spalte A
End With
Application.ScreenUpdating = False
If objWDApp Is Nothing Then
'damit wird verhindert das Word ein zweites Mal
'mit CreateObject geöffnet wird
'die erstere läst sich sonst aus dem Task nicht entfernen
'Bei mehreren Versuchen erreichst du ganz schnell ein OutOfMemory
Set objWDApp = CreateObject("Word.Application")
bolWordLiefNicht = True
End If
'Word-Anwendung sichtbar starten
Set objWDApp = CreateObject("Word.Application")
objWDApp.Visible = True
'Vorlage öffnen - schreibgeschützt
Set objDocx = objWDApp.Documents.Open(strFileName, ReadOnly:=False)
'Werte aus Zellen in Excel an Textmarken im Worddokument einfügen
objDocx.Bookmarks("Aktenzeichen").Range.Text = xlZelle.Offset(0, 6).Text 'aus Spalte G
'objDocx.Bookmarks("Anrede").Range.Text = xlZelle.Offset(0, 4).Text 'aus Spalte E
'objDocx.Bookmarks("Ansprechpartner").Range.Text = xlZelle.Offset(0, 5).Text 'aus Spalte F
'objDocx.Bookmarks("Aktenzeichen").Range.Text = "Hallo"
Application.ScreenUpdating = True
End Sub
Ich habe das Befüllen der Bookmarks auskommentiert weil es so leider nicht funktioniert hat.
Ich hoffe sehr das mir jmd. weiter helfen kann
Liebe Grüße Chris
|