ich habe folgendes Problem. Ich habe ein Makro geschrieben, welches immer in das Verzeichnis kopiert wird indem es gebraucht wird. In diesem Verzeichnis liegen dann auch die relevanten Dateien vom Typ V_BOM_V0*_All.xls, wobei das * einen Laufindex von 0 bis 9 repräsentiert. Wie kann ich nun die Eigenschaften der Dialogbox so ändern, dass der aktuelle Pfad, in dem sich das Makro befindet, auch automatisch der Pfad der Dialogbox ist?
Weiterhin besteht dann noch das Problem , dass der Dateipfad in der If Else Abfrage variiert, d.h. der Pfad ändert sich ständig!
Vielen Dank an Alle
Volker Mörkens
Anbei das Makro:
Dim xlDateiName As Variant
Dim i As Integer
Dim m As Integer
Dim msg
Dim Page0 As Boolean
Dim Page1 As Boolean
Dim Page2 As Boolean
Dim Page3 As Boolean
Dim Page4 As Boolean
Dim Page5 As Boolean
Dim Page6 As Boolean
Sub DialogDateiOeffnenMehrereDateien()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
xlDateiName = Application.GetOpenFilename( _
FileFilter:="Microsoft Excel-Dateien (*.xls), *.xls", _
Title:="Eine oder mehrere Datei(en) zum Öffnen auswählen", _
MultiSelect:=True)
If TypeName(xlDateiName) = "Boolean" Then Exit Sub
For i = LBound(xlDateiName) To UBound(xlDateiName)
msg = msg & i & ". Datei: " & xlDateiName(i) & vbCrLf
Workbooks.Open xlDateiName(i)
If (xlDateiName(i) = "P:\HW\BlueSaphir\CPRO70\x4\layout\_datus\list\xls\V_Bom_V00_All.xls") Then
Page0 = True
End If
If (xlDateiName(i) = "P:\HW\BlueSaphir\CPRO70\x4\layout\_datus\list\xls\V_Bom_V01_All.xls") Then
Page1 = True
End If
If (xlDateiName(i) = "P:\HW\BlueSaphir\CPRO70\x4\layout\_datus\list\xls\V_Bom_V02_All.xls") Then
Page2 = True
End If
If (xlDateiName(i) = "P:\HW\BlueSaphir\CPRO70\x4\layout\_datus\list\xls\V_Bom_V03_All.xls") Then
Page3 = True
End If
If (xlDateiName(i) = "P:\HW\BlueSaphir\CPRO70\x4\layout\_datus\list\xls\V_Bom_V04_All.xls") Then
Page4 = True
End If
If (xlDateiName(i) = "P:\HW\BlueSaphir\CPRO70\x4\layout\_datus\list\xls\V_Bom_V05_All.xls") Then
Page5 = True
End If
If (xlDateiName(i) = "P:\HW\BlueSaphir\CPRO70\x4\layout\_datus\list\xls\V_Bom_V06_All.xls") Then
Page6 = True
End If
Next i
MsgBox msg, Title:="Ausgewählte Datei(en)..."
Windows("V_Bom_V00_All.xls").Activate
Sheets("A_BOM_V00_AllE").Name = "(V00)"
m = 1
If Page1 = True Then
Windows("V_Bom_V01_All.xls").Activate
Cells.Select
Selection.Copy
Windows("V_Bom_V00_All.xls").Activate
Sheets.Add
Sheets("Tabelle" & m).Select
Sheets("Tabelle" & m).Name = "(V01)"
ActiveSheet.Paste
Windows("V_Bom_V01_All.xls").Activate
ActiveWorkbook.Close
m = m + 1
End If
If Page2 = True Then
Windows("V_Bom_V02_All.xls").Activate
Cells.Select
Selection.Copy
Windows("V_Bom_V00_All.xls").Activate
Sheets.Add
Sheets("Tabelle" & m).Select
Sheets("Tabelle" & m).Name = "(V02)"
ActiveSheet.Paste
Windows("V_Bom_V02_All.xls").Activate
ActiveWorkbook.Close
m = m + 1
End If
If Page3 = True Then
Windows("V_Bom_V03_All.xls").Activate
Cells.Select
Selection.Copy
Windows("V_Bom_V00_All.xls").Activate
Sheets.Add
Sheets("Tabelle" & m).Select
Sheets("Tabelle" & m).Name = "(V03)"
ActiveSheet.Paste
Windows("V_Bom_V03_All.xls").Activate
ActiveWorkbook.Close
m = m + 1
End If
If Page4 = True Then
Windows("V_Bom_V04_All.xls").Activate
Cells.Select
Selection.Copy
Windows("V_Bom_V00_All.xls").Activate
Sheets.Add
Sheets("Tabelle" & m).Select
Sheets("Tabelle" & m).Name = "(V04)"
ActiveSheet.Paste
Windows("V_Bom_V04_All.xls").Activate
ActiveWorkbook.Close
m = m + 1
End If
If Page5 = True Then
Windows("V_Bom_V05_All.xls").Activate
Cells.Select
Selection.Copy
Windows("V_Bom_V00_All.xls").Activate
Sheets.Add
Sheets("Tabelle" & m).Select
Sheets("Tabelle" & m).Name = "(V05)"
ActiveSheet.Paste
Windows("V_Bom_V05_All.xls").Activate
ActiveWorkbook.Close
m = m + 1
End If
If Page6 = True Then
Windows("V_Bom_V06_All.xls").Activate
Cells.Select
Selection.Copy
Windows("V_Bom_V00_All.xls").Activate
Sheets.Add
Sheets("Tabelle" & m).Select
Sheets("Tabelle" & m).Name = "(V06)"
ActiveSheet.Paste
Windows("V_Bom_V06_All.xls").Activate
ActiveWorkbook.Close
m = m + 1
End If
End Sub