vielleicht könntest du mir nochmals kurz helfen. Du hast mir mit dem folgenden Code zur Lösung meines Problemes verholfen. Vielen Dank nochmal dafür.
Eine kurze Frage hätte ich hier noch:
Was muss ich in den Code einfügen, wenn alle Listbox Elemente die gefunden werden von vorneherein "gechecked" sein sollen. Die Abwahl einzelner ist weniger Aufwand...
Hier dein Code:
Option Explicit
Private Sub CommandButton1_Click()
Dim objWorkbook As Workbook
Dim lngIndex As Long
Call Hide
Application.ScreenUpdating = False
For lngIndex = 0 To ListBox1.ListCount - 1
With ListBox1
If .Selected(pvargIndex:=lngIndex) Then
Set objWorkbook = Workbooks.Open(Filename:= _
.List(pvargIndex:=lngIndex, pvargColumn:=1) & _
.List(pvargIndex:=lngIndex, pvargColumn:=0))
With objWorkbook
Call .Worksheets(.Worksheets.Count).Select
Application.Run ("'" & .Name & "'!Daten_Rechnungen_holen")
'Call Run(Macro:=.Name & "!Daten_Rechnung_holen")
Call .Close(SaveChanges:=True)
End With
End If
End With
Next
Application.ScreenUpdating = True
MsgBox "Fertig !"
CommandButton2.Value = True
End Sub
Private Sub CommandButton2_Click()
Call Unload(Object:=Me)
End Sub
Private Sub UserForm_Initialize()
Const FOLDER_PATH As String = "\\NAS-2T\Bau\Projekte\Verschoben auf Server\0005 _
Baustellenbewertungen\" 'anpassen !!!
Dim lngYear As Long
Dim strFileName As String
For lngYear = 2016 To 2030
strFileName = Dir$(PathName:=FOLDER_PATH & CStr(lngYear) & "\*.xlsm")
Do Until strFileName = vbNullString
With ListBox1
Call .AddItem(pvargItem:=strFileName)
.List(.ListCount - 1, 1) = FOLDER_PATH & CStr(lngYear) & "\"
End With
strFileName = Dir$
Loop
Next
End Sub
Vielen Dank vorab.
Gruß
Andreas