AW: Variable für Dateinamen
31.07.2005 19:57:15
Erich
Hallo Alex,
falls du in deinem Code auch mal eine andere Mappe als "ThisWorkbook" ansprechen willst, könntest du dir für die betreffende Mappe ein Objekt anlegen. Ein paar Verwendungsbeispiele stehen hier im Code:
Private Sub CommandButton1_Click()
Dim wbRoh As Workbook
ActiveWorkbook.SaveAs Filename:=UserForm1.TextBox1.Value
Workbooks.Open "Rohstoffliste.XLS"
Set wbRoh = ActiveWorkbook
' oder kürzer:
Set wbRoh = Workbooks.Open("Rohstoffliste.XLS")
Workbooks.Open "NochEineMappe.XLS"
' Die Namen der beteiligten Mappen:
MsgBox ThisWorkbook.Name & " " & wbRoh.Name & " " & ActiveWorkbook.Name
' Möglichkeiten/Beispiele:
' - Zugriff auf zwei Mappen, die nicht aktiv sind:
wbRoh.Worksheets(1).Cells(1, 1) = ThisWorkbook.Worksheets(1).Cells(1, 1)
' - Belegung einer Zelle in der aktiven Mappe mit einem Wert aus einer inaktiven:
ActiveWorkbook.Worksheets(1).Cells(2, 1) = ThisWorkbook.Worksheets(1).Cells(1, 1)
' oder
ActiveWorkbook.Worksheets(1).Cells(3, 1) = wbRoh.Worksheets(1).Cells(1, 1)
' - Aktivierung einer inaktiven Mappe (vielfach unnötig):
wbRoh.Activate
' oder
ThisWorkbook.Activate
' wenn wbRoh nicht mehr gebraucht wird
' (insbesonderte, wenn "Rohstoffliste.XLS" geschlossen wird):
wbRoh.Close
Set wbRoh = Nothing
End Sub
Wenn mehr der Name einer Mappe interessiert als der Inhalt, kannst du dir den Namen auch in einer String-Variablen merken. Auch darüber kannst du die Mappe später aktivieren:
Sub tst()
Dim strRoh As String
ActiveWorkbook.SaveAs Filename:=UserForm1.TextBox1.Value
Workbooks.Open "Rohstoffliste.XLS"
strRoh = ActiveWorkbook.Name
' oder kürzer:
strRoh = Workbooks.Open("Rohstoffliste.XLS").Name
Workbooks.Open "NochEineMappe.XLS"
' Die Namen der beteiligten Mappen:
MsgBox ThisWorkbook.Name & " " & strRoh & " " & ActiveWorkbook.Name
' Möglichkeiten/Beispiele:
' - Zugriff auf zwei Mappen, die nicht aktiv sind:
Workbooks(strRoh).Worksheets(1).Cells(1, 1) = ThisWorkbook.Worksheets(1).Cells(1, 1)
' - Belegung einer Zelle in der aktiven Mappe mit einem Wert aus einer inaktiven:
ActiveWorkbook.Worksheets(1).Cells(2, 1) = ThisWorkbook.Worksheets(1).Cells(1, 1)
' oder
ActiveWorkbook.Worksheets(1).Cells(3, 1) = Workbooks(strRoh).Worksheets(1).Cells(1, 1)
' - Aktivierung einer inaktiven Mappe (vielfach unnötig):
Workbooks(strRoh).Activate
' oder
ThisWorkbook.Activate
End Sub
Grüße aus Kamp-Lintfort
Erich