WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   VBA mit Excel 2000 (http://www.wcm.at/forum/showthread.php?t=73833)

dietz 17.10.2002 16:49

VBA mit Excel 2000
 
Hat von Euch vielleicht jemand schon mal versucht in Excel die (Zell-)Adressen der Seitenumbrüche auszulesen?
Ich habs versucht mit ActiveSheet.HPageBreaks(1 bis XXX).Location.Address. Da bekomme nur die Adresse des ersten Seitenumbruchs und das wars. Wenn ich mit ActiveSheet.HPageBreaks(2).Location.Address versuche den zweiten Seitenumbruch zu lokaliesieren bekomme ich als Ergebnis '', das war´s.
Also entweder ich mach´s falsch, oder das funktioniert einfach nicht.
Bitte und danke!

grüße,
dietz

canoma69 23.10.2002 10:45

Hab folgenden Makro getestet, zeigt alle Seitenumbrüche an?
mfg


Sub MeineSeitenumbrueche()
MsgBox ("Gefundene Umbrüche: " & ActiveSheet.HPageBreaks().Count)
For i = 1 To ActiveSheet.HPageBreaks().Count
MsgBox ("Umbruch " & i & ": " & ActiveSheet.HPageBreaks(i).Location.Address)
Next
End Sub

dietz 24.10.2002 11:10

Hallo canoma69!

Das funktioniert bei mir leider auch nicht. Ich bekomme die Anzahl der Zeilenumbrüche, und die Adresse des 1. zeilenumbruchs. Bei den weiteren Zeilenumbrüchen kommt nichts mehr, nur mehr ein Indexfehler.
Trotzdem danke für deine Mühe.
Falls das bei dir funktioniert, wäre interessant welche Version von Excel du hast. Ich habe Excekl 2000 (9.0.2812)

grüße,
dietz

canoma69 24.10.2002 16:43

Hallo Dietz,

bei mir funktioniert das Makro einwandfrei!

Excel 2000 (9.0.3821 SR1)

flinx 24.10.2002 16:59

Des ist interessant. Bei mir, Vers. 9.0.4402 SR1 funktionierts auch nicht (Indexfehler), so wie bei Dietz. Hm,... ???

canoma69 25.10.2002 12:07

Hab's selbst noch mal getestet:

Neue Excel-Datei, 500 Zeilen Text, VBA-Editor geöffnet Makro eingefügt und direkt gestartet.

Funktioniert prima. :)

In die Tabelle gewechselt, Extras/Makro ausgeführt
Funktioniert prima. :)

In der Tabelle Schaltfläche erstellt, Makro ausgeführt
Nix geht mehr :confused:

Zurück in VBA-Editor, Makro gestartet,
Index Fehler? :confused:

Nach mehrmaligen Test's Fehler nicht reproduzierbar, manchmal gehts dann wieder nicht?

flinx 25.10.2002 16:00

Zitat:

manchmal gehts dann wieder nicht?
Wird ja immer interessanter. Wenigstens gehts bei dir 'manchmal', bei mir noch nie...

Shadow 25.10.2002 16:39

Habe das Makro zwar noch nicht ausprobiert aber überlicherweise funktioniert das bei VBA grundsätzlich so:

Die Eigenschaft COUNT gibt immer die Anzahl der Einträge einer Auflistung wieder (in diesem Fall ist es die Auflistung der Zeilenumbrüche).

Wobei aber der Index der einzelnen Werte immer bei "0" beginnt und bei "Count-1" endet.
Daher müsste das Programm richtigerweise so lauten:

For i = 0 To ActiveSheet.HPageBreaks().Count-1
MsgBox ("Umbruch " & i & ": " & ActiveSheet.HPageBreaks(i).Location.Address)
Next i

Wenn man aber bis zum Wert "COUNT" zählt bekommt man normalerweise einen Indexfehler, da man sich mit dem Index ausserhalb der Auflistung befindet. Warum das bei einigen PC´s trotzdem funktioniert hat, kann ich nicht sagen....
Microsoft´s Wege sind unergründlich ;)

flinx 25.10.2002 17:33

@Shadow
Zitat:

immer bei "0" beginnt und bei "Count-1"
Stimmt IMHO nicht, hängt vom angesprochenen Objekt ab.

z.b. bei HPageBreaks fängt Indizierung bei 1 an. Wennst mit 0 machst, kriegst sofort Indexfehler.
Der 'seltsame' Punkt dabei ist, dass .Count die Anzahl richtig ausgibt, den 1. Eintrag auch auslesen kannst, aber ab dem 2. nicht mehr... :confused:

Zitat:

Microsoft´s Wege sind unergründlich
da hast allerdings recht :lol:

flinx 25.10.2002 18:01

@Dietz
Workaround:
PageBreak eigenschaft des Range-Objectes abfragen:
Code:

Sub tryit()
For i = 1 To 500
If ((Worksheets("Tabelle1").Rows(i).PageBreak = xlPageBreakAutomatic)
 Or (Worksheets("Tabelle1").Rows(i).PageBreak = xlPageBreakManual)) Then
MsgBox ("found" + Str(i))
End If
Next
End Sub

Ist ja nicht das wahre, aber wenigstens funktionierts...


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag