Herbers Excel-Forum - das Archiv

Tabellendimensionen ermitteln

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Tabellendimensionen ermitteln
von: Jochen

Geschrieben am: 16.12.2006 22:19:51
Hi,
muss die Spaltenbreiten und Zeilenhöhen einer gesamten Tabelle in Point
ermitteln. Geht das auch ohne Schleife und vor allem, wie?
mfg Jochen
Bild

Betrifft: Wohl kaum! - Gruß owT
von: Luc:-?
Geschrieben am: 16.12.2006 23:15:24
:-?
Bild

Betrifft: AW: Tabellendimensionen ermitteln
von: EtoPHG

Geschrieben am: 16.12.2006 23:43:19
Hallo Jochen,$
Klar geht das auch ohne Schleife...
aber dafür auch mit sehr wenig Sinn...
so à la:
Gesamthöhe = Gesamthöhe + Tabelle.Zeile(1).Höhe
Gesamthöhe = Gesamthöhe + Tabelle.Zeile(2).Höhe
Gesamthöhe = Gesamthöhe + Tabelle.Zeile(3).Höhe

bis Dir oder dem Compi schlecht wird...
Gruss Hansueli
Bild

Betrifft: AW: Tabellendimensionen ermitteln
von: Jochen
Geschrieben am: 16.12.2006 23:55:15
Hi,
du bist ja noch witziger als das, was im Fersehen so als Comedy verramscht wird.
mfg Jochen
Bild

Betrifft: AW: Tabellendimensionen ermitteln
von: EtoPHG

Geschrieben am: 17.12.2006 00:01:07
Hallo Jochen,
Wenn Du mir einen plausiblen und trifftigen Grund geben kannst, warum ich keine Schleife bei der Lösung einsetzen darf, liefere ich Dir eine Lösung OHNE Schleife. Wenn Du mir aber keinen solchen Grund angeben kannst, muss ich Dich leider hängen lassen... (ohne Witz).
Gruss Hansueli
Bild

Betrifft: AW: Tabellendimensionen ermitteln
von: Jochen
Geschrieben am: 17.12.2006 00:05:15
Hi,
die einzelnen Zeilenhöhen beim Start einer Userform zu addieren dauert einfach einen Kick zu lange(ca. 1 Sekunde), deshalb bin ich ich auf der Suche nach einer schnelleren
Lösung, so es die geben sollte.
mfg Jochen
Bild

Betrifft: AW: Tabellendimensionen ermitteln
von: EtoPHG

Geschrieben am: 17.12.2006 00:29:12
Hallo Jochen,
Keinen Dunst, wie Dein Code aussieht, aber eine Sekunde ist sehr lang und da musst Du noch wesentlich anderes falsch machen, als nur eine Schleife zu haben. Aber vielleicht kannste ja damit was anfangen (als Beispiel für den Bereich A1:IV65535) :
Sub Til()
MsgBox "Höhe:" & Range("A1:IV65535").Height & vbCrLf & _
"Breite:" & Range("A1:IV65535").Width
End Sub

Gruss Hansueli
Bild

Betrifft: AW: Tabellendimensionen ermitteln
von: Jochen

Geschrieben am: 17.12.2006 00:41:25
Hi,
das hast du wohl nicht richtig getestet? Egal welche Zeilenhöhen festgelegt werden,
liefert dein Code immer 24575,25 für die Höhe. Ich brauche aber die reale Dimension,
die allerdings eine Schleife erfordert und alle Zeilenhöhen addiert, was aber zur
bereits erwähnten Sekunde Laufzeit führt.
mfg Jochen
Bild

Betrifft: AW: Tabellendimensionen ermitteln
von: EtoPHG

Geschrieben am: 17.12.2006 01:08:25
Hallo Jochen,
Tur mir leid, aber das liegt nicht an meinem Testen.
Excel hat da irgendwie eine Macke: Ab einer bestimmten anzahl zeilen, bleibt das Höhenresultat immer gleich. Also beklag Dich bitte bei Billy Gates. Dabei könntest Du mich lobend erwähnen, weil mit diesem Workaround funktioniert:
Sub Katastrophe()
MsgBox "Höhe:" & Range("A1:IV15000").Height _
+ Range("A15001:IV30000").Height _
+ Range("A30001:IV45000").Height _
+ Range("A45001:IV60000").Height _
+ Range("A60001:IV65536").Height & vbCrLf & _
"Breite:" & Range("A1:IV65536").Width
End Sub

Gruss Hansueli
Bild

Betrifft: AW: Tabellendimensionen ermitteln
von: Klaus-Dieter

Geschrieben am: 17.12.2006 01:21:13
Hallo Hansueli,
da kommt eine größere Zahl raus, aber wieder immer die gleiche. Ich denke auch, dass man da auf irgendwelche Limits stösst. Aber wenn die Berechnung bei unserem Freund eh nur eine Sekunde dauert, frage ich mich, warum man damit seine Zeit vergeudet, noch was schnelleres zu finden.
Viele Grüße Klaus-Dieter

Online-Excel
Bild

Betrifft: AW: Warum addieren? Er schreibt doch im...
von: Luc:-?

Geschrieben am: 17.12.2006 03:19:50
...Plural - Zeilenhöhen und Spaltenbreiten. Und warum Userform, wenn das zu lange dauert - das kann man doch samt Summenformel auch in ein Blatt ausgeben, wenn es nur zu Ermittlungszwecken ist... Oder es fehlt hier eine Info...
Gruß Luc :-?
Bild

Betrifft: Seltsame Höhenangaben in Range
von: EtoPHG

Geschrieben am: 17.12.2006 10:54:00
Hallo Dieter,
Hab ich gestern Nacht auch noch festgestellt, aber war dann zu Müde.
Also die Sache verhält sich sehr seltsam:
Wenn die Summe der Zeilenhöhen den Wert 24'575.25 überschreitet, wird nix mehr hinzugezählt. Es ergibt sich ungefähr folgende Tabelle, bei denen dieses Limit erreicht wird:
Zeilenhöhen    Anzahl Zeilen
0.5    65'536
0.75   32'768
Standard  12.75    1'929
Grösste  409.5        61

Um die korrekte Höhe zu ermitteln, müsste man also eine Schleife (Neiiiiiiinnnnn...) bauen, die sich in 1093 60er Schritten der Tabelle annimmt, da man die Zeilenhöhe vorher nicht kennt.
Gruss Hansueli
P.S. Vielleicht finde ich trotzdem noch eine Möglichkeit ohne Schleife, abwarten!
Gruss Hansueli
Bild

Betrifft: Die ULTIMATIVE Höhenermittlung
von: EtoPHG
Geschrieben am: 17.12.2006 11:25:25
Hallo zusammen,
Ohhhhhhhhhhhhhhhhnnnnee Schleiiiiiiiiiiiiffffe......
Einfacht geht's wohl nimmer:
MsgBox Range("A65536").Top + Range("A65536").Height
Gruss Hansueli
Bild

Betrifft: AW: Die ULTIMATIVE Höhenermittlung
von: Jochen
Geschrieben am: 17.12.2006 11:38:23
Hi,
Superidee, und so gehts dann auch gleich noch in Excel 12:
Sub tiler()
Dim rc As Long
rc = Rows.Count
MsgBox Rows(rc).Top + Rows(rc).Height
End Sub

mfg Jochen
Bild

Betrifft: AW: Seltsame Höhenangaben in Range
von: Jochen
Geschrieben am: 17.12.2006 11:26:19
Hi,
ohne Schleife wäre im Hinblick auf die 1.048.576 Zeilen im Kommenden Excel 12
schon hilfreich.
mfg Jochen
Bild

Betrifft: Höhenangaben gesamte Tabelle, für was?
von: EtoPHG
Geschrieben am: 17.12.2006 11:35:52
Hallo Jochen,
Würde mich trotzdem brennend interessieren, was Du mit dieser Höhenangabe anstellst...??
Gruss Hansueli
Bild

Betrifft: AW: Höhenangaben gesamte Tabelle, für was?
von: Jochen

Geschrieben am: 17.12.2006 11:58:06
Hi,
damit soll verhindert werden, das Diagramme per Code außerhalb des sichtbaren Bereichs verschoben werden können, klappt auch.
mfg Jochen
Bild

Betrifft: AW: Tabellendimensionen ermitteln
von: Klaus-Dieter

Geschrieben am: 17.12.2006 00:29:46
Hallo Jochen,
hilft das?
Sub groesse()
Cells(1, 5) = Range("A1:C1").Width
Cells(1, 6) = Range("A1:A3").Height
End Sub

Viele Grüße Klaus-Dieter

Online-Excel
Bild

Betrifft: AW: Tabellendimensionen ermitteln
von: Daniel Eisert

Geschrieben am: 17.12.2006 22:21:32
Hallo
ja, genau so, und wenn die Anzahl der Zeilen und Spalten nicht so genau bekannt ist, dann eben so:
(Cells(1,1) ggf durch eine Zelle ersezten, die innerhalb der Tabelle liegt):
Breite = cells(1,1).currentregion.width
Höhe: = cells(1,1).currentregion.height
Bleibt nur noch die Frage, ob der von Excel zurückgegebene Wert schon Points entspricht oder noch mal umgerechnet werden muß. Deswegen mach ich die Frage nochmal auf.
Gruß, Daniel
Bild

Betrifft: Erledigt oT
von: Jochen
Geschrieben am: 17.12.2006 22:26:43
ot
 Bild
Excel-Beispiele zum Thema "Tabellendimensionen ermitteln"
Letzte nichtleere Zelle ermitteln Blattname ermitteln
Kopfzeile der Zelle mit dem höchsten Wert ermitteln. Ermitteln von Datei- und Pfadnamen
Zellinhalt in zweitem Blatt ermitteln Zustand von Tabellenblatt-Checkboxes ermitteln
Wert in der Zelle neben dem Maximalwert ermitteln Summe einzelner Zellwerte ermitteln
Seitenumbruch ermitteln und Übertrag erstellen Anzahl von CheckBoxes in einer UserForm ermitteln