Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Max Wert ermitteln mit VBA

Max Wert ermitteln mit VBA
28.02.2006 11:22:56
Stephen
Moin
Ich möchte den Größten Wert der Spalte B im letzten Tabellenblatt ermitteln.
Mein Ansatz ist bisher:
Cells(11, 2) = Sheets(Worksheets.Count).Application.Max([B:B])
das funktioniert natürlich nicht, bekomme immer den Wert des aktuellen Blattes.
Was mache ich falsch?
Danke
Stephen
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Max Wert ermitteln mit VBA
28.02.2006 11:56:13
Waltraud
Versuchs mal so
Cells(1, 1) = Application.WorksheetFunction.Max(Sheets(Worksheets.Count).[B:B])
AW: Max Wert ermitteln mit VBA
28.02.2006 11:56:14
Beni
Hallo Stephan,
Gruss Beni
Cells(11, 2) = Worksheets.Application.Max(Range("B:B"))
AW: Max Wert ermitteln mit VBA
28.02.2006 13:20:30
Stephen
Danke für die Antworten!
Habe Waltrauts Lösung genommen, läuft Prima!
Stephen
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Maximalwert in Excel mit VBA ermitteln


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf "VBAProject (deine Datei)" klickst und "Einfügen" > "Modul" wählst.

  3. Kopiere und füge den folgenden Code in das Modul ein:

    Sub MaxWertErmitteln()
       Dim maxWert As Double
       maxWert = Application.WorksheetFunction.Max(Sheets(Worksheets.Count).Range("B:B"))
       Cells(11, 2).Value = maxWert
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus, indem du ALT + F8 drückst, das Makro auswählst und auf "Ausführen" klickst.

Du hast nun den maximalen Wert in der Spalte B des letzten Tabellenblatts ermittelt!


Häufige Fehler und Lösungen

  • Fehler: "Objektvariable oder With-Blockvariable nicht festgelegt."

    • Lösung: Stelle sicher, dass du auf das richtige Arbeitsblatt zugreifst. Der Code Sheets(Worksheets.Count) greift auf das letzte Blatt zu. Überprüfe, ob das Blatt existiert.
  • Fehler: "Anwendungsfehler."

    • Lösung: Verwende stattdessen Application.WorksheetFunction.Max, um den maximalen Wert zu berechnen, wie in Waltrauds Lösung beschrieben:
    Cells(1, 1) = Application.WorksheetFunction.Max(Sheets(Worksheets.Count).[B:B])

Alternative Methoden

Du kannst auch die MaxA-Funktion verwenden, um den maximalen Wert zu ermitteln, der auch Text berücksichtigt:

maxWert = Application.WorksheetFunction.MaxA(Sheets(Worksheets.Count).Range("B:B"))

Eine andere Möglichkeit ist, die Werte in einem Array zu speichern und mit einer Schleife den maximalen Wert zu ermitteln.


Praktische Beispiele

  1. Maximalwert einer Spalte ermitteln:

    Sub MaxWertSpalte()
       Dim maxWert As Double
       maxWert = Application.Max(Sheets(Worksheets.Count).Range("B:B"))
       MsgBox "Der maximale Wert in Spalte B ist: " & maxWert
    End Sub
  2. Zwei größte Werte in einer Spalte finden:

    Sub ZweiGroessteWerte()
       Dim max1 As Double, max2 As Double
       max1 = Application.WorksheetFunction.Max(Range("B:B"))
       Range("B:B").Replace What:=max1, Replacement:="", LookAt:=xlPart
       max2 = Application.WorksheetFunction.Max(Range("B:B"))
       MsgBox "Die zwei größten Werte sind: " & max1 & " und " & max2
    End Sub

Tipps für Profis

  • Nutze Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
  • Experimentiere mit der MaxA-Funktion, um herauszufinden, wie sich diese von der Max-Funktion unterscheidet.
  • Verwende Debug.Print, um Werte in das Direktfenster auszugeben und deinen Code zu debuggen.

FAQ: Häufige Fragen

1. Wie kann ich den maximalen Wert in einer bestimmten Zeile finden?
Verwende Application.WorksheetFunction.Max mit einem spezifischen Bereich, z.B. Range("B1:B10").

2. Gibt es eine Möglichkeit, die höchste Zahl in einer Spalte zu finden, ohne VBA?
Ja, du kannst die Funktion =MAX(B:B) in eine Zelle eingeben, um den höchsten Wert der Spalte B zu finden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige