Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: getopenfilename Pfadeingabe

getopenfilename Pfadeingabe
27.06.2015 21:22:26
Alexander
Hallo,
habe noch ein kleines Problem, im Augenblick führe ich einen sverweis durch bei dem der Pfad durch variablen die von getopnefile kommen bestimmt wird.
Filename = Application.GetOpenFilename
If Filename "Falsch" Then
Filename = Dir(Filename)
Pfad = CurDir
lz = Application.Max(2, Cells(Rows.Count, 1).End(xlUp).Row)
Range("C2:C" & lz).Formula = "=VLOOKUP(A2,'" & Pfad & "\[" & Filename & "]Prg'!$l:$q,6,FALSE)"
lz = Application.Max(2, Cells(Rows.Count, 1).End(xlUp).Row)
Range("d2:d" & lz).FormulaR1C1 = "=IFERROR(EXACT(RC[-1],RC[-2]),FALSE)"
Range("t2").Value = Filename
Range("i2").FormulaArray = "=LEFT(RC[11],LEN(RC[11])-4)"
Jetzt möchte ich eine zusätzliche Option einbauen, wenn die Datei schon offen ist, dass ebenfalls ein Dialog aufgeht, ich aber eben keine Datei mehr anklicke sondern direkt auf das offene excelfile und ich dadurch Pfad und File Name in meine Variablen bekomme.
Bin aber Ratlos wie ich das machen könnte und das System mit den Variablen will ich auch beibehlaten, da ich die noch an anderen Stellen verwende. Danke!
Gruß

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: getopenfilename Pfadeingabe
27.06.2015 21:54:34
Sepp
Hallo Alexander,
das würde ich so lösen.
Sub alex()
  Dim strFile As String, strPath As String, strRef As String
  Dim objWB As Workbook
  Dim lngLast As Long
  
  With Application.FileDialog(msoFileDialogFilePicker)
    .InitialFileName = "C:\DVD\"
    .Title = "Datei auswählen"
    .ButtonName = "Auswahl..."
    .Filters.Clear
    .Filters.Add "Excel Dateien", "*.xls*", 1
    .Filters.Add "Alle Dateien", "*.*,2"
    .InitialView = msoFileDialogViewList
    If .Show = -1 Then strFile = .SelectedItems(1)
  End With
  
  If strFile <> "" Then
    strPath = Mid(strFile, 1, InStrRev(strFile, "\"))
    strFile = Mid(strFile, InStrRev(strFile, "\") + 1)
    strRef = strPath & "[" & strFile & "]"
    For Each objWB In Application.Workbooks
      If objWB.FullName = strPath & strFile Then
        strRef = "[" & strFile & "]"
        Exit For
      End If
    Next
    
    lngLast = Application.Max(2, Cells(Rows.Count, 1).End(xlUp).Row)
    Range("C2:C" & lngLast).Formula = "=VLOOKUP(A2,'" & strRef & "Prg'!$l:$q,6,FALSE)"
  End If
  
End Sub


Poste in Zukunft bitte den Code immer mit den Variablen-Deklarationen, macht keinen Spaß, dass immer nachzubauen!
Gruß Sepp

Anzeige
ein Hochkomma verutscht ;-)
27.06.2015 21:56:12
Sepp
der Code hatte einen kleinen Fehler!
Sub alex()
  Dim strFile As String, strPath As String, strRef As String
  Dim objWB As Workbook
  Dim lngLast As Long
  
  With Application.FileDialog(msoFileDialogFilePicker)
    .InitialFileName = "C:\DVD\"
    .Title = "Datei auswählen"
    .ButtonName = "Auswahl..."
    .Filters.Clear
    .Filters.Add "Excel Dateien", "*.xls*", 1
    .Filters.Add "Alle Dateien", "*.*", 2
    .InitialView = msoFileDialogViewList
    If .Show = -1 Then strFile = .SelectedItems(1)
  End With
  
  If strFile <> "" Then
    strPath = Mid(strFile, 1, InStrRev(strFile, "\"))
    strFile = Mid(strFile, InStrRev(strFile, "\") + 1)
    strRef = strPath & "[" & strFile & "]"
    For Each objWB In Application.Workbooks
      If objWB.FullName = strPath & strFile Then
        strRef = "[" & strFile & "]"
        Exit For
      End If
    Next
    
    lngLast = Application.Max(2, Cells(Rows.Count, 1).End(xlUp).Row)
    Range("C2:C" & lngLast).Formula = "=VLOOKUP(A2,'" & strRef & "Prg'!$l:$q,6,FALSE)"
  End If
  
End Sub


Gruß Sepp

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige