Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Excel VBA, FileDialog(msoFileDialogOpen) - Filterung nach Dateityp UND Filename

Frage Entwicklung VB for Applications

Mitglied: chef1568

chef1568 (Level 1) - Jetzt verbinden

17.02.2015, aktualisiert 23.02.2015, 1670 Aufrufe, 6 Kommentare

Hallo Zusammen,

Ich möchte eine gewisse Vorfilterung bei der Dateiauswahl machen.
Hierzu sollte nach FileTyp und einem String im Dateinamen erfolgen. Leider funktioniert derzet nur eine dieser Optionen.

1. Bei untem gezeigtem Code wird nach dem Stringinhalt gefiltert - aber nicht die Dateiedung beachtet
2. wenn ich die Dateitypauswahl nutze ist die Stringfilterung wieder nicht aktiv.

01.
Dim Path, Nummer As String 
02.
 
03.
'Pfadauswahl 
04.
Path = "C:\Users\Public\Documents\" 
05.
 
06.
'Nummernauswahl 
07.
Nummer = ActiveSheet.Range("C7") 
08.
 
09.
'Öffne Auswahldialog 
10.
With Application.FileDialog(msoFileDialogOpen) 
11.
    .AllowMultiSelect = False 
12.
    .Title = "Protokoll laden" 
13.
    .Filters.Clear 
14.
    .Filters.Add "Protokoll", "*.xml", 1 
15.
    .Filters.Add "Alle Dateien", "*.*" 
16.
    '.InitialView = msoFileDialogViewDetails 
17.
    .InitialFileName = Path & "*" & Nummer & "*" 
18.
    If .Show Then 
19.
        XMLDATEI = .SelectedItems(1) 
20.
    End If 
21.
End With
wie kann ich beide Optionen realisieren?

Danke schonmal
Mitglied: 114757
17.02.2015, aktualisiert um 22:14 Uhr
Moinsens,
01.
Dim Path, Nummer As String 
02.
 
03.
'Pfadauswahl 
04.
Path = "C:\Users\Public\Documents\" 
05.
 
06.
'Nummernauswahl 
07.
Nummer = ActiveSheet.Range("C7") 
08.
 
09.
'Öffne Auswahldialog 
10.
With Application.FileDialog(msoFileDialogOpen) 
11.
    .AllowMultiSelect = False 
12.
    .Title = "Protokoll laden" 
13.
    .Filters.Clear 
14.
    .Filters.Add "Protokoll", "*.xml", 1 
15.
    .Filters.Add "Alle Dateien", "*.*" 
16.
    .FilterIndex = 1 
17.
    .InitialFileName = Path & "*" & Nummer & "*" & ".xml" 
18.
    If .Show Then 
19.
        XMLDATEI = .SelectedItems(1) 
20.
    End If 
21.
End With
Gruß jodel32
Bitte warten ..
Mitglied: chef1568
17.02.2015 um 22:29 Uhr
Hallo jodel32,

leider hat deine Änderung nichts bewirkt...

mfg
Bitte warten ..
Mitglied: colinardo
LÖSUNG 23.02.2015, aktualisiert um 14:49 Uhr
Hallo chef1586,
so wie jodel es geschrieben hat geht es nur wenn der Filter auf *.* steht, weil der Dialog sonst die Dateierweiterung am Ende entfernt.
Mit einem dirty Trick kannst du den Dialog trotzdem dazu zwingen das gewünschte zu machen (Namensfilter + FIlterauswahl), indem du die Dateierweiterung einfach verdoppelst
01.
Dim Path, Nummer As String 
02.
 
03.
'Pfadauswahl 
04.
Path = "C:\Users\Public\Documents\" 
05.
 
06.
'Nummernauswahl 
07.
Nummer = ActiveSheet.Range("C7") 
08.
 
09.
'Öffne Auswahldialog 
10.
With Application.FileDialog(msoFileDialogOpen) 
11.
    .AllowMultiSelect = False 
12.
    .Title = "Protokoll laden" 
