Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1220to1224
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

Fehler 9 bei HPageBreak

Fehler 9 bei HPageBreak
Reinhard
Hallo Wissende,
in der For-Codezeile kommt der Fehler 9, Index außerhalb...
Sub dd()
Dim HP As HPageBreak
ThisWorkbook.Worksheets("Tabelle1").Activate
MsgBox ThisWorkbook.Worksheets("Tabelle1").HPageBreaks.Count
For Each HP In ThisWorkbook.Worksheets("Tabelle1").HPageBreaks
MsgBox HP.Location.Address
Next HP
End Sub

Vorher wird die Anzahl korrekt mit 10 wiedergegeben.
Wodran liegt das, ich komme nicht darauf?
Hier eine Beispielmappe, damit nicht nachgebaut werden muß:
https://www.herber.de/bbs/user/75643.xls
Danke ^ Gruß
Reinhard

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Fehler 9 bei HPageBreak
09.07.2011 09:36:54
Hajo_Zi
Hallo Reinhard,
löse es so
Sub dd()
Dim HP As HPageBreak
Dim LoI As Long
ThisWorkbook.Worksheets("Tabelle1").Activate
MsgBox ThisWorkbook.Worksheets("Tabelle1").HPageBreaks.Count
For LoI = 1 To ThisWorkbook.Worksheets("Tabelle1").HPageBreaks.Count
'For Each HP In ThisWorkbook.Worksheets("Tabelle1").HPageBreaks.Count
MsgBox ThisWorkbook.Worksheets("Tabelle1").HPageBreaks(LoI).Location.Row - 1
Next
End Sub

AW: Fehler 9 bei HPageBreak
10.07.2011 07:03:42
Reinhard
Hallo Hajo,
es kommt der gleiche Fehler 9. Dieses mal aber erst im zweiten Durchlauf der For-Schleife wenn LoI den Wert 2 hat.
MsgBox ThisWorkbook.Worksheets("Tabelle1").HPageBreaks(LoI).Location.Row - 1
Lasse ich die Codezeile weg zählt Lol sauber durch bis 10 (11) bei den 10 Seitenumbrüchen.
Sub ddd()
Dim HP As HPageBreak
Dim LoI As Long
ThisWorkbook.Worksheets("Tabelle1").Activate
MsgBox ThisWorkbook.Worksheets("Tabelle1").HPageBreaks.Count
For LoI = 1 To ThisWorkbook.Worksheets("Tabelle1").HPageBreaks.Count
'For Each HP In ThisWorkbook.Worksheets("Tabelle1").HPageBreaks.Count
MsgBox ThisWorkbook.Worksheets("Tabelle1").HPageBreaks(LoI).Location.Row - 1
Next
End Sub

Die Links von Erich muß ich mir jetzt mal genau anschauen.
Gruß
Reinhard
Anzeige
Lösungscode gefunden
10.07.2011 08:15:07
Reinhard
Hallo Hajo und Erich,
per Zufall stieß ich im Internet auf alten Code von mir wo ich das Problem mal 2008 für einen anderen löste :-)
Sub tt()
Dim LastEntry As Long, I As Long, Merker As Long
Application.ScreenUpdating = False
Merker = ActiveWindow.View
ActiveWindow.View = xlPageBreakPreview
With Worksheets("Tabelle1")
LastEntry = .HPageBreaks.Count
For I = 1 To LastEntry
.Range("A" & .HPageBreaks(I).Location.Row).Insert Shift:=xlDown
Next I
End With
ActiveWindow.View = Merker
Application.ScreenUpdating = True
End Sub

Scheinbar braucht man dieses:
ActiveWindow.View = xlPageBreakPreview
Wenn in Normalansicht auch die Seitenumbrüche sichtbar sind so reicht das wohl nicht.
Trotzdem bleibt es mir ein Rätsel warum dann dabei in Hajos Code der Seitenumbruch 1 erkannt wird aber die anderen 9 nicht!?
Gruß
Reinhard
Anzeige
Microsoft Bug HPageBreaks
09.07.2011 10:04:41
Erich
Hi Reinhard,
nach ein wenig Tante Google habe ich u. A. diese Seiten gefunden:
http://excel.bigresource.com/Track/excel-UYPGWhlr/
http://www.office-loesung.de/ftopic419320_0_0_asc.php
http://www.ozgrid.com/forum/showthread.php?t=143954&page=1
In Letzterem fand sich dann die Erklärung mit diesem Link:
http://support.microsoft.com/kb/210663
Dass es M$ nicht schafft, in der VBA-Hilfe einen kleinen Hinweis auf den Fehler zu bringen, wundert nicht.
(Ich erwarte ja gar nicht, dass der Bug selbst beseitigt wird...)
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort und: Schönes Wochenende!
Anzeige
X-te Druckseite in UF-Image(box)
09.07.2011 12:39:52
Reinhard
großes Dankeschön an dich und selbstverständlich genauso an Hajo.
Ich hebe es in meinem Artikel nicht erwähnt weil ich mir nicht ausreichen, 100%, sicher war, aber ich glaube zu wissen vor Jahren hat ein sehr sehr ähnliucher Code problemlos funktiert.
Ich habe eben nur den "Erkärungs"-Link überflogen da scheint es ja zu stehen warum es mal klappt und mal nicht. Ich muß mir mal alle Links genau durchlesen.
Ich teste nachher gleich den Code von Hajo, wenn der funktioniert wovon ich erstmal blind ausgehe ist ja so gesehen meine Anfrage erledigt.
Wie in meiner Beispielmappe sichtbar wenn man in Tabelle1 auf die Schaltfläche klickt soll dann eine UF erscheinen mit im Wesentlichen zwei Image (-Boxen). In ihnen soll dann links z.B. als Bild der Inhalt von Druckseite 1 des Balttes Tabelle1 erscheinen, rechts dann Druckseite 2.
Bei Klick auf den Spinbutton soll dann das gleiche mit Druckseite 3 und 4 geschehen.
Um jetzt in Vba herauszufinden welchen Adressbereich Druckseite 1, Druckseite 2 usw. umfastt dachte ich ich krieg das raus indem ich halt prüfe in welcher zeile/zelle die HPageBreaks sind.
Trage das bei Workbooks_Open ins Hilfsblatt "Hilfe" ein und kann dann bei Klick auf den Spinbutton
und dessen Value aus dieser Hilfstabelle schnell auslesen welchen Adressbereich Druckseite 28 umfasst.
Langer Rede kurzer Sinn, wenn ihr da einen anderen, schnelleren, eleganteren Ansatz seht, immer her damit :-)
Die losgelöste reine Aufgabenstellung lautet Code zu finden der
aufgrund der Parameter/Argument-Übergabe einer Zahl in eine Image(-box) das Bild der entsprechenden Druckseite reinstellt.
Gruß ^ Danke
Reinhard
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige