Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1712to1716
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
höchsten Wert markieren
02.10.2019 13:09:02
Thomas
Hallo Excelfreunde,
ich möchte gern in einer Listbox die Zeile mit dem höchsten Wert ( Zahl ) in der ersten Spalte markieren.
Ich kriege dies einfach nicht hin.
bisher habe ich immer den höchsten Wert in der Tabelle gesucht und dann mit der Listbox verglichen.
For Spaltemark = 0 To UF1.ListBox2.ListCount - 1
If UF1.ListBox2.List(Spaltemark, 0) = wertausbox1 Then
UF1.ListBox2.Selected(Spaltemark) = True
End If
Next Spaltemark
Nun möchte ich aber gern den höchsten Wert nur in der Listbox suchen. ( Ohne Tabellen Zugriff )
Das muss doch auch irgendwie gehen.
Kann mir dabei jemand helfen?
MFG Thomas

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: höchsten Wert markieren
02.10.2019 13:28:27
Daniel
HI
im Prinzip so:
for i = 0 to Listbox1.ListCount - 1
if CDbl(Listbox1.List(i, 1)) > MerkerWert then
MerkerWert = CDBl(Listbox1.List(i, 1))
MerkerZeile = i
end if
Next
Listbox1.Selected(i) = True
Gruß Daniel
AW: höchsten Wert markieren
02.10.2019 22:45:59
Thomas
Hallo Daniel,
sorry das ich erst jetzt antworte.
Die Idee finde ich super. Nur muss ich jetzt noch raus bekommen wie ich den Merkerwert finden kann.
Hast Du da eine Idee?
mfg thomas
AW: höchsten Wert markieren
02.10.2019 23:17:54
Thomas
Hallo Excelfreunde,
ich hab etwas das funktioniert.
Doch ich glaube das geht viel besser.
So muss ich die Listbox zweimal durchgehen.
Kann daraus jemand etwas machen?
Besten dank schon mal für euer interesse.
mfg thomas
Private Sub CommandButton2_Click()
Dim i As Long
Dim listArr() As Double
ReDim listArr(0 To listbox1.ListCount - 1)
For i = 0 To listbox1.ListCount - 1
listArr(i) = listbox1.List(i)
Next
MsgBox Application.Max(listArr)
MerkerWert = Application.Max(listArr)
For Spaltemark = 0 To listbox1.ListCount - 1
If listbox1.List(Spaltemark, 0) = MerkerWert Then
listbox1.Selected(Spaltemark) = True
End If
Next Spaltemark
End Sub

Anzeige
AW: höchsten Wert markieren
04.10.2019 13:02:06
Dieter
Hallo Thomas,
das könnte z.B. so aussehen (ich habe die Bestimmung vom MerkerWert in die Initialize-Prozedur der UserForm gelegt, das geht natürlich ganz analog z.B. in einer CommandButton_Click_Prozedur):
Private Sub UserForm_Initialize()
Dim i As Long
Dim iMax As Long
Dim letzteZeile As Long
Dim MerkerWert As Double
Dim rng As Range
Dim varListe As Variant
Dim wb As Workbook
Dim ws As Worksheet
Set wb = ThisWorkbook
Set ws = wb.Worksheets(1)
letzteZeile = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
If letzteZeile > 1 Then
Set rng = ws.Range("A2").Resize(letzteZeile - 1)
Else
Exit Sub
End If
lstTest.RowSource = "'[" & wb.Name & "]" & ws.Name & "'!" & rng.Address
varListe = lstTest.List
For i = LBound(varListe) To UBound(varListe)
If varListe(i, 0) > MerkerWert Then
MerkerWert = varListe(i, 0)
iMax = i
End If
Next i
lstTest.Selected(iMax) = True
If iMax > 0 Then
lstTest.TopIndex = iMax - 1
End If
End Sub
https://www.herber.de/bbs/user/132343.xlsm
Viele Grüße
Dieter
Anzeige
besten dank an Dieter
04.10.2019 22:01:46
Thomas
Hallo Dieter,
besten dank das du dir dies mal angeschaut hast.
Nicht nur das ist cool, auch die Lösung ist sehr interessant.
So wie du sie Listbox füllst habe ich noch nie gesehen.
Damit werde ich mal ein wenig rum testen bis ich das Macro richtig verstanden habe.
Und sorry das ich erst jetzt antworte.
Hab vielen dank für deine mühe.
mfg thomas

155 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige