Das Clever-Excel-Forum.de - Treffen
... 14.-16. September 2018 im Allgäu ...

WorksheetFunction.Max - Erweiterte Berechnung des Maximums
#1
Hallo liebe Leute,

nicht wie der berühmte Ochs, aber doch wie die Kuh stehe ich mal wieder vorm (VBA) Berg.

Ich habe in dem Bereich von B1 bis B10 mal ein paar Zahlen geschrieben. Die höchste Zahl in diesem Zellbereich läßt sich dabei bequem mit folgender Funktion berechnen:

Code:
vmax = WorksheetFunction.Max(Range("B1:B10"))

Nun frage ich mich ob die ganze Geschichte auch vielleicht fast genauso leicht geht, wenn vor jeder Zahl in diesem Bereich sagen wir mal ein XYZ stehen würden.
Dann ist das ganze ja ein String und die Funktion macht ersteinmal nichts. Vielleicht gibt es aber eine leichte Möglichtkeit doch noch zu einer Lösung zu kommen.
Was müßte man tun? Bitte postet auch wenn da nichts zu machen ist.
to top
#2
Ja, das geht.

Und ich helfe gerne, wenn ein Fragesteller auch ein Feedback gibt bzw. auch einmal "Danke" sagt, wenn der-/diejenige vollkommen gratis zwei Antworten bekommt…
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
to top
#3
Hi,

Wenn es eine Systematik gibt, um die Texte "abzuschneiden" sollte es wieder gehen, z.b mit right(a1,len(a1)-3)

Mfg
to top
#4
Hallo,

also auf die Lösung bin ich mal gespannt. Und ja ein Danke bzw. gibt es auch.
Eins vorher: Danke! und eins danach mit dem entsprechenden Button.
to top
#5
Hallo,

die Lösung ist stark davon abhängig, wie genau der String aussieht.

Unten eine Lösung für ein String bei der auf drei Stellen die Zahlen folgen:


Code:
Sub maxAti()
 Dim i As Long
 Dim lngMax As Long
 
 For i = 1 To 10
   lngMax = Application.Max(lngMax, Right(Cells(i, 1), Len(Cells(i, 2)) - 3))
 Next i
 
 MsgBox lngMax
End Sub
Gruß Atilla
[-] Folgende(r) 1 Benutzer sagt Danke an atilla für diesen Beitrag:
  • Alison
to top
#6
Nein, ich meinte nicht den Button sondern die für alle (Mit)Leser sichtbare Antwort mit dem Feedback, dass eine oder alle Lösungen in diesem Thread funktioniert haben. Davon profitieren auch jene Leser, die später einmal den Beitrag lesen und von einer positiven Erfolgsmeldung profitieren könnten. Und natürlich freuen sich auch die Helfer, wenn eine Reaktion des Fragestellers kommt.
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
to top
#7
Hallo Atilla,

vielen Dank für deinen Lösungsvorschlag. Gespannt bin jetzt noch auf Günthers-Lösungsvorschlag, der ja meinte
eine absolut direkte Lösung in Zusammenhang von Worksheet.Function(Range(Bereich)) zu haben. Also wenn ich
das richtig verstanden habe etwas ohne Schleife, einen einzeiligen Knaller.

Alison
to top
#8
Hallo Alison,

ich kann nirgends finden, dass Günther so etwas auch nur angedeutet hat.
Gruß Atilla
to top
#9
Ich schon.
to top
#10
Hmmm …


Zitat:Günthers-Lösungsvorschlag, der ja meinte eine absolut direkte Lösung in Zusammenhang von Worksheet.Function(Range(Bereich)) zu haben

Du interpretierst da in meine Anmerkung etwas hinein, was ich weder so gesagt, angedeutet oder gemeint habe. Ohne zu wissen, wie der Aufbau aller auszuwertenden Zelle ist, mache ich mir keinerlei Gedanken über eine Lösung. Und eine Aussage wie "... sagen wir mal ein XYZ stehen würden" ist ja nun wirklich alles andere als konkret.

atillas Lösung ist OK, wenn immer 3 Zeichen vor den Ziffern stehen. Aber das ging aus der Beschreibung nicht hervor.

EDIT: Die beiden Beiträger hierüber wurden erstellt, während ich geschrieben habe.
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
to top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste