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

worksheetfunction.max innerhalb Wertebereich

worksheetfunction.max innerhalb Wertebereich
04.05.2017 20:23:30
Andy
Hallo zusammen,
ich hoffe, dass Ihr mir weiterhelfen könnt.
In einem kleinen Programm nutze ich zur Bestimmung der nächsten (höheren) Kundennummer die worksheetfunction.max.
Spalte A enthält die bisher vergebenen Kundennummern. Die neue wäre also wsf.max + 1
Nun gibt es aber auch "Sonderkundennummern", die ab 9000 beginnen.
Meine mit worksheetfunction.max ermittelte Zahl muss also kleiner als 9000 sein.
Über Formeleingabe hab ich etwas im Internet gefunden, aber nicht über VBA.
Geht das mit wsf.max überhaupt, dass ich die Bereichsgröße eingrenzen kann?
Ich hab versucht in den Argumenten ein "if" u.s.w. einzubauen, aber das lief immer auf Fehler.
Oder kann ich nur über ne Schleife oder sowas in der Art gehen?
Danke schon mal für Eure Hilfe!
Viele Grüße
Andy

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: worksheetfunction.max innerhalb Wertebereich
04.05.2017 21:36:40
Daniel
Hi
Als Formel so
=KGrößte(A:A;ZählenWenn(A:A;">=9000")+1)+1

Das sollte in VBA über die Worksheetfunctions problemlos darstellbar sein. (CountIf und Large)
Gruß Daniel
AW: worksheetfunction.max innerhalb Wertebereich
04.05.2017 22:05:31
Luschi
Hallo Andy,
gemäß dem Vorschlag von Daniel so:

Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Tabelle1")
Debug.Print WorksheetFunction.Large(ws.Range("A:A"), WorksheetFunction.CountIf(ws.Range("A:A"),  _
">=9000") + 1) + 1
'oder
Debug.Print WorksheetFunction.Small(ws.Range("A:A"), WorksheetFunction.CountIf(ws.Range("A:A"),  _
"
Gruß von Luschi
aus klein-Paris
PS: die Formelfunktion 'KGrößte' gibt es nicht und lautet so: KGRÖSSTE
Anzeige
AW: worksheetfunction.max innerhalb Wertebereich
04.05.2017 22:05:13
Werner
Hallo Andy,
und sähe dann in VBA so aus:
Sub Kundennummer()
Dim loZahl As Long
loZahl = WorksheetFunction.Large(Range("A:A"), WorksheetFunction.CountIf(Range("A:A"), ">=9000") _
+ 1) + 1
MsgBox loZahl
End Sub
Gruß Werner
AW: max innerhalb Wertebereich
04.05.2017 22:50:37
Gerd
Moin Andy!
Sub test()
MsgBox NR(Cells(1, 1).CurrentRegion.Columns(1).Value, 9000)
End Sub

Function NR(X As Variant, dblMax As Double) As Long
Dim Z As Long, S As Long
For Z = 1 To UBound(X)
For S = 1 To UBound(X, 2)
If X(Z, S)  NR Then NR = X(Z, S)
End If
Next
Next
NR = NR + 1
End Function
Gruß Gerd
Anzeige
AW: max innerhalb Wertebereich
05.05.2017 13:32:27
Andy
Hallo zusammen,
vielen vielen Dank für die Hilfe!
Ich hab mich für die Version von Gerd entschieden. So kann ich ganz schlank die Funktion auch bei den Artikelnummern usw nutzen.
Danke nochmal und ein schönes Wochenende!
Viele Grüße
Andy
AW: max innerhalb Wertebereich
06.05.2017 09:57:52
Luschi
Hallo Andy,
selbstprogramierte Schleifen sind immer viel langsamer und fehleranfälliger als Vba-Standard-Methoden.
Gruß von Luschi
aus klein-Paris
AW: @Luschi
06.05.2017 20:07:35
Gerd
Hallo Luschi,
so pauschal stimmt das nicht. Schleifen über Objekte sind sicher langsam; solche über Arrays sind, wenn überhaupt, kaum langsamer als Worksheetfunctions. Und die Fehleranfälligkeit hängt doch stark von der Qualität des "SelbstProgrammierers" ab.
P.S.: Ich wollte Andy zeigen, dass es auch mit Schleife geht.
Gruß Gerd
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige