Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
520to524
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
520to524
520to524
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Tuning meiner Function möglich?

Tuning meiner Function möglich?
22.11.2004 09:41:17
Russi
Hallo Leute!
Ich werte per eigener

Function eine riesige Liste mit Nummern aus. Die 

Function soll mir die Zahlen zählen, deren letzte x Stellen innerhalb eines bestimmten Zahlenbereiches liegen.
Funzt auch, aber die Neuberechnung der Mappe nimmt inzwischen ein paar Minuten in Anspruch :-(((
Vielleicht kann mir jemand von Euch einen Tipp geben, ob/wie ich die 

Function tunen kann? Oder ist der Ersatz durch eine Formel vielleicht möglich+sinnvoller?
Russi
www.Russi.de.tt
Hier meine Function:

Function zahlen(Von As String, Bis As String)
Dim Zelle As Range
Dim Zaehler As Long
Zaehler = 0
For Each Zelle In ThisWorkbook.Worksheets("zahlen").Range("NR")
If Right(CStr(Zelle.Value), Len(Von)) >= Von _
And Right(CStr(Zelle.Value), Len(Bis)) <= Bis Then
Zaehler = Zaehler + 1
End If
Next Zelle
kbest = Zaehler
End Function

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

Betreff
Datum
Anwender
Anzeige
AW: Tuning meiner Function möglich?
Hans
Hallo Russi,
Stringoperationen sind langsam, formuliere einen numerischen Ansatz.
Die Funktion gibt nix zurück.
Sie wird auf Änderungen in Worksheets("zahlen").Range("NR") nicht neu berechnet -
der Bereich der durchsucht wird gehört in die Argumentliste der Funktion!
kbest ist nicht geDIMt
Kurz es ist gar keine Funktion...
Der Einsatz einer Formel ist immer dem Einsatz von VBA vorzuziehen.
Gruß HW
DANKE!!!
22.11.2004 10:05:29
Russi
Hallo Hans!
Herzlichen Dank für Deine Tipps / Anregungen !!! Werde mich gleich mal ransetzen und das Ganze überarbeiten!
Viele Grüße
Russi
www.Russi.de.tt
Anzeige
AW: DANKE!!!
Hans
Achje, jetzt hab ichs wieder...
Du nimmst die Modulo-Funktion VBA mod oder XL REST, damit kommst leicht ran
x mod 10, x mod 100 usw...
Gruß HW
AW: DANKE!!!
ypsilon
hi Russi,
...und dann würde es mit einem array noch wesentlich schneller gehen
cu Micha
@ HW & Micha
22.11.2004 10:57:53
Russi
Hallo Ihr Beiden!
Jetzt macht Ihr mich neugierig!
@Hans: Die Funktion MOD bzw REST verstehe ich. Nur leider weiß ich nicht, wie das auf meine Problemstellung passt (vermutlich mein Fehler, also bitte nicht falsch verstehen!)
@Micha: Ein Array? Sollen dort die Daten aus den zu durchsuchenden Bereich reingepackt werden? Oder die Suchkriterien? Zumindest ersteres würde wohl viel Speicher in Anspruch nehmen, da der Suchbereich "NR" ca. 1.100.000 Zellen enthält!
Um es nochmal bildlich darzustellen: Ich habe eine Liste mit Nummern:
1234567
2132145
1231231
3242653
Excel soll jetzt bspw. zählen, wie viele Zahlen in den LETZTEN 2 Stellen zwischen "25" und "50" enden (Im Beispiel = 2)
Russi
www.Russi.de.tt
Anzeige
AW: @ HW & Micha
yps
hi Russi,
probier mal ob dein speicher mitmacht ;-)
zelle + wert müssen als variant gedimmt werden
With Worksheets("zahlen")
Zelle = .Range("NR")
For Each wert In Zelle
If Right(wert, Len(Von)) >= Von _
And Right(wert, Len(Bis)) Zaehler = Zaehler + 1
End If
Next
kbest = Zaehler
End With
cu Micha
Gute + schlechte Nachricht ;-)
22.11.2004 11:16:27
Russi
Hi Micha!
Die gute Nachricht: Die Berechnung ist ERHEBLICH schneller! :-)
Die Schlechte: Das Ergebnis stimmt nicht mehr... :-(
Warum das so ist, weiß ich jetzt noch nicht. Aber den Fehler kriege ich schon noch eingekreist.
Herzlichen Dank für Deine Hilfe!!!
Viele Grüße
Russi
www.Russi.de.tt
Anzeige
AW: @ HW & Micha
Hans
Array - kommst Du damit klar?
=SUMME((REST(A1:A6;100)>=25)*(REST(A1:A6;100) Gruß HW
Hallo Hans!
22.11.2004 11:33:19
Russi
Formel funktioniert ebenfalls klasse, scheint aber ein Problem mit einem mehrspaltigen Bereich zu haben. Aber das kriege ich noch hingefummelt. ;-)
Vielen Dank für Deine Hilfe!!!
Viele Grüße
Russi
www.Russi.de.tt

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige