Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Min und Max bestimmen

Min und Max bestimmen
29.05.2007 13:03:03
julia
Hallo zusammen!!
Ich versuche hier gerade aus mehreren Zahlen das Minimum bzw. Maximun zu bestimmen, es sieht aber so aus, dass VBA alleine das nicht schafft. Oder Gibt es hier doch ein Trick?
Es sie so aus:

Sub max()
Dim i%, n%, x#()
n=6
ReDim x(n)
For i=1 To n
x(i)=Cells (1, 1+i)
Next
'Debug.Print max(x(i)), min(x(i))
'das klappt natürlich so nicht, wie soll man hier vorgehen?
Danke in Voraus
End 

Sub

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Min und Max bestimmen
29.05.2007 13:10:00
Hajo_Zi
Hallo Juloia,
Option Explicit

Sub Julia()
MsgBox "Minimum " & Application.WorksheetFunction.Min(Range("A1:A6"))
MsgBox "Maximum " & Application.WorksheetFunction.Max(Range("A1:A6"))
End Sub



Anzeige
AW: Min und Max bestimmen
29.05.2007 13:33:06
julia
Hallo Hajo,
danke Dir für deine Antwort.
Diese Variante passt mir leider nicht.
Genau gesagt werden meine x-Werte werden aus einem Zellbereich entnommen, sondern in einem Feld aus früheren Brechnungen gespeicher sind, so etwa x(i)=(Cells (1, 1+i))*(-6)+5-3 . Die entgültigen x(i) sollen nicht mehr ausgegeben werden, sonder nur min, bzw. max, diese brauche ich dann für weitere Berechnungen.

Sub max()
Dim i%, n%, x#()
n=6
ReDim x(n)
For i=1 To n
x(i)=(Cells (1, 1+i))*(-6)+5-3
Next
'Debug.Print max(x(i)), min(x(i))
'das klappt natürlich so nicht, wie soll man hier vorgehen?
'Danke im Voraus
End Sub


Anzeige
AW: Min und Max bestimmen
29.05.2007 13:41:22
Hajo_Zi
Hallo Julia,
warum den Rangebereich nicht einfach durch Dein Array ersetzen?
Option Explicit

Sub Julia()
MsgBox "Minimum " & Application.WorksheetFunction.Min(Range("A1:A6"))
MsgBox "Maximum " & Application.WorksheetFunction.max(Range("A1:A6"))
End Sub



Sub max()
Dim i%, n%, x#()
n = 6
ReDim x(n)
For i = 1 To n
x(i) = (Cells(1, 1 + i)) * (-6) + 5 - 3
Next
MsgBox "Minimum " & Application.WorksheetFunction.Min(x())
MsgBox "Maximum " & Application.WorksheetFunction.max(x())
'Debug.Print max(x(i)), min(x(i))
'das klappt natürlich so nicht, wie soll man hier vorgehen?
'Danke im Voraus
End Sub


Gruß Hajo

Anzeige
AW: Min und Max bestimmen
29.05.2007 13:46:00
Rudi
Hallo,
so in der Art:

Sub max()
Dim i%, n%, x#()
Dim maxXi, minXi
n = 6
maxXi = (Cells(1, 1 + i)) * (-6) + 5 - 3
minXi = (Cells(1, 1 + i)) * (-6) + 5 - 3
ReDim x(n)
For i = 2 To n
x(i) = (Cells(1, 1 + i)) * (-6) + 5 - 3
maxXi = WorksheetFunction.max(x(i), x(i - 1))
minXi = WorksheetFunction.Min(x(i), x(i - 1))
Next
Debug.Print maxXi, minXi
'das klappt natürlich so nicht, wie soll man hier vorgehen?
'Danke im Voraus
End Sub


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: Min und Max bestimmen
29.05.2007 13:51:56
julia
Hallo Rudi,
danke dir, habe aber selber soeben dieses Problem gelöst.
Deine Variante ist aber viel eleganter!!
Schöne Grüße
Julia

AW: Min und Max bestimmen
29.05.2007 14:06:19
Hajo_Zi
Hallo Julia,
in der heutigen Zeit brachen wir nicht mehr auf Rechnerkapazität achten. Aber der Code ist aufwendiger, da bei jedem schreiben geprüft wird und dies auch noch bei Maximum und Minimum. Bei mir erfolgt die Prüfung nur einmal.
Gruß Hajo
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Min und Max in Excel VBA bestimmen


Schritt-für-Schritt-Anleitung

Um das Minimum und Maximum aus einem Array in Excel VBA zu bestimmen, kannst Du die Application.WorksheetFunction.Min und Application.WorksheetFunction.Max Funktionen verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den Visual Basic-Editor durch Drücken von ALT + F11.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf einen Projektordner und wähle „Einfügen“ > „Modul“.

  3. Schreibe den folgenden Code in das Modul:

    Sub MinMaxBestimmung()
       Dim i As Integer, n As Integer
       Dim x() As Double
       Dim minWert As Double, maxWert As Double
    
       n = 6 ' Anzahl der Elemente
       ReDim x(n)
    
       ' Werte in das Array einfügen
       For i = 1 To n
           x(i) = (Cells(1, 1 + i)) * (-6) + 5 - 3 ' Beispiel-Berechnung
       Next i
    
       ' Minimum und Maximum bestimmen
       minWert = Application.WorksheetFunction.Min(x)
       maxWert = Application.WorksheetFunction.Max(x)
    
       MsgBox "Minimum: " & minWert & vbCrLf & "Maximum: " & maxWert
    End Sub
  4. Führe das Makro aus, um das Minimum und Maximum anzuzeigen.


Häufige Fehler und Lösungen

  • Fehler: „Typ nicht übereinstimmend“

    • Lösung: Stelle sicher, dass das Array korrekt deklariert ist und die Werte, die Du hineinfügst, vom gleichen Datentyp sind (z. B. Double).
  • Fehler: „Bereich nicht gefunden“

    • Lösung: Überprüfe, ob die Zellen, auf die Du zugreifst, tatsächlich Daten enthalten.
  • Fehler: „Die Funktion ist nicht verfügbar“

    • Lösung: Stelle sicher, dass Du die Application.WorksheetFunction-Methoden korrekt verwendest.

Alternative Methoden

Wenn Du die Minimums- und Maximumswerte ohne Arrays berechnen möchtest, kannst Du auch die folgenden Methoden verwenden:

  1. Direkte Berechnung aus einem Bereich:

    MsgBox "Minimum: " & Application.WorksheetFunction.Min(Range("A1:A6"))
    MsgBox "Maximum: " & Application.WorksheetFunction.Max(Range("A1:A6"))
  2. Verwendung einer Schleife ohne Array:

    Dim minWert As Double, maxWert As Double
    minWert = Cells(1, 1).Value
    maxWert = Cells(1, 1).Value
    For i = 2 To 6
       If Cells(i, 1).Value < minWert Then minWert = Cells(i, 1).Value
       If Cells(i, 1).Value > maxWert Then maxWert = Cells(i, 1).Value
    Next i
    MsgBox "Minimum: " & minWert & vbCrLf & "Maximum: " & maxWert

Praktische Beispiele

Hier sind einige praktische Beispiele, um das Verständnis zu vertiefen:

  1. Einfaches Beispiel:

    • Angenommen, Du hast in den Zellen A1 bis A6 Werte von 1 bis 6. Der obige Code gibt „Minimum: 1“ und „Maximum: 6“ aus.
  2. Dynamische Berechnung:

    • Du kannst die Werte auch dynamisch basierend auf einer Berechnung einfügen, wie in der vorherigen Schritt-für-Schritt-Anleitung gezeigt.

Tipps für Profis

  • Verwende Option Explicit, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
  • Nutze Fehlerbehandlung mit On Error Resume Next, um unerwartete Fehler während der Ausführung zu handhaben.
  • Optimiere Deine Schleifen: Berechne Werte nur einmal, wenn möglich, anstatt sie mehrmals zu berechnen, um die Effizienz zu steigern.

FAQ: Häufige Fragen

1. Kann ich die Min und Max Funktionen auch in einer anderen Excel-Version verwenden? Ja, die Funktionen sind in den meisten Excel-Versionen verfügbar, die VBA unterstützen.

2. Wie kann ich die vba min und vba max Funktionen verwenden? Du kannst die Application.Min und Application.Max Funktionen verwenden, um die Minimums- und Maximumswerte direkt zu berechnen, ohne auf WorksheetFunction zurückzugreifen.

3. Gibt es eine Möglichkeit, die Berechnung zu automatisieren? Ja, Du kannst das VBA-Makro so einstellen, dass es beim Ändern der Zellen in einem bestimmten Bereich automatisch ausgeführt wird, indem Du das Worksheet_Change-Ereignis verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige