Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
192to196
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
192to196
192to196
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Dialogbox

Dialogbox
13.12.2002 11:41:46
moerkens
Hallo Forum,

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

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Dialogbox
13.12.2002 13:12:25
GerdZ
Hallo Volker,

füge vor der Zeile mit Application.GetOpenFilename ein:

ChDrive Left$(ActiveWorkbook.Path, 1)
ChDir ActiveWorkbook.Path


Gruß
Gerd
Re: Dialogbox
13.12.2002 13:18:07
Draufi
du mußt die variable Zahl aus dem Dateinamen rausziehen und hast damit schon den Index deiner Page.

page = val(mid(xlDateiName(i), 9, 1))

val konvertiert strings in zahlen -> "25" -> 25
mid(text, start, länge) gibt >länge< zeichen ab position >start< aus >text< zurück.

öffnen oder aktivieren kannst du auch über diese Page.
mit worksheet(page)

oder so ähnlich
hab mal so was ähnliches machen müssen und daher weiß ich, das alle seiten über indexe angesprochen werden können.

wie auch immer, mit zeichenkettenoperationen soltest du dich mal auseinandersetzten.

greetz, Draufi

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige