AW: Globaler Array II
01.03.2008 11:50:32
Fred
Hallo Nepumuk,
vielen Dank für Deine vielen Antworten. Allerdings scheine ich irgendwie total auf dem Schlauch zu stehen. Ich habe jetzt folgendes gemacht:
1.) Beide Arrays mit "Public druckrange as variant"/"Public drucksheets as variant" im Modul "Allgemeines" deklariert
2.) In "Diese Arbeitsmappe" habe ich folgendes geschrieben:
Public Sub Workbook_Open()
' Fülle Arrays für Druck und PPT Einstellungen
' HIER WIRD FESTGELEGT, WO SICH ZU KOPIERENDE TABELLEN BEFINDEN
'ReDim drucksheets(1 To 6, 1 To 1)
'ReDim druckrange(1 To 6, 1 To 1)
drucksheets = Array("GuV", "GuV", "Bilanz", "Bilanz", "KFR", "KFR") '
druckrange = Array("B10:M45", "B49:M76", "B10:M72", "B47:M60", "B10:M55", "B47:M60")
End Sub
Ich bekomme dann aber immer noch in z.B. folgender Prozedur einen Fehler bei
"Sheets(drucksheets(i - 1)).Range(druckrange(i - 1)).Copy"
Public Sub copytablesforprint()
Dim i As Integer
Dim anzdb As Integer
Dim letztezeile As Integer
Dim sPrinter As String
Dim counter As Integer
Application.ScreenUpdating = False
'Berichte_drucken.Visible = False
' HIER WIRD FESTGELEGT, WO SICH ZU KOPIERENDE TABELLEN BEFINDEN
'ReDim drucksheets(1 To 6, 1 To 1)
'ReDim druckrange(1 To 6, 1 To 1)
'drucksheets = Array("GuV", "GuV", "Bilanz", "Bilanz", "KFR", "KFR") '
'druckrange = Array("B10:M45", "B49:M76", "B10:M72", "B47:M60", "B10:M55", "B47:M60")
'Sheets("DELTACOCKPIT").Select
'Cells(1, 1).Value = druckrange(1)
anzdb = Application.CountA(druckrange) ' Anzahl der verschiedenen Druckbereiche
' Erstelle temporäres Sheet [Sheets("tempdrucken")]
Application.DisplayAlerts = False
On Error Resume Next
Sheets("tempdrucken").Delete
On Error GoTo 0
Worksheets.Add
ActiveSheet.Name = "tempdrucken"
Application.DisplayAlerts = True
' Kopiere gewünschten Tabellen in temporäres Sheet
letztezeile = 0 ' Initialisierung der Variablen
Sheets("tempdrucken").Activate
counter = 0
ReDim zeilenindex(1 To anzdb, 1 To 1)
For i = 1 To anzdb
If Berichte_drucken.Controls("Checkbox" & i).Value = True Then
'Sheets(drucksheets(i - 1)).Visible = xlsheetsvisible
'Sheets(drucksheets(i - 1)).Range(druckrange(i - 1)).Select
'Selection.SpecialCells(xlCellTypeVisible).Select
'Selection.Copy
Sheets(drucksheets(i - 1)).Range(druckrange(i - 1)).Copy
With ActiveSheet.Cells(letztezeile + 2, 2)
.PasteSpecial Paste:=xlValues
.PasteSpecial Paste:=xlFormats
End With
Application.CutCopyMode = False
If i
Was mache ich denn falsch? Ich wäre Dir wirklich dankbar, falls Du mir ein weiteres Mal helfen könntest!
Viele Grüße
Fred