Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA: kleinsten Wert ermitteln

VBA: kleinsten Wert ermitteln
08.10.2015 12:58:21
Vilen
Hallo,
ich möchte eine Schleife erstellen, wobei aus einer Spalte der kleinste Wert ausgelesen und markiert wird, sodass beim nächsten Durchgang dieser Wert nicht mehr berücksichtigt wird, und der nächst kleinste Wert markiert wird. Bis jeder einzelne Wert schließlich markiert wurde.
Gibt es so eine Möglichkeit?
Vielen Dank!

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA: kleinsten Wert ermitteln
08.10.2015 14:51:51
Michael
Hallo Vilen,
zum Auslesen brauchst Du die Werten nicht zu markieren; "small" liefert den jeweils n-kleinsten Wert zurück.
Schreib mal in A3 bis A5 z.B. Werte und teste das:
Option Explicit
Sub test()
Dim vonZeile As Long, bisZeile As Long, i As Long
vonZeile = 3
bisZeile = 5
For i = 1 To bisZeile - vonZeile + 1
MsgBox WorksheetFunction.Small(Range("A" & vonZeile & ":A" & bisZeile), i)
Next
End Sub
Weiterführende Infos findest Du u.a. hier:
https://www.herber.de/forum/archiv/632to636/635044_kkleinste_mit_vba.html
Schöne Grüße,
Michael

Anzeige
AW: VBA: kleinsten Wert ermitteln
12.10.2015 08:25:36
Vilen
Vielen Dank, Michael!

gerne, vielen Dank für die Rückmeldung owT
12.10.2015 17:58:38
Michael
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Kleinsten Wert in Excel ermitteln und markieren


Schritt-für-Schritt-Anleitung

Um in Excel den kleinsten Wert einer Spalte zu ermitteln und ihn zu markieren, kannst Du VBA (Visual Basic for Applications) verwenden. Folge dieser Schritt-für-Schritt-Anleitung:

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

  2. Klicke im Menü auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Kopiere den folgenden Code in das Modul:

    Option Explicit
    Sub kleinsterWertMarkieren()
       Dim vonZeile As Long, bisZeile As Long, i As Long
       vonZeile = 3 ' Beginn der Daten
       bisZeile = 5 ' Ende der Daten
    
       For i = 1 To bisZeile - vonZeile + 1
           Dim kleinsterWert As Double
           kleinsterWert = WorksheetFunction.Small(Range("A" & vonZeile & ":A" & bisZeile), i)
           MsgBox "Der " & i & "-kleinste Wert ist: " & kleinsterWert
           ' Markiere den kleinsten Wert in der Spalte A
           Range("A" & vonZeile & ":A" & bisZeile).Find(kleinsterWert).Interior.Color = RGB(255, 255, 0)
       Next i
    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.

Dieser Code ermittelt den kleinsten Wert in der angegebenen Spalte und markiert ihn. Du kannst die Werte in den Zellen A3 bis A5 eingeben, um das Skript zu testen.


Häufige Fehler und Lösungen

  • Fehler: "Objekt nicht gefunden"
    Lösung: Stelle sicher, dass die Werte in den Zellen A3 bis A5 vorhanden sind. Wenn die Zellen leer sind, kann der Code den kleinsten Wert nicht ermitteln.

  • Fehler: "Typenkonflikt"
    Lösung: Überprüfe, ob in den Zellen Nummern und keine Textwerte eingegeben sind. Excel kann nur numerische Werte für die Berechnung verwenden.


Alternative Methoden

Wenn Du keinen VBA-Code verwenden möchtest, kannst Du auch die Funktion KLEINSTE direkt in Excel nutzen:

  1. Gib in einer Zelle die Formel ein:

    =KLEINSTE(A3:A5, 1)

    Diese Formel gibt den kleinsten Wert in dem Bereich zurück.

  2. Um den nächstkleineren Wert zu ermitteln, ändere den zweiten Parameter auf 2, und so weiter.

Du kannst die gefundenen Werte dann manuell markieren, um sie hervorzuheben.


Praktische Beispiele

Angenommen, in den Zellen A3 bis A5 stehen die Werte 5, 3 und 8. Wenn Du das VBA-Skript ausführst, wird das Ergebnis wie folgt aussehen:

    1. Durchgang: Der 1-kleinste Wert ist 3.
    1. Durchgang: Der 2-kleinste Wert ist 5.
    1. Durchgang: Der 3-kleinste Wert ist 8.

Alle kleinsten Werte werden nacheinander in Gelb markiert.


Tipps für Profis

  • Nutze Conditional Formatting (Bedingte Formatierung), um die kleinsten Werte automatisch zu markieren, ohne VBA zu verwenden.
  • Du kannst die Schleife erweitern, um Werte aus mehreren Spalten zu ermitteln.
  • Füge eine Fehlerbehandlung in den VBA-Code ein, um unerwartete Probleme zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich den kleinsten Wert in einer anderen Spalte ermitteln?
Du musst den Bereich im VBA-Code oder in der Excel-Formel entsprechend ändern (z.B. B3:B5).

2. Kann ich das Skript auch für größere Datenmengen verwenden?
Ja, passe die Werte für vonZeile und bisZeile im Skript an, um den gesamten Bereich zu berücksichtigen.

3. Was kann ich tun, wenn ich die Werte nicht manuell eingeben möchte?
Du kannst Daten aus einer externen Quelle importieren oder eine Datenbankanbindung einrichten, um die Werte automatisch in Excel zu laden.

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