Registriert seit: 09.05.2019
Version(en): 2016
Hallo zusammen,
ich nutze folgendes:
vFile = Application.GetOpenFilename("Textdateien (*.txt), *.txt")
Klappt soweit, ich kann dann die entsprechende Datei auswählen
Jetzt möchte ich es etwas komfortabler nutzen.
Es gibt eine Variable (da steht der Dateiname drin) und ich möchte nun das nicht alle *.txt Files aufgelistet werden, sonder nur die mit der Variable.txt.
Geht das?
Registriert seit: 18.01.2021
Version(en): 365
18.01.2021, 16:42
(Dieser Beitrag wurde zuletzt bearbeitet: 18.01.2021, 17:53 von Kuwer.)
Das dürfte nur hiermit gehen
docs.microsoft.com/de-de/office/vba/api/office.filedialog.filters
PS Die bescheidene Forensoftware lässt mich keine Links einfügen
Test
Folgende(r) 1 Nutzer sagt Danke an DeltaX für diesen Beitrag:1 Nutzer sagt Danke an DeltaX für diesen Beitrag 28
• datenmaus
Registriert seit: 22.11.2019
Version(en): 365
Hallo Datenmaus,
das dürfte nur mit der API-Version gehen.
Hier mal auf die Schnelle ein Muster zum Spielen:
Code:
Option Explicit
Private Declare PtrSafe Function GetActiveWindow Lib "user32.dll" () As Long
Private Declare PtrSafe Function GetOpenFileNameA Lib "comdlg32.dll" ( _
pOpenfilename As OPENFILENAME) As Long
Type OPENFILENAME
lStructSize As Long
hwndOwner As LongPtr
hInstance As LongPtr
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As LongPtr
lpfnHook As LongPtr
lpTemplateName As String
End Type
Private Const OFN_READONLY = &H1
Private Const OFN_OVERWRITEPROMPT = &H2
Private Const OFN_HIDEREADONLY = &H4
Private Const OFN_NOCHANGEDIR = &H8
Private Const OFN_SHOWHELP = &H10
Private Const OFN_ENABLEHOOK = &H20
Private Const OFN_ENABLETEMPLATE = &H40
Private Const OFN_ENABLETEMPLATEHANDLE = &H80
Private Const OFN_NOVALIDATE = &H100
Private Const OFN_ALLOWMULTISELECT = &H200
Private Const OFN_EXTENSIONDIFFERENT = &H400
Private Const OFN_PATHMUSTEXIST = &H800
Private Const OFN_FILEMUSTEXIST = &H1000
Private Const OFN_CREATEPROMPT = &H2000
Private Const OFN_SHAREAWARE = &H4000
Private Const OFN_NOREADONLYRETURN = &H8000&
Private Const OFN_NOTESTFILECREATE = &H10000
Private Const OFN_NONETWORKBUTTON = &H20000
Private Const OFN_NOLONGNAMES = &H40000
Private Const OFN_EXPLORER = &H80000
Private Const OFN_NODEREFERENCELINKS = &H100000
Private Const OFN_LONGNAMES = &H200000
' Datei auswählen und öffnen
Function Waehle_Datei_API() As String
' Funktion zeigt einen DateiÖffen-Dialog mit erweiterten Features an.
Dim sDatei As String, sPfad As String, sTitel As String, sErw As String
Dim sFilter As String
sFilter = "Herber*.x*" ' Dateifilter setzen
sPfad = ThisWorkbook.Path
sDatei = "MeineDatei.xlsm"
If sDatei = "" Then sDatei = "*.*"
sTitel = "Datei öffnen"
sErw = ".xls*"
If Trim(sPfad) = "" Then sPfad = CurDir
If Right(sPfad, 1) <> "\" Then sPfad = sPfad & "\"
Dim OF As OPENFILENAME
With OF
.lStructSize = LenB(OF) ' Achtung LenB ist wichtig
.hwndOwner = GetActiveWindow()
.lpstrTitle = sTitel & vbNullChar
.lpstrFilter = "Meine Auswahl" & vbNullChar & sFilter & vbNullChar & vbNullChar
.nFilterIndex = 0
.flags = OFN_FILEMUSTEXIST Or OFN_OVERWRITEPROMPT Or OFN_EXPLORER Or OFN_NOCHANGEDIR
.lpstrFile = sDatei & Space(256) & vbNullChar
.nMaxFile = Len(.lpstrFile)
.lpstrFileTitle = Space(256) & vbNullChar
.nMaxFileTitle = Len(.lpstrFileTitle)
.lpstrInitialDir = sPfad & vbNullChar
.lpstrDefExt = sErw
End With
If GetOpenFileNameA(OF) = 0 Then Exit Function
sDatei = Left(OF.lpstrFile, InStr(OF.lpstrFile, Chr(0)) - 1)
If Dir$(sDatei) <> "" Then
MsgBox "Datei ausgewählt!"
End If
End Function
_________
viele Grüße
Karl-Heinz
Folgende(r) 1 Nutzer sagt Danke an volti für diesen Beitrag:1 Nutzer sagt Danke an volti für diesen Beitrag 28
• datenmaus
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
(18.01.2021, 16:42)DeltaX schrieb: Das dürfte nur hiermit gehen
docs.microsoft.com/de-de/office/vba/api/office.filedialog.filters
PS Die bescheidene Forensoftware lässt mich keine Links einfügen 
Ich habe einen Thread bei Bugs erstellt:
https://www.clever-excel-forum.de/Thread-Externe-LinksKann wohl nur mit dem erst kürzlich erfolgten Update der Forensoftware zusammen hängen.
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:1 Nutzer sagt Danke an RPP63 für diesen Beitrag 28
• DeltaX
Registriert seit: 18.01.2021
Version(en): 365
Dann will ich mal hoffen, dass ich nicht zu blöd war einen Link einzufügen und es tatsächlich ein Bug ist
Registriert seit: 29.09.2015
Version(en): 2030,5
18.01.2021, 17:38
(Dieser Beitrag wurde zuletzt bearbeitet: 18.01.2021, 17:44 von snb.)
Reicht schon:
Code:
Sub M_snb()
c00 = "G:\OF\adres.txt"
With Application.FileDialog(1)
.InitialFileName = c00
If .Show Then MsgBox .SelectedItems(1)
End With
End Sub
Wenn du die Name schon kennst, reicht
Code:
Workbooks.open "G:\OF\adres.txt"
oder
Code:
Getobject("G:\OF\adres.txt")
@Volti
Zitat:das dürfte nur mit der API-Version gehen.
Kennst du dich wohl mit Excel aus ?
Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:1 Nutzer sagt Danke an snb für diesen Beitrag 28
• datenmaus
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
18.01.2021, 19:00
(Dieser Beitrag wurde zuletzt bearbeitet: 18.01.2021, 19:01 von schauan.)
Hallöchen,
Zitat:Die bescheidene Forensoftware lässt mich keine Links einfügen
Du weißt, warum? An dem Update liegt es nicht ...
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• datenmaus
Registriert seit: 18.01.2021
Version(en): 365
Ich weiß nicht warum.
Test, Test
Aber
jetzt scheint es zu gehen, warum auch immer
MSDNNa ja, bin ich eben zu blöd
Folgende(r) 1 Nutzer sagt Danke an DeltaX für diesen Beitrag:1 Nutzer sagt Danke an DeltaX für diesen Beitrag 28
• datenmaus
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
18.01.2021, 19:56
(Dieser Beitrag wurde zuletzt bearbeitet: 18.01.2021, 19:59 von RPP63.)
Folge meinem obigen Link zum "scheinbaren" Bug.
Ist halt blöd, wenn die Blacklist *file* berücksichtigt(e) und MS die Frechheit besitzt, etwas filedialog zu nennen.
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:1 Nutzer sagt Danke an RPP63 für diesen Beitrag 28
• datenmaus
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
jahrelang hat's keinen gestört, aber nun ... Dürfte etwa seit 2017,2018 so gewesen sein.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• datenmaus