Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1792to1796
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Worddatei öffnen mit Target.Value

Worddatei öffnen mit Target.Value
10.11.2020 11:36:31
Jan
Guten Tag!
Ich habe mal eine Frage! Ich bin schon seit ein paar Tagen dabei herauszufinden wie ich beim Öffnen einer Worddatei aus Excel heraus, einen Target.Value im Namen dazu benutzen kann nur nach dieser Zeichenfolge zu suchen.
Hintergrund ist folgender: In einer Teileliste sollen sich bei einem Klick auf die jeweilige Teilenummer, das zu dem Teil dazugehörende Lastenheft (Worddokument) öffnen. Wenn noch kein Lastenheft für dieses Teil erstellt wurde, öffnet sich ein Blankolastenheft, dass manuell unter neuem Namen gespeichert werden muss.
Da aber die Namen der Dokumente, je nach Teil, variieren möchte ich nur nach der Teilenummer (Target.Value) im Dokumentennamen suchen.
Gibt es eine Möglichkeit, ähnlich wie das "in Sternchen setzen", nur nach dem Target.Value im Dateinamen zu suchen? Ich habe schon lange recherchiert aber für diesen speziellen Fall keine Antwort gefunden.
Ideal wäre es wenn es egal ist, wieviel und was vor und hinter der Teilenummer im Namen steht.
Die Lastenhefte befinden sich alle im Ordner "Lastenhefte", der sich im gleichen Verzeichnis wie das Exceldokument befindet.
Im Grunde geht es nur um die Fett markierte Zeile.
Ich würde mich sehr über Hilfe freuen und bedanke mich schon mal im voraus bei allen, die sich dafür Zeit nehmen!
Viele Grüße,
Jan
Mein Code sieht folgendermaßen aus:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim a As String
Dim AppWD As Object
If Target.Column = 14 Then 'Prüfung Spalte 8 (H)
If Target.Row >= 3 Then 'Prüfung ab Zeile 2
If Target.Cells.Count = 1 Then 'Prüfung nur 1 Zelle angeklickt
If Target = "" Then Exit Sub 'Wenn Zelle leer dann nichts machen
a = MsgBox("Lastenheft des folgenden Teils öffnen: " & Target.Value, vbYesNo)
If a = vbNo Then Exit Sub Else 'Wenn die Nummer geändert werden soll und kein  _
Lastenheft geöffnet werden soll
If Dir(ThisWorkbook.Path & "\Lastenheft_" & Target.Value & ".docx")  "" Then ' _
Wenn das Worddokument gefunden wird dann öffnen
Set AppWD = CreateObject("Word.Application") 'Word als Object starten
AppWD.Visible = True
AppWD.documents.Open ThisWorkbook.Path & "\Lastenhefte\Lastenheft_" & Target. _
Value & ".docx"
Else 'Wenn es noch nicht vorhanden ist, dann wird das blanko mit einem Hinweis geö _
ffnet
MsgBox ("Lastenheft für dieses Teil noch nicht vorhanden! Vorlage wird geöffnet." &  _
vbCrLf & "Bitte unter neuem Namen speichern!")
Set AppWD = CreateObject("Word.Application") 'Word als Object starten
AppWD.Visible = True
AppWD.documents.Open ThisWorkbook.Path & "\Lastenhefte\Lastenheft_blanko.docx"
End If
End If
End If
End If
End Sub

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Worddatei öffnen mit Target.Value
10.11.2020 11:54:06
Nepumuk
Hallo Jan,
teste mal:
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim AppWD As Object
    Dim strFilename As String
    If Target.Column = 14 Then
        If Target.Row >= 3 Then
            If Target.Count = 1 Then
                If Not IsEmpty(Target.Value) Then
                    If MsgBox("Lastenheft des folgenden Teils öffnen: " & Target.Text, vbYesNo) = vbYes Then
                        strFilename = Dir$(ThisWorkbook.Path & "\Lastenheft_*" & Target.Text & "*.docx")
                        If strFilename <> vbNullString Then
                            Set AppWD = CreateObject("Word.Application")
                            AppWD.Visible = True
                            AppWD.Documents.Open ThisWorkbook.Path & "\Lastenhefte\Lastenheft_" & strFilename & ".docx"
                            Set AppWD = Nothing
                        Else
                            MsgBox ("Lastenheft für dieses Teil noch nicht vorhanden! Vorlage wird geöffnet." & _
                                vbLf & "Bitte unter neuem Namen speichern!")
                            Set AppWD = CreateObject("Word.Application")
                            AppWD.Visible = True
                            AppWD.Documents.Open ThisWorkbook.Path & "\Lastenhefte\Lastenheft_blanko.docx"
                            Set AppWD = Nothing
                        End If
                    End If
                End If
            End If
        End If
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: Worddatei öffnen mit Target.Value
10.11.2020 12:15:15
Jan
Hallo Nepomuk,
Danke für die schnelle Antwort! Leider öffnet sich jetzt immer das Blankodokument.
Müsste nicht diese Zeile:
strFilename = Dir$(ThisWorkbook.Path & "\Lastenheft_*" & Target.Text & "*.docx")
So Aussehen?
strFilename = Dir$(ThisWorkbook.Path & "Lastenhefte\Lastenheft_*" & Target.Text & "*.docx")
Aber auch dann öffnet sich immer nur das Blankodokument.
AW: Worddatei öffnen mit Target.Value
10.11.2020 12:19:48
Nepumuk
Hallo Jan,
ich hab das aus deinem Code übernommen. Wie sieht denn der Dateiname eines Lastenheftes aus damit ich das testen kann?
Gruß
Nepumuk
AW: Worddatei öffnen mit Target.Value
10.11.2020 12:25:45
Jan
Hallo Nepomuk,
der Dateiname sieht in etwa so aus:
Lastenheft_Teilname_Teilenummer_20201110_JT.docx
Und dabei soll nur die Teilenummer gesucht werden, die in der entsprechenden Zelle steht. Wie die genau aussieht steht noch nicht fest. Der Benutzer muss selber sicherstellen, dass die in Excel und im Dokumentenname übereinstimmen.
Das Datum ist auch nicht immer das aktuelle.
Anzeige
AW: Worddatei öffnen mit Target.Value
10.11.2020 12:46:26
Nepumuk
Hallo Jan,
jetzt habe ich es gerade gesehen. Da fehlt ein Bachslash vor Lastenhefte. Also:
strFilename = Dir$(ThisWorkbook.Path & "\Lastenhefte\Lastenheft_*" & Target.Text & "*.docx")
Gruß
Nepumuk
AW: Worddatei öffnen mit Target.Value
10.11.2020 13:06:30
Jan
Stimmt! Jetzt erkennt er auf jeden Fall, dass es die gesuchte Datei gibt. Aber öffnen tut er sie nicht bei mir. Er öffnet nur Word ohne Dokument.
Wenn man statt:
AppWD.Documents.Open ThisWorkbook.Path & "\Lastenhefte\Lastenheft_" & strFilename & ".docx"
AppWD.Documents.Open ThisWorkbook.Path & "\Lastenhefte\Lastenheft_" & Target.Text & ".docx"
Schreibt, findet er dauch die Dateien. Aber natürlich nur wenn der Name komplett übereinstimmt.
Kann es sein, dass der in der Variable "strFilename" irgendetwas stehen hat, was dort nicht hingehört?
Hatte die Idee ob so funktionieren würde:
AppWD.Documents.Open ThisWorkbook.Path & strFilename
Weil ich dachte, dass das alles in "strFilename" schon drinsteht. Aber das funktioniert auch nicht.
Anzeige
AW: Worddatei öffnen mit Target.Value
10.11.2020 13:09:05
Nepumuk
Hallo Jan,
so:
AppWD.Documents.Open ThisWorkbook.Path & "\Lastenhefte\" & strFilename & ".docx"
Gruß
Nepumuk
AW: Worddatei öffnen mit Target.Value
10.11.2020 13:10:11
Nepumuk
Oooooooooops,
so natürlich:
AppWD.Documents.Open ThisWorkbook.Path & "\Lastenhefte\" & strFilename
Gruß
Nepumuk
AW: Worddatei öffnen mit Target.Value
10.11.2020 13:46:10
Jan
Funtkioniert Perfekt!
Tausend Dank!
Viele Grüße,
Jan

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige