Microsoft Excel

Herbers Excel/VBA-Archiv

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

MAX in VBA

Betrifft: MAX in VBA von: Spenski
Geschrieben am: 06.08.2014 19:26:21

huhu

in Spalte B:D stehen Datumseinträge die nicht grösser sein dürfen als der Datumseintrag in Spalte A.

hab nach einiger zeit archive durchstöbern so gelösst:

Sub Schaltfläche1_Klicken()
Dim lloRow As Long, liCounter As Integer

For lloRow = 1 To 100

If Not Range("A" & lloRow).Value = "" Then
        If Range("B" & lloRow).Value >= Range("A" & lloRow) Or Range("C" & lloRow).Value >=  _
Range("A" & lloRow) Or Range("D" & lloRow).Value >= Range("A" & lloRow).Value Then
               liCounter = liCounter + 1
        End If
        
    End If
Next

MsgBox "Fehler : " & liCounter
End Sub
funktioniert astrein , aber mich würde interessieren wie dieser Fall mit MAX ausehen würde.

also wenn(max(B1;C1;D1)>=A1;1;0) ...im Macrorecorder kommen nur relative codes raus

gruss
christian

ps ist nicht eilig^^

  

Betrifft: AW: MAX in VBA von: Daniel
Geschrieben am: 06.08.2014 19:35:54

HI

meinst du so:

If Worksheetfunction.Max(Range("B" & lloRow & ":D" & lloRow)) > Cells(lloRow, 1).Value Then

oder auch so
If Worksheetfunction.Max(cells(lloRow; 2).Resize(1, 3)) > Cells(lloRow, 1).Value Then
mit dem Recoder kommst du da nicht weiter, weil das ja Aktionen sind, die innerhalb von VBA passieren und damit nicht aufzeichenbar sind.

Gruß Daniel


  

Betrifft: AW: MAX in VBA von: Spenski
Geschrieben am: 06.08.2014 19:50:20

hi daniel

ja das obere beispiel passt super...sowas ähnliches hatte ich gefunden aber bekam es nicht wirklich umgebaut.

hab jetzt meine beispieldatei bisschen unglücklich aufgebaut. unter umständen kann es auch die zb Salte B D F sein aus denen der MAX wert ermittelt werden muss. wenn in C und E auch werte stehen würds nicht hinhauen.


will aber keine doppelarbeit verursachen. meine erste frage wurde ja beantwortet und ich denke die werde ich so auch noch mal brauchen ...also ab in mein archive :D

gruss


  

Betrifft: AW: MAX in VBA von: Uduuh
Geschrieben am: 06.08.2014 20:23:44

Hallo,
in dem Fall kannst du den Range mit UNION zusammenbauen.
if worksheetfunction.max(union(cells(llorow,2),cells(llorow,4),cells(llorow,6))) ....

Gruß aus’m Pott
Udo



  

Betrifft: AW: MAX in VBA von: Gerd L
Geschrieben am: 06.08.2014 20:34:29

Hallo Udo,

das muss er aber nicht unbedingt.

MsgBox WorksheetFunction.Max(Cells(1, 2), Cells(1, 4), Cells(1, 6))
Gruß Gerd


  

Betrifft: AW: MAX in VBA von: Spenski
Geschrieben am: 06.08.2014 20:36:45

danke euch allen


  

Betrifft: stimmt natürlich! owT von: Uduuh
Geschrieben am: 06.08.2014 20:41:27