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

Excel VBA: max Wert mit Schleife

Excel VBA: max Wert mit Schleife
11.07.2023 08:46:17
MaximiDo

Hallo zusammen ich hoffe euch geht es allen gut!
Leider habe ich so gut wie keine VBA Kentnisse. Ich habe folgendes Problem:

Ich habe eine Arbeitsmappe mit verschiedenen Tabellen. Nun habe ich meinem Arbeitsblatt einen Button hinzugefügt. Beim Klicken des Buttons soll im Hintergrund ein Programm bzw. Makro ablaufen, dass den größten Wert in Zeile "BJ" ausliest und daraufhin "nur den Inhalt" der gleichen Zeile aber in Spalte "AC" löscht. Dieser Vorgang soll solange wiederholt werden, bis alle Werte in der Spalte "BJ" =0 sind. Ist so etwas überhaupt möglich? Über hilfreiche Tipps oder einen Beispielcode würde ich mich sehr freuen!

Liebe Grüße!

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel VBA: max Wert mit Schleife
11.07.2023 09:03:53
migre
Hallo!

mit verschiedenen Tabellen
n größten Wert in Zeile "BJ" ausliest und daraufhin "nur den Inhalt" der gleichen Zeile aber in Spalte "AC" löscht
bis alle Werte in der Spalte "BJ" =0

Hier stellen sich (noch) mehrere Fragen:

- Soll die Aktion grds. nur auf dem Tabellenblatt mit dem Button ausgeführt werden, oder betrifft das alle/bestimmte Tabellenblätter, von denen ja mehrere existieren?
- Warum ist der Umweg über die Suche nach dem höchsten Wert erforderlich; könnten nicht die Werte in "AC" (auf welchen Blättern?) grds. en bloc gelöscht werden, analog alle Werte in "BC" auf 0 gesetzt werden?
- Wie entstehen Werte in "BC" aktuell? Durch Formeln, die sich auf (u.a.?) "AC" beziehen?

Evtl. ist ein kleiner Musteraufbau inkl. Zielvorstellung Deinerseits hier hilfreich, damit sich Helfer dem annehmen können.

LG Michael


Anzeige
AW: Excel VBA: max Wert mit Schleife
11.07.2023 09:11:30
MaximiDo
Hallo Michael,

Zu deinen Fragen:

Frage 1: Ja, nur auf diesem Tabellenblatt
Frage 2: Die Zeile des höchsten Wert kann sich verändern, je nachdem welchen Wert der Nutzer vorher eingibt.
Frage 3: Nein, die Werte werden gebeildet nach einer Formel, welche sich allerdings nicht auf AC bezieht..

Liebe Grüße


AW: Excel VBA: max Wert mit Schleife
11.07.2023 09:55:36
migre
Hallo!

Sorry, ist mir noch immer nicht ganz klar: Beim Klick auf den Button wird der höchste Wert in "BC" gesucht, und der korrespondierende (Zeilen-) Wert in "AC" gelöscht. Wofür dann aber noch eine Schleife? Wenn der höchste Wert sich verändern kann, je nachdem welchen Wert der Nutzer vorher eingibt

LG Michael


Anzeige
AW: Excel VBA: max Wert mit Schleife
11.07.2023 10:02:34
GerdL
Hallo Max,

schau mal, ob du es so gemeint hast.
Damit du etwas siehst, ist eine Verzögerung eingebaut.
Im Echtbetrieb musst du in der Schleife "Select" durch "ClearContents" ersetzten.
Sub Unit()

    Dim x as Long    

    Range("AC1").Select
    
    For x = 1 To WorksheetFunction.Count(Range("BC:BC"))
    
        Application.Wait (Now() + TimeSerial(0, 0, 5))
        Cells(Application.Match(WorksheetFunction.Large(Range("BC:BC"), x), Range("BC:BC"), 0), "AC").Select
    
    Next

End Sub
Gruß Gerd


AW: Excel VBA: max Wert mit Schleife
11.07.2023 10:07:21
MaximiDo
Hallo liebe Community,

habe eine Lösung gefunden, trotzdem danke für eure Hilfe!!!!


Anzeige
AW: Excel VBA: max Wert mit Schleife
11.07.2023 10:24:06
GerdL
Kannst du deine Lösung zeigen?
Gruß Gerd


AW: Excel VBA: max Wert mit Schleife
11.07.2023 10:33:47
MaximiDo
Klar, meine Lösung sieht wie folgt aus:
Sub Optimieren1_Klicken()
    Dim größterWert As Double
    Dim zelle As Range
    Dim summe As Double
Do
        
    ' Den größten Wert in Spalte BJ ermitteln
    größterWert = WorksheetFunction.Max(Range("BJ4:BJ52"))
    
    ' Schleife durch die Zellen in Spalte BJ
    For Each zelle In Range("BJ4:BJ52")
        ' Wenn der Wert der Zelle dem größten Wert entspricht, markiere die Zelle
        If zelle.Value = größterWert Then
            zelle.Offset(0, -33).Value = "" ' Lösche den Wert in der Spalte AC links davon (24 Spalten nach links)
                 ' Summe der Werte in Spalte BJ berechnen
     summe = WorksheetFunction.Sum(Range("AY4:AY52"))
     
        End If
    Next zelle
Loop While summe > 0
End Sub


Anzeige
AW: Excel VBA: max Wert mit Schleife
11.07.2023 11:11:14
GerdL
Danke,
Gerd

196 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige