Habein in der Firma endlich auf Office 2010 umgestellt.
Nun bekomme ich bei einer Excel Mappe den Fehler bei unteren Code.
Wüsste zufällig jeman wieso?
Gruß
Heinz
Private Sub CommandButton1_Click()
UserForm1.Show vbModeless
End Sub
Private Sub CommandButton1_Click()
UserForm1.Show vbModeless
End Sub
ntferne "vbModeless". Eine Userform ist in Office 2010 standardmäßig Modal, da braucht es "vbModeless" nicht.
Private Sub UserForm_Initialize()
Dim t As Date
' Pfad, wo sich die SAP_Dateien befinden
strPfad = GetPath
With UF
.MaxButton = False: .MinButton = True
.BorderStyle = xlÄnderbar
.Create UserForm1
End With
'Schaltflächen-Effekt
Set varButton(1).butGroup = cmdBerechnen
Set varButton(2).butGroup = cmdEintragen
Set varButton(3).butGroup = cmdDrucken
Set varButton(4).butGroup = cmdBearbeiten
Set varButton(5).butGroup = cmdEnde
' SAP-Nummern einlesen
Call DATEILISTE_SAP(strPfad)
' Combobox 'cmbKw' mit Kalenderwoche 1-53 füllen
For n = 1 To 53: cmbKw.AddItem n: Next n
' jetzige Kalenderwoche ermitteln
KW = KALENDERWOCHE_DIN(Date)
cmbKw.ListIndex = KW
' Datum des Montages lt. Kalenderwoche ermitteln
Jahr = Year(Date)
t = MONTAG_kW(KW, Jahr)
' Combobox 'cmbLinie' füllen
With cmbLinie
.AddItem "311": .AddItem "312": .AddItem "321": .AddItem "322"
.AddItem "331": .AddItem "332": .AddItem "333": .ListIndex = 0
End With
' Produktionstage
For n = 1 To 170: cmbProdTage.AddItem n: Next n
cmbProdTage.ListIndex = 4
cmbSAP.SetFocus
End Sub
Sub DATEILISTE_SAP(Verzeichnis As String)
Dim TMP As String
Dim fs As Object
' Überprüfen, ob angegebener Ordner existiert
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FolderExists(Verzeichnis) = False Then 'Verzeichnis existiert nicht
' Nach Verzeichnis suchen
Verzeichnis = GetPath
End If
' xls-Dateien im Verzeichnis
With Application.FileSearch
.LookIn = Verzeichnis
.Filename = "*.xlsm"
.Execute
If .FoundFiles.Count = 0 Then
MsgBox "Keine SAP-Dateien im Verzeichnis"
Exit Sub
End If
ReDim SAPDateien(.FoundFiles.Count - 1)
For n = 1 To .FoundFiles.Count
TMP = Dir(.FoundFiles(n))
SAPDateien(n - 1) = Left(TMP, Len(TMP) - 4)
Next n
' In die Combobox 'cmbSAP'der UF schreiben
UserForm1.cmbSAP.List = SAPDateien
UserForm1.cmbSAP.ListIndex = 0
End With
End Sub
Da musst du eine alternative zu FileSearch verwenden.. Eine von vielen Alternativen findest du hierPrivate Sub UserForm_Initialize()
Dim t As Date
' Pfad, wo sich die SAP_Dateien befinden
'strPfad = GetPath
strPfad = "H:\Vetropack\Womat\PAs - nach SAP-Nummer\"
Sub DATEILISTE_SAP(ByVal sFol As String, sFileExt As String)
Dim fileName As String
Dim nfiles As Long
Dim fso As Object, fsoFld As Object
Set fso = CreateObject("Scripting.FileSystemObject")
On Error GoTo Catch
Set fsoFld = fso.GetFolder(sFol)
fileName = Dir(fso.BuildPath(fsoFld.Path, sFileExt))
While Len(fileName) 0
fileName = fileName + FileLen(fso.BuildPath(fsoFld.Path, fileName))
nfiles = nfiles + 1
UserForm1.cmbSAP.AddItem fso.BuildPath(fsoFld.Path, fileName) ' Load ListBox
fileName = Dir() ' Get next file
DoEvents
Wend
UserForm1.cmbSAP.ListIndex = 0
Exit Sub
Catch: fileName = ""
Resume Next
End Sub
Gruss Rainer