HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Entdecke rund 2 Millionen Excel-Lösungen im
Forumsarchiv
Forumbeitrag
Excel-Version des Fragestellers:
2022
Erfahrungslevel des Fragestellers:
Excel gut - VBA gut
snb
20.05.2026 15:21:55
AW: Ohne Verzögerung...
Ohne Beschränkungen (leider kein jenever)

Sub M_snb()

With Application.FileDialog(1)
.AllowMultiSelect = True
.InitialFileName = "D:\SNB_\*juni*.xls*"
If .Show Then .Execute
End With
End Sub
Als Antwort auf diesen Beitrag
Case
20.05.2026 15:05:24
Ohne Verzögerung...
Moin, :-)

… beim ersten Start wäre dann PowerShell. ;-)

Das in eine FJ.ps1 Datei: ;-)
$path = "C:\Temp"

$include = Read-Host "Dateiname MUSS enthalten"
$exclude = Read-Host "Dateiname DARF NICHT enthalten"
Get-ChildItem $path -Filter "*.xls*" |
Where-Object {$_.Name -like "*$include*" -and $_.Name -notlike "*$exclude*"} |
ForEach-Object {$excel.Workbooks.Open($_.FullName)}

Dann Doppelklick auf die Datei, oder per VBA aufrufen (man kann in PowerShell auch eine VB-Inputbox aufrufen). ;-)

Oder die Parameter aus VBA übergeben - dann so in VBA: ;-)
Option Explicit

Public Sub Main()
Dim strSuch As String
Dim strEx As String
strSuch = "Juni"
strEx = "abc"
Shell "powershell.exe -ExecutionPolicy Bypass -File ""C:\Temp\FJ.ps1"" """ & strSuch & """ """ & strEx & """", vbHide 'vbNormalFocus
End Sub

Und die FJ.ps1 Datei sieht dann so aus: ;-)
param([string]$Include, [string]$Exclude)

$path = "C:\Temp"
Get-ChildItem $path -Filter "*.xls*" |
Where-Object {$_.Name -like "*$Include*" -and $_.Name -notlike "*$Exclude*"} |
ForEach-Object {Start-Process $_.FullName}

Das wäre dann für die Wein- bzw. Sake Trinker. ;-)

Servus
Case
Folgenachrichten
Antwort auf Beitrag erstellen
Bitte einen Anwendernamen ohne @ eingeben.
Bitte das Passwort eingeben.
Bitte eine gültige E-Mail-Adresse eingeben.
Bitte einen Betreff eingeben.
Weitere Optionen
Aktivieren, wenn die Frage/der Beitrag noch nicht beantwortet wurde und unter Listen > Offene Threads erscheinen soll.
Beispieldatei hochladen

Bitte einen Nachrichtentext eingeben.