Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1676to1680
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

Dateipfad in Zelle schreiben

Dateipfad in Zelle schreiben
26.02.2019 16:00:47
Gregy
Hallo,
mit den Befehlen varName_imp = Right$(varFile_imp, Len(varFile_imp) - InStrRev(varFile_imp, "\"))
und
Workbooks(Stamm_imp).Sheets("Liste").Range("C3").Value = varFile_imp
hole ich mir den Pfad einer anderen Datei und lege den Namen zur späteren Verwendung in Zelle C3 Sheet Liste. Nun ist in meinem Pfad leider auch die Datei mit angefügt, was mir im späteren Verlauf (bei Verwendung) einen Fehler reinknallt (Pfad nicht gefunden). Wie kann ich den Dateinamen inkl. Dateiendung aus dem Pfad entfernen?
Vielen Dank
Gruß Gregy

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateipfad in Zelle schreiben
26.02.2019 16:13:06
Hajo_Zi
Halle Gregory,
suche mit instrev "\"

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
AW: Dateipfad in Zelle schreiben
26.02.2019 16:16:17
Gregy
Hallo Hajo_Zi,
vielen Dank für Deine Antwort. In dem ersten Teile suche ich doch instrev"\". Oder was meinst Du?
Zweite Frage: wie ist das zu verstehen Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.

Gruß Gregy
AW: Dateipfad in Zelle schreiben
26.02.2019 16:22:43
Hajo_Zi
Hallo Gregory,
wenn man es richtig schreibt geht es.
Option Explicit
Sub n()
Dim varFile_imp As String
varFile_imp = "C:\1256\123,xlsm"
MsgBox Left(varFile_imp, Len(varFile_imp) - InStrRev(varFile_imp, "\"))
End Sub
Über Beiträge von diesen Pesonen werde ich nicht benachrichtigt.
Der Rest sollte klar sein.
Gruß Hajo
Anzeige
das ist falsch...
26.02.2019 16:28:39
Rudi
... und funktioniert nur zufällig, Hajo.
mit
varFile_imp = "C:\abcdefghi\123.xlsm"
kommt
C:\abcde
raus.
Sub n()
Dim varFile_imp As String
varFile_imp = "C:\1256\123,xlsm"
MsgBox Left(varFile_imp,  InStrRev(varFile_imp, "\"))
End Sub
Gruß
Rudi
AW: Dateipfad in Zelle schreiben
26.02.2019 16:29:52
Nepumuk
Hallo Gregy,
so:
varFolder_imp = Left$(varFile_imp, InStrRev(varFile_imp, "\"))

Gruß
Nepumuk
AW: Dateipfad in Zelle schreiben
26.02.2019 18:05:29
Gregy
Vielen Dank an alle! habe ich auch so umgesetzt. Jetzt tritt folgender Fehler auf
Laufzeitfehler 9:
Index außerhalb des gültigen Bereichs

Und zwar in der Zeile lstRow = Workbooks(varName_imp).Sheets("GAEB_Konverter_LV").Cells(Rows.Count, 4).End(xlUp).Row
Interessanterweise bekomme ich das Phänomen nicht wieder wech...
Hier der gesamte Code
Option Explicit
Dim Stamm_imp As String
Dim varFile_imp As Variant
Dim varName_imp As Variant
Dim Blatt_imp As String
Public Sub gaeb_import()
Application.ScreenUpdating = False
Dim lstRow As Long
'    On Error GoTo Err
Stamm_imp = ActiveWorkbook.Name
varFile_imp = Application.GetOpenFilename("Excel Files (*.xlsx), *.xlsx", , "XLSx", " _
Auswahl", False)
If TypeName(varFile_imp) Like "Boolean" Then
MsgBox "Keine Datei gewählt!", vbInformation
Exit Sub
Else
varName_imp = Left$(varFile_imp, InStrRev(varFile_imp, "\"))
Workbooks.Open varFile_imp
lstRow = Workbooks(varName_imp).Sheets("GAEB_Konverter_LV").Cells(Rows.Count, 4).End( _
xlUp).Row
Workbooks(Stamm_imp).Sheets("Liste").Range("C3").Value = varFile_imp
Workbooks(varName_imp).Sheets("GAEB_Konverter_LV").Range("B2:B" & lstRow - 3).Copy
Workbooks(Stamm_imp).Sheets("Kalkulation").Range("C5").PasteSpecial xlPasteValues
Workbooks(varName_imp).Sheets("GAEB_Konverter_LV").Range("C2:C" & lstRow - 3).Copy
Workbooks(Stamm_imp).Sheets("Kalkulation").Range("D5").PasteSpecial xlPasteValues
Workbooks(varName_imp).Sheets("GAEB_Konverter_LV").Range("D2:F" & lstRow - 3).Copy
Workbooks(Stamm_imp).Sheets("Kalkulation").Range("E5").PasteSpecial xlPasteValues
Workbooks(varName_imp).Sheets("GAEB_Konverter_LV").Range("G2:G" & lstRow - 3).Copy
Workbooks(Stamm_imp).Sheets("Kalkulation").Range("BB5").PasteSpecial xlPasteValues
Workbooks(varName_imp).Close
Application.CutCopyMode = False
End If
Sheets("Kalkulation").Range("E5").Select
Exit Sub
Err:
Call MsgBox("FEHLER" _
& vbCrLf & "Bitte wenden Sie sich an den Administrator" _
, vbExclamation, "Fehler")
End Sub
HAt jemand eine Idee? Ich habe dem Dim schon Double zugewiesen, bringt aber auch nix :-/
Vielen Dank!
Anzeige
AW: Dateipfad in Zelle schreiben
26.02.2019 18:49:55
Mullit
Hallo,
na guck doch mal genau: ;-)
Workbooks.Open varFile_imp
lstRow = Workbooks(varName_imp)

und besser noch Du nutzt gleich Dein Objekt, was Dir beim Öffnen der Mappe zurückgegeben wird:
Option Explicit
Public Sub gaeb_import()
Dim objWorkbook As Workbook
Set objWorkbook = Workbooks.Open(Filename:=varFile_imp)
lstRow = objWorkbook.Worksheets("GAEB_Konverter_LV").Cells(Rows.Count, 4).End( _
xlUp).Row
End Sub

Außerdem proggst Du ohne Option Explicit, Deine ganzen Variablen sind nicht deklariert, nix gut :-(, sonst wäre Dir der Fehler schon vorher aufgefallen, Deine fehlerhafte Variable ist eine Variant-Var. ohne Wert, lies mal das:
http://www.online-excel.de/excel/singsel_vba.php?f=4
Gruß, Mullit
Anzeige
AW: Dateipfad in Zelle schreiben
26.02.2019 18:58:17
Mullit
Hallo nochmal,
ich seh grad Du verwendest Option Explicit hat ich außerhalb des Code-Blocks übersehen und hast die Variablen global deklariert, das ist gar nicht nötig, wenn Du sie nur in der Sub-Prozedur verwendest, mußt Du sie auch dort deklarieren.
Der Fehler resultiert also daraus, daß Du ein anderes Workbook öffnest, als Du in der zweiten Zeile ansprichst.
Gruß, Mullit
AW: Dateipfad in Zelle schreiben
26.02.2019 20:09:43
Mullit
Und nochmal Hallo...;-)
ähem ja und ich seh grad Dein Code hatte sich jetzt ja dahingehend geändert, daß Du jetzt den Workbook-Namen haben willst, wäre also:
varName_imp = Right$(varFile_imp, InStrRev(varFile_imp, "\"))
...Aber nimm besser gleich das Objekt...;-)
Gruß, Mullit
Anzeige
AW: Dateipfad in Zelle schreiben
26.02.2019 16:26:25
EtoPHG
Hallo Gregy,
Du willst doch nicht den rechten Teil des Strings, sondern den linken!
varName_imp = Left$(varFile_imp, InStrRev(varFile_imp, "\"))
Gruess Hansueli
AW: Dateipfad in Zelle schreiben
26.02.2019 16:24:01
Rudi
Hallo,
Workbooks(Stamm_imp).Sheets("Liste").Range("C3").Value = Left$(varFile_imp, InStrRev(varFile_imp, "\"))
Gruß
Rudi

295 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige