Vermeiden von "Sheets("Tabelle1").Select"
21.04.2015 19:05:43
"Sheets("Tabelle1").Select"
ich bin seit einigen Tagen dabei VBA zu nutzen. Eigentlich klappt es ziemlich gut.
Nun sitze ich seit mehreren Stunden an einem Problem:
Und zwar muss ich jedesmal den Code "Select Sheet" nutzen da es sonst zum Laufzeitfehler 1004 kommt. Wie kann ich das vermeiden?
Dieser Code funktioniert:
Sub Gamsblatt()
' Gamsdatenblatt_erstellen Makro
'Replace "Sheet1" with the name of the sheet to be copied.
ActiveWorkbook.Sheets("Gams_Bsp-Bsp").Copy After:=Sheets(ActiveWorkbook.Sheets.Count)
ActiveSheet.Name = "Gams_Neu-Neu"
' Parameter definieren
Dim lspalte2 As Long
lspalte2 = Worksheets("Daten_Neu-Neu").Cells(8, Columns.Count).End(xlToLeft).Column
Sheets("Daten_Neu-Neu").Select
ActiveSheet.Range(Cells(8, 1), Cells(8, lspalte2)).Copy
ActiveSheet.Paste Destination:=Worksheets("Gams_Neu-Neu").Range("C4")
Worksheets("Gams_Neu-Neu").Range("B5").PasteSpecial Transpose:=True
Application.CutCopyMode = False
'Formel einfügen in Zelle C5
Sheets("Gams_Neu-Neu").Range("C5").FormulaR1C1 = _
"=IF(COUNTIF('Daten_Neu-Neu'!R[9]C2:R[9]C15,'Gams_Neu-Neu'!R4C),'Gams_Neu-Neu'!R3C,)"
'Matrix_Ausfuellen
Dim LastCol1 As Long, LastRow1 As Long
LastCol1 = Sheets("Gams_Neu-Neu").Cells(4, Columns.Count).End(xlToLeft).Column
LastRow1 = Sheets("Gams_Neu-Neu").Cells(Rows.Count, "B").End(xlUp).Row
Sheets("Gams_Neu-Neu").Select
Sheets("Gams_Neu-Neu").Range("C5", Cells(LastRow1, LastCol1)).FormulaR1C1 = Sheets(" _
Gams_Neu-Neu").Range("C5").FormulaR1C1
End Sub
Dieser Code funktioniert nicht (aber so hätte ich ihn eigentlich in der Art):
Sub Gamsblatt()
' Gamsdatenblatt_erstellen Makro
'Replace "Sheet1" with the name of the sheet to be copied.
ActiveWorkbook.Sheets("Gams_Bsp-Bsp").Copy After:=Sheets(ActiveWorkbook.Sheets.Count)
ActiveSheet.Name = "Gams_Neu-Neu"
' Parameter definieren
Dim lspalte2 As Long
lspalte2 = Worksheets("Daten_Neu-Neu").Cells(8, Columns.Count).End(xlToLeft).Column
Sheets("Daten_Neu-Neu").Range(Cells(8, 1), Cells(8, lspalte2)).Copy Destination:=Worksheets( _
"Gams_Neu-Neu").Range("C4")
Worksheets("Gams_Neu-Neu").Range("B5").PasteSpecial Transpose:=True
Application.CutCopyMode = False
'Formel einfügen in Zelle C5
Sheets("Gams_Neu-Neu").Range("C5").FormulaR1C1 = _
"=IF(COUNTIF('Daten_Neu-Neu'!R[9]C2:R[9]C15,'Gams_Neu-Neu'!R4C),'Gams_Neu-Neu'!R3C,)"
'Matrix_Ausfuellen
Dim LastCol1 As Long, LastRow1 As Long
LastCol1 = Sheets("Gams_Neu-Neu").Cells(4, Columns.Count).End(xlToLeft).Column
LastRow1 = Sheets("Gams_Neu-Neu").Cells(Rows.Count, "B").End(xlUp).Row
Sheets("Gams_Neu-Neu").Range("C5", Cells(LastRow1, LastCol1)).FormulaR1C1 = Sheets(" _
Gams_Neu-Neu").Range("C5").FormulaR1C1
End Sub
Danke schonmal für die Hilfe. Ich hoffe, dass ich alle Regeln soweit eingehalten habe.