Excel VBA index außerhalb des gültigen Bereichs

Hallo zusammen,

ich habe folgendes Druckskript geschrieben:

Public Sub Report_drucken()

Dim aktuell As Integer 'Aktuell aktiviertes Sheet
Dim Druck() As String
Dim J As Integer
Dim i As Integer

'Druckerauswahl
Application.Dialogs(xlDialogPrinterSetup).Show

aktuell = ActiveSheet.Index 'Merkt sich aktuelles Sheet

Application.ScreenUpdating = False
Application.DisplayAlerts = False

i = Sheets(„Inhaltsverzeichnis“).Range(„SummeSeiten“).Value

ReDim Druck(1 To i)

i = 1

For J = 1 To 31
If Sheets(„Inhaltsverzeichnis“).Range(„Reportseiten“).Cells(J, 1) = 1 Then
Druck(i) = Sheets(„Inhaltsverzeichnis“).Range(„Tabellennamen“).Cells(J, 1)
i = i + 1
End If
Next J

Worksheets(Druck).Select
ActiveWindow.SelectedSheets.PrintOut Preview:=True

Worksheets(aktuell).Select 'Aktiviert das aktuelle Sheet wieder
Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub

Ich erhalte immer die Fehlermeldung „Index außerhalb des gültigen Bereichs“. Mit dem Debugger habe ich es schon mal laufen lassen. Die Varieblen i und j werden richtig gefüllt und das Array „Druck“ auch, d.h. es gibt die richtigen Tabellenblätter aus. Nur danach lassen diese sich nicht in der Druckvorschau anzeigen. Hat jemand vielleicht eine Idee? Vielen Dank für Eure Hilfe!

webkeks

Hi Jessica,
tut mir leid, aber ich kann Dir da nicht wirklich weiterhelfen, versuchs doch mal beim VB Archive, die haben eigentlich immer gute Tips.
http://www.vbarchiv.net/home/index.php

Hallo Jessica,

sorry, aber da bin ich leider nicht der richtige Ansprechpartner. Ich habe noch kein einziges VBA-Script für Excel geschrieben und müßte mich erst einarbeiten. Solange willst du sicher nicht warten.

MfG
Erhard

Hallo zusammen,

ich habe folgendes Druckskript geschrieben:

Public Sub Report_drucken()

Dim aktuell As Integer 'Aktuell aktiviertes Sheet
Dim Druck() As String
Dim J As Integer
Dim i As Integer

Antwort:

Fehler 1
Druck(i) =Sheets(„Inhaltsverzeichnis“).Range(„Tabellennamen“).Cells(J,1)
Du weist die Texte einem Variablenfeld „Druck“ zu das du dann nicht weiter verwendest

Fehler 2
Worksheets(Druck).Select
du wählst ein Tabellenblatt dessen Name in der Variablen „Druck“ stehen soll, dies ist aber ein Wertefeld und hier nicht zu gebrauchen

Besser:
zu 1:
erstelle ein Tabellblatt mit Namen „Druck“
fülle die Zeilen mit
Sheets(„Druck“).cells(i,1) =Sheets(„Inhaltsverzeichnis“).Range(„Tabellennamen“).Cells(J,1)

zu 2:
richtig ist dann Worksheets(„Druck“).Select

Gruß
Chris