Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1048to1052
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

"Index außerhalb des gültigen Bereichs"

"Index außerhalb des gültigen Bereichs"
11.02.2009 12:52:00
UweD
Hallo
heute brauche ich mal eure Hilfe
Ich habe in den meisten meiner Makros eine Fehlerbehandlung eingebaut.


Sub Vorlage()
    On Error GoTo Fehler
    Dim TB1, TB2
    Dim SP%, ZE&, LR%, LC&
    Dim RR%, CC&
    Set TB1 = Sheets("Tabelle1"'aus bestimmtem Blatt
    Set TB2 = ActiveSheet   'oder aus aktuellen Blatt
    SP = 1 'Spalte A
    ZE = 1 'Zeile 1
    LR = TB2.Cells(Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte
    LC = TB1.Cells(ZE, Columns.Count).End(xlToLeft).Column 'letzte Spalte einer Zeile
    RR = TB2.Cells.SpecialCells(xlCellTypeLastCell).Row 'Letzte Zeile des gesamten Blattes
    CC = TB2.Cells.SpecialCells(xlCellTypeLastCell).Column 'Letzte Spalte des gesamten Blattes
    Application.ScreenUpdating = False
    'Ende Grundeinstellungen
Fehler:
    If Err.Number  0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear
    Application.EnableEvents = True
    Application.DisplayAlerts = True
End Sub


Jetzt nach Umstieg auf Excel 2007 habe ich das Problem, daß mir, obwohl während des Ablaufs kein Fehler angezeigt wird, am Ende des Makros die Meldung erscheint.
Lasse ich das Makro per Einzelschritt durchlaufen, wird bei den beiden Zeilen
RR=
CC=
im Überwachungsfenster der Fehler gesetzt.
"Index außerhalb des gültigen Bereichs"
Hängt wohl mit "SpecialCells(xlCellTypeLastCell)" zusammen.
Trat so in der alten Version nicht auf.
Kann mir jemand das erklären, oder einen Tipp geben, wie ich das abstelle
Danke und Gruß
UD
- - -
Helfe mir momentan so....


    ' ...
    Err.Clear
Fehler:
    If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear
    Application.EnableEvents = True
    Application.DisplayAlerts = True
End Sub


ist aber nur eine Notlösung..

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: "Index außerhalb des gültigen Bereichs"
11.02.2009 13:11:00
D.Saster
Hallo,
die Spalten- und Zeilenvariablen müssen Long sein.
Gruß
Dierk
Komisch....
11.02.2009 13:59:00
Ramses
Hallo
Grundsätzlich hat D.Saster recht, dass die Variablen als Long zu deklarieren sind,... aber es scheint sich trotzdem um ein Problem mit den Specialcells zu handeln
Bau eine leere Tabelle1 mal so auf
XFC1 = X
XFC1048575 = X
A1048575 = X
Damit sind die vorletzen Zellen jeweils beschriftet, damit wir mit "end(xlup).row" keine Probleme haben.
Dann lass mal den code laufen und schau was passiert
Sub Vorlage_Check()
    Dim TB1, TB2
    Dim SP As Long, ZE As Long, LR As Long, LC As Long
    Dim RR As Long, CC As Long
    Set TB2 = Sheets("Tabelle2") 'oder aus aktuellen Blatt
    SP = 1 'Spalte A
    ZE = 1 'Zeile 1
    MsgBox "Fehler: " & Err.Number
    LR = TB2.Cells(Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte
    '+1 damit wir auf den gleichen Wert wie bei den SpecialCells kommen
    'und Variablendimensionierung ausschliessen können
    MsgBox "(End) LR: " & LR + 1 & ", Fehler: " & Err.Number
    MsgBox Err
    RR = TB2.Cells.SpecialCells(xlCellTypeLastCell).Row 'Letzte Zeile des gesamten Blattes
    MsgBox "(SpecialCells) RR: " & RR & ", Fehler: " & Err.Number & ", " & Err.Description
    Err.Clear
    'Letzte Spalten
    LC = TB2.Cells(ZE, Columns.Count).End(xlToLeft).Column 'letzte Spalte einer Zeile
    '+1 damit wir auf den gleichen Wert wie bei den SpecialCells kommen
    MsgBox "(End) LC: " & LC + 1 & ", Fehler: " & Err.Number
    Err.Clear
    CC = TB2.Cells.SpecialCells(xlCellTypeLastCell).Column 'Letzte Spalte des gesamten Blattes
    MsgBox "(SpecialCells) CC: " & CC & ", Fehler: " & Err.Number & ", " & Err.Description
    Err.Clear
    Application.ScreenUpdating = False
End Sub

Obwohl alle Variablen korrekt deklariert sind, und RR und CC korrekt und fehlerfrei ausgelesen werden, kommt es bei SpecialCells zu Fehlern
Gruss Rainer
Anzeige
AW: Komisch....
12.02.2009 09:25:00
UweD
Hallo ihr beide
Das mit Long habe ich vertauscht.
% ist Integer und reicht für die Spaltenzahl aus (32.767)
& ist Long
Die Kürzel % und & habe ich vertauscht
Aber wie Rainer richtig mitteilt liegt es nicht daran.
Gruß UweD

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige