01.09.2022, 14:50
also es funktioniert auch mit MulitselectMulti, dann öffnet der mit einem Doppelklick alle markierten Dateien, ist aber nicht schlimm.
die Userform datei_exist ist fertig: (abgesehen davon die "Suche" via "Dir" auf Unterordner und deren Inhalte zu erweitern)
in Userform save_as fehlt nur noch die erwähnte Funktion, bei cancel_Click jegliche Speicheraktion zu stoppen, wie gesagt inklusive derer, welche BeforeSave initial getriggert hat.
die Userform datei_exist ist fertig: (abgesehen davon die "Suche" via "Dir" auf Unterordner und deren Inhalte zu erweitern)
Code:
Option Explicit
Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hWnd As LongPtr, ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPtr
Private Sub datcancel_Click()
With ActiveWorkbook.Sheets("Blatt 1")
.Unprotect
.Range("DB12").Value = 1
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=False
End With
Unload Me
End Sub
Private Sub datignore_Click()
Unload Me
End Sub
Private Sub datdelete_Click()
Dim i As Integer
For i = 0 To DatName.ListCount - 1
If DatName.Selected(i) Then
If MsgBox("Wollen Sie " & DatName.List(i) & " wirklich löschen?", vbOKCancel, "") = vbOK Then
Kill (save_as.save_path.Value & DatName.List(i))
While ListArr <> ""
DatName.AddItem ListArr
ListArr = Dir
Wend
Else: Exit Sub
End If
End If
Next
If DatName = "" Then
Unload Me
End If
End Sub
Private Sub DatName_DblClick(ByVal cancel As MSForms.ReturnBoolean)
Dim i As Integer
For i = 0 To DatName.ListCount - 1
If DatName.Selected(i) Then
ShellExecute 0&, "Open", save_as.save_path.Value & DatName.List(i), 0, 0, &H9&
End If
Next
End Sub
Private Sub UserForm_Initialize()
DatNr.Value = wbkname
While ListArr <> ""
DatName.AddItem ListArr
ListArr = Dir
Wend
End Sub