Vielen Dank erst einmal euch beiden für die Rückmeldung!
Der Hinweis mit der englischen Sprache hat leider auch keinen Erfolg gebracht.
Hier mal der Code:
Sub Pfadhinzufügen_Click()
'Ändert/Fügt Dateipfad hinzu
Dim LoSpalte As Long
Dim LoZeile As Long
Dim vardatei As Variant
Dim varPfad1 As Variant
Dim strNameSchichtprotokoll As String
Dim strPfad As Variant
Dim strMatrix As String
Dim strZeile As String
Dim strSpalte As String
LoZeile = 9 '9
LoSpalte = 5 'E
'Dateipfad vom Benutzer abfragen
vardatei = Application.GetOpenFilename("Alle Dateien,*.*", 1, "Auswahl digitales Schichtprotokoll")
'Pfad anpassen
varPfad1 = Left(vardatei, InStrRev(vardatei, "\")) 'Speichert den Dateipfad (ohne Dateinahmen)
varPfad1 = Replace(varPfad1, "H:", "\\hv\fs") 'ersetzt "H:" im Dateipfad durch "\\hv\fs"
strNameSchichtprotokoll = Mid(vardatei, InStrRev(vardatei, "\") + 1) 'Speichert den Dateinamen (ohne zugehörigen Dateipfad)
strPfad = "'" + varPfad1 + "[" + strNameSchichtprotokoll + "]Schichtprotokoll'!" 'setzt Pfad und Dateiname so wieder zusammen, dass direkt auf das Blatt "Schichtprotokoll zugegriffen wird"
strMatrix = "=INDEX(" + strPfad + "$G$11:$MZ$1469;" 'INDEX-Funktion (Matrix, Zeile, Spalte) mit Wert für Matrix
strZeile = "VERGLEICH($F$4&$D9;" + strPfad + "$G$11:$G$1469&" + strPfad + "$H$11:$H$1469;0);" 'Wert für Zeile
strSpalte = "E$6)" 'Wert für Spalte
strPfad = strMatrix + strZeile + strSpalte 'die obigen 3 Zeilen zusammengesetzt zur Komplettfunktion
If vardatei = False Then
MsgBox "Hinzufügen wurde unterbrochen!", vbInformation, p_cstrAppName 'MsgBox: Fehlermeldung bei Unterbechung
Else
'Sheets("Daten").Cells(LoZeile, LoSpalte).FormulaLocal = strPfad1 'Funktioniert. Gibt aber #WERT zurück.
End Sub
|