Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1004to1008
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
Spaltenzahl bestimmen
29.08.2008 15:33:00
Tommi
Hallöchen,
ich habe folgendes Problem. Ich habe eine Datei mit tausenden von Zeilen. Unterteilt ist das Ganze in einzelne Blöcke a X Zeilen (10-300).
Nun brauche ich die maximale Länge eines jeden Blocks, wobei ich weiss, welche Zeile die Längste ist.
Im Moment habe ich also ein Array, in dem der erste Wert für den Block steht und der zweite Wert durch eine Schleifenvariable bestimmt wird, im Stil von
spalte = 256
Do While Cells(langezeile, spalte) = ""
spalte = spalte - 1
Next spalte
block(nr, 2)=spalte
Das mache ich für jeden Block und am Ende habe ich was ich will. Mein Problem ist, das dauert recht lange.
Von vorne geht es ein bisserl schneller, aber je nach Länge ist natürlich von vorne oder von hinten lesen länger.
Kann man das irgendwie beschleunigen? Also gibt es z.B. eine Funktion die in einer Zeile direkt die letzte benutzte Spalte ausgibt? Vlt. irgendein excelinterner Marker der abfragbar ist?
Das Problem ist, die Aktion muss sehr oft gemacht werden, weswegen ich das gerne optimieren würde.
Und noch eine Sache, ist es irgendwie möglich die spätere Druckbreite herauszubekommen? Ich meine die Zellenbreite ist ja eine Sache, aber je nach Schriftart/typ wird der Ausdruck ja leider unterschiedlich groß...
LG,
Tommi

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spaltenzahl bestimmen
29.08.2008 15:50:00
Chris
servus Tommi,
vllt-. hilft dir das:

Sub cv()
MsgBox Rows(lngzeile).Find(what:="*", SearchDirection:=xlPrevious).Column
End Sub


Findet die letzte beschriebene Spalte in lngzeile.
Gruß
Chris

AW: Spaltenzahl bestimmen
29.08.2008 15:50:00
mpb
Hallo Tommi,
z.B. so:

Sub spaltenzahl()
längstezeile = 1
MsgBox Cells(längstezeile, 256).End(xlToLeft).Column
End Sub


Gruß
Martin

AW: Spaltenzahl bestimmen
29.08.2008 16:56:00
Tommi
Hai Martin,
stellvertretend für die anderen, also einfach
laenge = Cells(längstezeile, 256).End(xlToLeft).Column
Perfekt, passt, klappt
Danke!
LG,
Tommi
Anzeige
AW: Spaltenzahl bestimmen
29.08.2008 16:58:47
Hajo_Zi
Hallo Tommi,
falls die letzte Zelle in der Spalte nicht belegt ist.

AW: Spaltenzahl bestimmen
29.08.2008 17:03:00
Tommi
Hai,
okay, aber das dürfte praktisch nie vorkommen, normal sind 20-100 Spalten, vlt. mal im Extremfall 150, aber mehr werden es vermutlich nie.
LG,
Tommi
AW: Spaltenzahl bestimmen
29.08.2008 17:02:00
Erich
Hi Tommi,
wenn du laenge nur für eine einzelne Zeile brauchst, ist das natürlich besser.
Eines würde ich noch ändern:
Bei einer künftigen Installation von Excel2007 (oder später) wird 256 nicht ausreichen,
also besser gleich Columns.Count statt 256.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Spaltenzahl bestimmen
29.08.2008 17:10:39
Tommi
Hallo,
hmm, das verstehe ich nicht ganz, an welcher Stelle soll ich das einsetzen?
laenge = Cells(längstezeile, Columns.Count).End(xlToLeft).Column
so?
LG,
Tommi
AW: ja, genau so :-) (owT)
29.08.2008 17:59:58
Erich
AW: Spaltenzahl bestimmen
29.08.2008 16:01:55
Erich
Hi Tommi,
damit bekommst du die rechteste Spalte eines Zeilenbereichs:

Option Explicit
Sub LetzteSpalteZeilenbereich()
Dim lngVon As Long, lngBis As Long
lngVon = 2  ' von Zeile
lngBis = 4  ' bis Zeile
MsgBox Rows(lngVon & ":" & lngBis).Find(what:="*", SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige