Herbers Excel-Forum - das Archiv
Workbooks(1).Activate läuft nicht
Betrifft: Workbooks(1).Activate läuft nicht
von: Erich
Geschrieben am: 24.09.2003 14:45:27
Hallo,
kann mir jemand bei folgendem Problem helfen? In einem Makro unter Excel 2000 läuft folgende Zeile
Workbooks(1).Activate
problemlos.
In der Schweiz läuft dieses komplett gleiche Makro unter Excel 2002 nicht durch. Der obige Befehl wird ignoriert und danach läuft das Makro auf Fehler, weil es die falsche Arbeitsmappe hat.
Vielen Dank im Voraus
Gruß
Erich
Betrifft: AW: Workbooks(1).Activate läuft nicht
von: ChrisL
Geschrieben am: 24.09.2003 14:53:31
Hi Erich
Kenne zwar das spezifische Problem nicht, aber auch hier gilt der alte Spruch... 'in 99 % aller Fälle kann auf Select und Activate' verzichtet werden.
wie schaut denn dein Code aus?
Gruss
Chris
Betrifft: xlstart ?
von: IngoG
Geschrieben am: 24.09.2003 14:59:12
Hallo Erich,
hast Du evt. einmal eine Datei in der xlstart, die ausgeblendet ist und einmal nicht?
wenn Du zB automatisch die personl.xls startest müßte diese die lfdNr 1 haben ?!
Gruß Ingo
Betrifft: AW: Workbooks(1).Activate läuft nicht
von: Erich
Geschrieben am: 24.09.2003 15:50:18
Hallo Chris,
der Code ist folgender:
Sub Budgetholen()
Application.ScreenUpdating = False
ActiveSheet.Visible = True
Sheets("Dateiname").Activate
spalte = Range("E1").Value
ChDir "Z:\Budget2003\Kostenplanung 2003"
Workbooks.Open Filename:= _
"Z:\Budget2003\Kostenplanung 2003\Kosten Gesamt 2003.XLS", UpdateLinks:=0
Sheets("KST 1").Select
ActiveWindow.ScrollWorkbookTabs Position:=xlLast
Sheets(Array("KST 1", "KST 2", "KST 3", "KST 4", "KST 5", "KST 6", "KST 7", "KST 8", _
"KST 9", "KST 10", "KST 11", "KST 12", "KST 13", "KST 14", "KST 15", "KST 16", "KST 17" _
, "KST 18", "KST 19", "KST 20", "KST 21", "KST 22", "KST 23", "KST 24", "KST 25")). _
Select
Sheets("KST 1").Activate
Sheets(Array("KST 26", "KST 27", "KST 28", "KST 29", "KST 30")).Select Replace:= _
False
'ActiveWindow.SmallScroll ToRight:=5
Range("H19").Select
ActiveCell.Offset(rowOffset:=0, columnOffset:=spalte).Activate
ActiveCell.Name = "AnfangSpalte"
ActiveCell.Offset(rowOffset:=15, columnOffset:=0).Activate
ActiveCell.Name = "EndeSpalte"
Range("AnfangSpalte:EndeSpalte").Select
Selection.Copy
'Windows("KST-Liste IS-CH mit Budget 2003-09.xls").Activate
Workbooks(1).Activate
Sheets("KST 1").Select
Sheets(Array("KST 1", "KST 2", "KST 3", "KST 4", "KST 5", "KST 6", "KST 7", "KST 8", _
"KST 9", "KST 10", "KST 11", "KST 12", "KST 13", "KST 14", "KST 15", "KST 16", "KST 17" _
, "KST 18", "KST 19", "KST 20", "KST 21", "KST 22", "KST 23", "KST 24", "KST 25")). _
Select
Sheets("KST 1").Activate
Sheets(Array("KST 26", "KST 27", "KST 28", "KST 29", "KST 30")).Select Replace:= _
False
Range("D11").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
Application.CutCopyMode = False
Windows("Kosten Gesamt 2003.XLS").Activate
Range("H35").Activate
Range("H35").Select
ActiveCell.Offset(rowOffset:=0, columnOffset:=spalte).Activate
ActiveCell.Name = "DreiFünf"
Application.CutCopyMode = False
Selection.Copy
'Workbooks("KST-Liste IS-CH mit Budget 2003-09.xls").Activate
Workbooks(1).Activate
Range("D28").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("Kosten Gesamt 2003.XLS").Activate
Application.CutCopyMode = False
Range("H37").Activate
Range("H37").Select
ActiveCell.Offset(rowOffset:=0, columnOffset:=spalte).Activate
ActiveCell.Name = "DreiFünf"
Application.CutCopyMode = False
Selection.Copy
'Workbooks("KST-Liste IS-CH mit Budget 2003-09.xls").Activate
Workbooks(1).Activate
Range("D27").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Startseite").Select
Windows("Kosten Gesamt 2003.XLS").Activate
ActiveWindow.Close
Workbooks.Open Filename:= _
"Z:\Budget2003\Kostenplanung 2003\Kosten Gesamt 2003 kummuliert.XLS", _
UpdateLinks:=0
Sheets("KST 1").Select
Sheets(Array("KST 1", "KST 2", "KST 3", "KST 4", "KST 5", "KST 6", "KST 7", "KST 8", _
"KST 9", "KST 10", "KST 11", "KST 12", "KST 13", "KST 14", "KST 15", "KST 16", "KST 17" _
, "KST 18", "KST 19", "KST 20", "KST 21", "KST 22", "KST 23", "KST 24", "KST 25")). _
Select
Sheets("KST 1").Activate
Sheets(Array("KST 26", "KST 27", "KST 28", "KST 29", "KST 30")).Select Replace:= _
False
Range("H19").Select
ActiveCell.Offset(rowOffset:=0, columnOffset:=spalte).Activate
ActiveCell.Name = "AnfangSpalte"
ActiveCell.Offset(rowOffset:=15, columnOffset:=0).Activate
ActiveCell.Name = "EndeSpalte"
Range("AnfangSpalte:EndeSpalte").Select
Selection.Copy
'Workbooks("KST-Liste IS-CH mit Budget 2003-09.xls").Activate
Workbooks(1).Activate
Sheets("KST 1").Select
Sheets(Array("KST 1", "KST 2", "KST 3", "KST 4", "KST 5", "KST 6", "KST 7", "KST 8", _
"KST 9", "KST 10", "KST 11", "KST 12", "KST 13", "KST 14", "KST 15", "KST 16", "KST 17" _
, "KST 18", "KST 19", "KST 20", "KST 21", "KST 22", "KST 23", "KST 24", "KST 25")). _
Select
Sheets("KST 1").Activate
Sheets(Array("KST 26", "KST 27", "KST 28", "KST 29", "KST 30")).Select Replace:= _
False
Range("H11").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
'Range("H28").Select
Application.CutCopyMode = False
Windows("Kosten Gesamt 2003 kummuliert.XLS").Activate
Range("H35").Activate
Range("H35").Select
ActiveCell.Offset(rowOffset:=0, columnOffset:=spalte).Activate
ActiveCell.Name = "DreiFünf"
Application.CutCopyMode = False
Selection.Copy
'Workbooks("KST-Liste IS-CH mit Budget 2003-09.xls").Activate
Workbooks(1).Activate
Range("H28").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1:J1").Select
Windows("Kosten Gesamt 2003 kummuliert.XLS").Activate
Application.CutCopyMode = False
Range("H37").Activate
Range("H37").Select
ActiveCell.Offset(rowOffset:=0, columnOffset:=spalte).Activate
ActiveCell.Name = "DreiFünf"
Application.CutCopyMode = False
Selection.Copy
'Workbooks("KST-Liste IS-CH mit Budget 2003-09.xls").Activate
Workbooks(1).Activate
Range("H27").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("Kosten Gesamt 2003 kummuliert.XLS").Activate
ActiveWindow.Close
Sheets("Dateiname").Activate
ActiveSheet.Visible = False
Call Blaetterausblenden
Sheets("Startseite").Select
Application.ScreenUpdating = True
End Sub
Gruß
Erich
Betrifft: AW: Workbooks(1).Activate läuft nicht
von: GerdW
Geschrieben am: 24.09.2003 16:01:02
Teste doch mal, obs überhaupt deine gewünschte Mappe ist
msgbox workbooks(1).name
Gerd
Betrifft: AW: Workbooks(1).Activate läuft nicht
von: ChrisL
Geschrieben am: 24.09.2003 16:24:13
Hi Erich
Da hab ich mich mal wieder weit aus dem Fenster gelehnt, denn da gäbe es so einiges zum Ändern. :-)
z.B.
Sheets("KST 1").Select
ActiveWindow.ScrollWorkbookTabs Position:=xlLast
Sheets(Array("KST 1", "KST 2", "KST 3", "KST 4", "KST 5", "KST 6", "KST 7", "KST 8", _
"KST 9", "KST 10", "KST 11", "KST 12", "KST 13", "KST 14", "KST 15", "KST 16", "KST 17" _
, "KST 18", "KST 19", "KST 20", "KST 21", "KST 22", "KST 23", "KST 24", "KST 25")). _
Select
Sheets("KST 1").Activate
Sheets(Array("KST 26", "KST 27", "KST 28", "KST 29", "KST 30")).Select Replace:= _
False
'ActiveWindow.SmallScroll ToRight:=5
Range("H19").Select
Spontan scheint mir dass du einfach alle 30 Blätter selektierst. Du könnest z.B. alle 30 Blätter einmalig in einer Variable speichern auf die du bei Bedarf wieder zurück greiffen kannst.
Option Explicit
Sub t()
Dim i As Byte
Dim Arr(1 To 30) As Variant
For i = 1 To 30
Arr(i) = "KST " & i
Next i
Sheets(Arr).Select
End Sub
dann z.B.
Range("H35").Activate
Range("H35").Select
ActiveCell.Offset(rowOffset:=0, columnOffset:=spalte).Activate
ActiveCell.Name = "DreiFünf"
Cells(35, 8 + spalte).Name = "DreiFünf"
oder Kopieren kannst du z.B. so...
Workbooks("XY").Worksheets("Z").Range("A1").Copy Workbooks("AB").Worksheets("X").Range("A1")
Damit kannst du auf das Select beim Kopieren verzichten.
Gruss
Chris
Betrifft: AW: Workbooks(1).Activate läuft nicht
von: Erich
Geschrieben am: 24.09.2003 16:35:22
Hallo Chris,
vielen Dank für Deine Verbesserungen. Da merkt man halt doch den Fachmann. Aber dadurch lerne ich jeden Tag dazu. Ich werde diese Änderungen einbauen und vielleicht löst dies schon das Problem.
Gruß
Erich