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