13.
    .Filters.Clear 
14.
    .Filters.Add "Protokoll", "*.xml", 1 
15.
    .Filters.Add "Alle Dateien", "*.*" 
16.
    .FilterIndex = 1 
17.
    .InitialFileName = Path & "*" & Nummer & "*" & ".xml" & ".xml" 
18.
    If .Show Then 
19.
        XMLDATEI = .SelectedItems(1) 
20.
    End If 
21.
End With
Grüße Uwe
Bitte warten ..
Mitglied: chef1568
23.02.2015 um 14:51 Uhr
Genau das ist das was ich gesucht habe.
Danke Uwe!

Was ich allerdings nicht wirklich verstehen kann, da ich ja der Dateityp xml bereits als Filter definiert hatte - dieser aber nicht ausgewertet wird...

Mfg
Bitte warten ..
Mitglied: colinardo
23.02.2015, aktualisiert um 15:42 Uhr
Zitat von chef1568:
Was ich allerdings nicht wirklich verstehen kann, da ich ja der Dateityp xml bereits als Filter definiert hatte - dieser aber
nicht ausgewertet wird...
Der Dateinamensfilter im Eingabefeld überschreibt den Dateitypfilter. Kannst du ganz einfach nachprüfen Und wenn dann dort als Name etwas steht wie *Nummer* anstatt *Nummer*.xml nimmt er alle Dateien mit der Nummer im Namen, egal welches Dateityps, ist leider so.

Grüße Uwe
Bitte warten ..
Mitglied: chef1568
23.02.2015 um 19:46 Uhr
Hallo Uwe,

ja, das funktioniert alles super.
Aber bei vielen Elementen (>500) dauert es ziemlich lange, bis sich das Fenster zur Dateiauswahl erstmal öffnet.
Mir ist schon klar, dass auch das Script einige Zeit benötigt um die >500 Dateinamen zu zerlegen - aber gleich 2...3sec ist schon recht lange.

Gibt es da eine performantere Lösung?

mfg
Bitte warten ..
Ähnliche Inhalte
Microsoft
Excel-Datei mit VBA speichern
gelöst Frage von 116408Microsoft6 Kommentare

Guten Tag Ich habe eine Excel-Datei, in der in D4 der Kundenname und in D11 das Projekt benennt wird. ...

Basic
Excel VBA enthält
Frage von AngelsBasic

Guten Tag Ich bin ganz neu in diesem Forum und hätte eine Frage. Wie kann ich bei diesem bestehenden ...

Microsoft Office
Excel VBA Wert hochzählen
gelöst Frage von Florian86Microsoft Office1 Kommentar

Hallo, ich habe im VBA Code folgendes stehen Range("E10") = Range("E10") + 1 Jetzt ist der Wert bei schon ...

Microsoft Office
Unterordner durchsuchen Excel VBA
Frage von schwalbepilotMicrosoft Office1 Kommentar

Hi, ich habe mir ein Makro gebastelt, mit dem ich Daten aus mehreren Word Tabellen auslesen kann. Das Makro ...

Neue Wissensbeiträge
Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 5 StundenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 5 StundenSicherheit6 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 6 StundenSicherheit5 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Sicherheit

Meltdown und Spectre: Die machen uns alle was vor

Information von Frank vor 6 StundenSicherheit12 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Heiß diskutierte Inhalte
Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von 92943Windows 1031 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...

Batch & Shell
Anmeldevorgang für Informatikraum (Schule) unter Windows
gelöst Frage von IngenieursBatch & Shell29 Kommentare

Hey zusammen, ich werde in naher Zukunft den Informatik Raum meiner jetzigen Schule von dem aktuellen Betreiber übernehmen (Vertrag ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...

Netzwerkgrundlagen
Welches Modem für VDSL 50000 der T-Com
Frage von Windows10GegnerNetzwerkgrundlagen19 Kommentare

Hallo, ein Kollege von mir will sich VDSL50000 von der T-Com holen, um daran einen Server zu betreiben. Ich ...