Microsoft Excel

Excel und VBA: Formeln, Programmierung, Lösungen

Die Excel/VBA-Beispiele

Thema

Preisvergleiche

Gruppe

Bereich

Problem

Es sollen Preisvergleiche nach verschiedenen Kriterien und Ausgabemodi durchgeführt werden.

Lösung
Geben Sie die nachfolgende benutzerdefinierte Funktion in ein Standardmodul ein.

StandardModule: basMain

Function Preis(rngAll As Range, sArtikel As String, _
   blnArt As Boolean, blnPreis As Boolean)
   Dim rng As Range
   Dim dValue As Double
   Dim iRow As Integer
   If blnPreis = False Then dValue = _
      WorksheetFunction.Max(rngAll.Columns(rngAll.Columns.Count))
   For Each rng In rngAll.Columns(2).Cells
      If rng.Value = sArtikel Then
         If blnPreis Then
            If rng.Offset(0, 1) > dValue Then
               dValue = rng.Offset(0, 1).Value
               iRow = rng.Row
            End If
         Else
            If rng.Offset(0, 1) < dValue Then
               dValue = rng.Offset(0, 1).Value
               iRow = rng.Row
            End If
         End If
      End If
   Next rng
   If blnArt Then
      Preis = dValue
   Else
      Preis = rngAll(iRow, 1).Value
   End If
End Function

Sub Aufruf()
   MsgBox Preis(Range("A1:C20"), "Artikel5", True)
End Sub