Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1432to1436
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

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ß

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

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige