Thema Datum  Von Nutzer Rating
Antwort
30.11.2015 15:55:24 Henrik
NotSolved
30.11.2015 16:19:29 Gast55799
NotSolved
30.11.2015 17:51:50 Gast90658
NotSolved
Blau Minimaler Wert aus Spalte mit Überprüfung
30.11.2015 18:30:31 Gast62897
NotSolved
30.11.2015 18:33:51 Gast19346
NotSolved

Ansicht des Beitrags:
Von:
Gast62897
Datum:
30.11.2015 18:30:31
Views:
1008
Rating: Antwort:
  Ja
Thema:
Minimaler Wert aus Spalte mit Überprüfung

Es gibt allgemein unterscheidliche Lösungsmöglichkeiten.

>> das Tabellenende über einen leeren Eintrag in Spalte A erkannt werden soll

.. läßt darauf schließen, dass die Einträge lückenlos in der Tabelle stehen und einzeln geprüft werden sollen .

(eine bereits fertige Funktion wie z.B. WorksheetFunction.Min() fällt also weg)

 

Per Schleife kann man hier auf zwei Wegen zum Ziel kommen.

Option Explicit

Sub Beispiel_Endlosschleife_mit_Abbruchbedingung()
  
  Dim rngZelle As Excel.Range
  Dim intVkmg As Integer
  
  With Worksheets("Tabelle1")
    
    Set rngZelle = .Range("A1")
    
    intVkmg = .Cells(rngZelle.Row, "G").Value
    Do While Trim$(rngZelle.Value) <> ""
      If .Cells(rngZelle.Row, "G").Value < intVkmg Then
        intVkmg = .Cells(rngZelle.Row, "G").Value
      End If
      Set rngZelle = rngZelle.Offset(1) 'eine Zelle tiefer 'rutschen'
    Loop
    
    Call MsgBox("minimale Verkaufsmenge beträgt " & intVkmg)
    
  End With
  
End Sub

Sub Beispiel_Zaehlschleife()
  
  Dim rngZelle As Excel.Range
  Dim intVkmg As Integer
  Dim z As Long
  Dim z_max As Long
  Dim i As Long
  
  With Worksheets("Tabelle1")
    
    z = 1 'Start in Zeile 1
    
    If Trim$(.Cells(z, "A").Value) = "" Then
      'kein(e) Produkt(e) vorhanden
      Exit Sub
    'Hier wird geprüft ob eine Zeile tiefer noch ein Eintrag vorhanden ist.
    'Ohne diesen Test würde man mit Range.End(xlDown) Gefahr laufen
    'ans Blattende zu springen.
    '(Verhalten von Range-End(xlDown) entspricht der Tastenkombination:
    ' STRG + PFEILTASTE_UNTEN)
    ElseIf Trim$(.Cells(z + 1, "A").Value) <> "" Then
      z_max = .Cells(z + 1, "A").End(xlDown).Row
    Else
      z_max = 1 'nur ein Produkt vorhanden
    End If
    
    intVkmg = .Cells(z, "G").Value
    For i = z To z_max
      If .Cells(i, "G").Value < intVkmg Then
        intVkmg = .Cells(i, "G").Value
      End If
    Next
    
    Call MsgBox("minimale Verkaufsmenge beträgt " & intVkmg)
    
  End With
  
End Sub

 

PS: Trim$() entfernt Leerzeichen am Anfang und Ende der Zeichenkette.


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
30.11.2015 15:55:24 Henrik
NotSolved
30.11.2015 16:19:29 Gast55799
NotSolved
30.11.2015 17:51:50 Gast90658
NotSolved
Blau Minimaler Wert aus Spalte mit Überprüfung
30.11.2015 18:30:31 Gast62897
NotSolved
30.11.2015 18:33:51 Gast19346
NotSolved