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

Grössten Wert ermitteln, VBA

Grössten Wert ermitteln, VBA
Gegga
Guten Morgen
Ich frage drei Spalten ab, jeweils den Wert der letzten ausgefüllten Zelle.
Jetzt möchte ich diese drei Werte vergleichen und den höchsten Wert weitergeben.
Mit 2 Werten habe ich es mit Grösser, Kleiner und Gleich bewerkstelligen können
If i_6 > I_37 Then
E_F_Z = i_6
End If
If i_6 E_F_Z = I_37
End If
If i_6 = I_37 Then
E_F_Z = i_6
End If
If I_37 = i_6 Then
E_F_Z = I_37
End If
Und jetzt kommt noch der Wert aus Spalte 2 (i_2) hinzu...
Kann mir jemand dabei helfen?
Vielen Dank
Gruß Gegga

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

Betreff
Benutzer
Anzeige
Application.Max(Wert1, Wert2, Wert3) oT.
15.10.2010 09:17:29
Tino
AW: Application.Max @Tino
15.10.2010 09:56:58
Gegga
Moin Tino...
hmmm... Wenn sich meine Variante so stark verkürzen lässt (DANKE!!!) darf ich so frech sein und meinen restlichen Code hier posten und du mir evtl. weiter "Verkürzungen" zeigst?
Sub DruckbereichFestlegen()
Dim E_F_Z As Long
Dim i_6 As Long
Dim a As Long
With Worksheets("LIEF")
For I_2 = 43 To .Cells(77, 2).End(xlUp).Row
Next
I_2 = I_2
If I_2 > 71 Then
For I_2 = 118 To .Cells(152, 2).End(xlUp).Row
Next
I_2 = I_2
If I_2 > 146 Then
For I_2 = 193 To .Cells(227, 2).End(xlUp).Row
Next
I_2 = I_2
End If
End If
For i_6 = 43 To .Cells(77, 6).End(xlUp).Row
Next
i_6 = i_6
If i_6 > 71 Then
For i_6 = 118 To .Cells(152, 6).End(xlUp).Row
Next
i_6 = i_6
If i_6 > 146 Then
For i_6 = 193 To .Cells(227, 6).End(xlUp).Row
Next
i_6 = i_6
If i_6 > 227 Then
MsgBox "MAXIMALE SEITENANZAHL ERREICHT!!!!"
End If
End If
End If
For I_37 = 43 To .Cells(77, 37).End(xlUp).Row
Next
I_37 = I_37
If I_37 > 71 Then
For I_37 = 118 To .Cells(152, 37).End(xlUp).Row
Next
I_37 = I_37
If I_37 > 146 Then
For I_37 = 193 To .Cells(227, 37).End(xlUp).Row
Next
I_37 = I_37
If I_37 > 227 Then
MsgBox "MAXIMALE SEITENANZAHL ERREICHT!!!!"
End If
End If
End If
E_F_Z = Application.Max(I_2, i_6, i37)
End With
MsgBox E_F_Z
SpalteB = E_F_Z - 1
Sheets("LIEF").PageSetup.PrintArea = _
Range("A1:BM" & SpalteB).Address
End Sub

Schon mal vielen vielen Dank ;)
Gruß Gegga
Anzeige
besser eine Beispielmappe...
15.10.2010 10:37:26
Tino
Hallo,
mit kurzer Erklärung was Du erreichst möchtest, dies blicke ich noch nicht anhand Deines Codes.
Gruß Tino
AW: besser eine Beispielmappe...
15.10.2010 11:49:35
Tino
Hallo,
wenn ich alles richtig verstanden habe müsste es so funktionieren.
Sub Beispiel()
Dim lngNextRow As Long
lngNextRow = SucheErsteInBereich

If lngNextRow > 0 Then
    MsgBox "nächste freie ist " & lngNextRow, vbInformation
Else
    MsgBox "keine freie Zeile gefunden", vbCritical
End If
End Sub


Function SucheErsteInBereich() As Long
Dim rngRange As Range, rngFund As Range
Dim lngIndex As Long
Set rngRange = Range("D46:F77,D129:F166,D218:F250")

For lngIndex = 1 To rngRange.Areas.Count
    With rngRange.Areas(lngIndex)
    
        Set rngFund = .Find(What:="*", LookIn:=xlValues, LookAt:= _
            xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False _
            , SearchFormat:=False)
    
        If Not rngFund Is Nothing Then
            If rngFund.Row < .Cells(.Rows.Count).Row Then
                SucheErsteInBereich = rngFund.Row + 1
                Exit For
            End If
        Else
            SucheErsteInBereich = .Cells(1, 1).Row
            Exit For
        End If
    End With
Next lngIndex

End Function
Gruß Tino
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige