Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen

höchsten Wert markieren


Betrifft: höchsten Wert markieren von: Thomas
Geschrieben am: 02.10.2019 13:09:02

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

  

Betrifft: AW: höchsten Wert markieren von: Daniel
Geschrieben am: 02.10.2019 13:28:27

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


  

Betrifft: AW: höchsten Wert markieren von: Thomas
Geschrieben am: 02.10.2019 22:45:59

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


  

Betrifft: AW: höchsten Wert markieren von: Thomas
Geschrieben am: 02.10.2019 23:17:54

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



  

Betrifft: AW: höchsten Wert markieren von: Dieter Klemke
Geschrieben am: 04.10.2019 13:02:06

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


  

Betrifft: besten dank an Dieter von: Thomas
Geschrieben am: 04.10.2019 22:01:46

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


Beiträge aus dem Excel-Forum zum Thema "höchsten Wert markieren"