Textmarken aus Excel via Inputbox in einem Word füllen (Makro)

  • Excel

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von tulla.

    Textmarken aus Excel via Inputbox in einem Word füllen (Makro)

    Zuerst einmal Hallo an alle!

    Also ich bin blutiger Anfänger, was die VBA-Programmierung angeht und schon habe ich ein Problem, bei welchem ich aboslut nicht weiterkomme.

    Die Situation ist so, in ein Excel werden per Inputbox 17 Werte eingegeben, diese in die nächste leere Zeile geschrieben. Dabei sollten diese dann in die Textmarken in einer Word-Vorlage, welche zuvor geöffnet wird, geschrieben werden. Leider stimmt die Reihenfolge (Exceltabelle kommt aus einem Buchhaltungsprogramm und kann nicht geändert werden resp. das Buhaltungsprogramm kann nicht dementsprechend angepasst werden) in der Exceltabelle und im Wordbrief nicht überein.

    Nun zu meiner Frage, ich bring es einfach nicht zu Stande, dass ebendiese Werte in das Word übertragen werden! Könnt ihr mir da weiterhelfen oder muss ich dafür ev. ein zweites Makro schreiben, ich wäre einfach für eure Hilfe sehr dankbar.

    Hier mein Code:

    Visual Basic-Quellcode

    1. Private Sub CommandButton1_Click()
    2. Dim str1, str2, str3, str4, str5, str6, str7, str8, str9, str10, str11, str12, str13, str14, str15, str16, str17 As String
    3. Dim i As Integer
    4. Dim AppWD As Object
    5. 'Wordvorlage öffnen
    6. Set AppWD = CreateObject("Word.Application")
    7. AppWD.documents.Add "C:\Users\Rebekka\Desktop\V2.dotx"
    8. 'Zähler
    9. i = 1
    10. j = 1
    11. 'leere Zeile
    12. While Not Cells(i, j).Value = ""
    13. i = i + 1
    14. Wend
    15. str1 = InputBox("Wert1")
    16. Cells(i, 1) = str1
    17. AppWD.Bookmarks("Textmarke9").Cells.Text = "str1"
    18. str2 = InputBox("Wert2")
    19. Cells(i, 2) = str2
    20. AppWD.Bookmarks("Textmarke10").Cells.Text = "str1"
    21. str3 = InputBox("Wert3")
    22. Cells(i, 3) = str3
    23. AppWD.Bookmarks("Textmarke14").Cells.Text = "str1"
    24. str4 = InputBox("Wert4")
    25. Cells(i, 4) = str4
    26. AppWD.Bookmarks("Textmarke11").Cells.Text = "str1"
    27. 'lösche der Übersichtlichkeit halber mal die anderen Inputboxen weg, sind ja alle gleich aufgebaut
    28. str17 = InputBox("Wert17")
    29. Cells(i, 17) = str17
    30. AppWD.Bookmarks("Textmarke1").Cells.Text = "str1"
    31. AppWD.Visible = TrueAppWD.SaveAs
    32. "C:\DeinPfad\DeinName.doc"
    33. End Sub


    Bin für jede Hilfe dankbar, vielen Dank im Voraus und herzliche Grüsse
    Bekki
    Hallo zusammen...

    Hat denn keiner eine Hilfe für mich ;(

    Ich habe es in der Zwischenzeit auch mit Inhaltssteuerelementen versucht, aber das klappt auch nicht...

    • str1 = InputBox("Wert1")
    • Cells(i, 1) = str1
    • AppWD.ContentControls(9).Range.Text = str1

    Ergibt "Laufzeitfehler
    438, Objekt unterstützt diese Eigenschaft oder Methode nicht“…

    Keiner ne Idee?? Wäre wirklich dankbar!
    Wie sieht denn deine Word Datei aus?

    Was zeigst du im Word an, den aktuell eingegeben Datensatz oder die gesamte Tabelle?

    Fragen über Fragen? ^^


    EDIT:

    Schau mal ob dir das weiter hilft:
    Ist getestet und funktioniert:

    Visual Basic-Quellcode

    1. Dim str1, str2 As String
    2. Dim i As Integer
    3. Dim AppWD As Object
    4. 'Wordvorlage öffnen
    5. Set AppWD = CreateObject("Word.Application")
    6. AppWD.Documents.Add "C:\test.docx"
    7. AppWD.Visible = True
    8. 'Zähler
    9. i = 1
    10. j = 1
    11. 'leere Zeile
    12. While Not Cells(i, j).Value = ""
    13. i = i + 1
    14. Wend
    15. str1 = TextBox1.Text ' Habe hier eine UserForm erstellt um eine Textfeld abzufragen, Grundlegend das gleiche wie eine ImputBox
    16. Cells(i, 1) = str1
    17. With AppWD.Selection
    18. .TypeText Text:=Worksheets(1).Cells(i, 1).Value
    19. .typeParagraph
    20. End With
    21. Set AppWD = Nothing

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „tulla“ ()