Problem mit Wertermittlung (Minimum, 2t-kleinster Wert etc.) aus einem Array

Diskutiere und helfe bei Problem mit Wertermittlung (Minimum, 2t-kleinster Wert etc.) aus einem Array im Bereich Microsoft Office im Windows Info bei einer Lösung; Hallo, ich habe diverse Probleme mit unten stehendem Code, da haut wohl einiges nicht hin, daher benötige ich dringend Hilfe.... :-( Ich habe es... Dieses Thema im Forum "Microsoft Office" wurde erstellt von Eva.Lisa, 5. Mai 2018.

  1. Eva.Lisa
    Eva.Lisa Gast

    Problem mit Wertermittlung (Minimum, 2t-kleinster Wert etc.) aus einem Array


    Hallo,


    ich habe diverse Probleme mit unten stehendem Code, da haut wohl einiges nicht hin, daher benötige ich dringend Hilfe.... :-(


    Ich habe es auch schon ohne die Anführungszeichen bei den Array-Elementen probiert, also bspw. Array(p1, p2), aber das funktioniert ebenso nicht. Eine Fehlermeldung kommt bei der Minimum-Funktion zwar nicht, dafür aber bei der Small-Funktion... und ich habe keine Ahnung warum.

    Das Füllen der Zelle (3,3) habe ich nur zum Überprüfen eingefügt und es gibt mir 0 aus, obwohl das eigentliche Minimum des Arrays 300 ist. Wenn ich aber die Maus über das Array halte, scheint dieses richtig befüllt zu sein...


    Falls benötigt, hier noch kurze Angaben zum Hintergrund:

    Das ganze ist Teil eines komplexeren Makros, das ich aufbauen möchte. Da es insgesamt 70 Fallunterscheidungen (bzw. eigentlich noch mehr) wären, wenn ich jedes Mal mit IF verschiedene Bedingungen abprüfen würde, möchte ich mit dem Code unten die Reihenfolge von Optionen ermitteln, die dann bei Bedarf nacheinander durchgegangen werden.



    ------

    Sub Testmakro()

    Dim p2 As Range
    Dim p1 As Range
    Dim p4 As Range
    Dim p3 As Range

    Dim end_index As Byte
    Dim start_index As Byte

    Dim opt1 As String
    Dim opt2 As String
    Dim opt3 As String
    Dim opt4 As String

    Dim pricearray


    With ActiveSheet

    Set p0 = Cells(2, 7)
    '=300
    Set p1 = Cells(2, 5)
    '=310
    Set p2 = Cells(2, 9)
    '=312
    Set p3 = Cells(2, 11)
    '=313

    If p0 = 0 And p3 = 0 Then
    start_index = 1
    end_index = 2
    pricearray = Array("p1", "p2")
    ElseIf p3 = 0 Then
    start_index = 0
    end_index = 2
    pricearray = Array("p0", "p1", "p2")
    ElseIf p0 = 0 Then
    start_index = 1
    end_index = 3
    pricearray = Array("p1", "p2", "p3")
    Else
    start_index = 0
    end_index = 3
    pricearray = Array("p0", "p1", "p2", "p3")
    End If

    Cells(3, 3) = WorksheetFunction.Min(pricearray)
    'gibt 0 aus, sollte aber eigentlich 300 ausgeben


    For n = start_index To end_index

    If WorksheetFunction.Min(pricearray) = pricearray(n) Then
    opt1 = "p" & n
    'wenn das Minimum des Arrays an der aktuellen Stelle n liegt, soll opt1 = pn sein (also in unserem Fall p0)
    ElseIf WorksheetFunction.Small(pricearray, 2) = pricearray(n) Then
    opt2 = "p" & n
    'wenn der zweitkleinste Wert des Arrays an der aktuellen Stelle n liegt, soll opt2 = pn sein (also in unserem Fall p1)
    ElseIf WorksheetFunction.Small(pricearray, 3) = pricearray(n) Then
    opt3 = "p" & n
    Else
    opt4 = "p" & n
    End If
    Next n

    End With

    End Sub


    ------


    VIELEN DANK im Voraus für jeden Versuch der Hilfe! Ihr seid meine Rettung!


    VG
     
  2. Eva.Lisa Win User

    Problem mit Wertermittlung (Minimum, 2t-kleinster Wert etc.) aus einem Array

    Ich habe doch inzwischen selbst einen funktionierenden Code oder welche Vorteile, die ich möglicherweise nicht überblicke, bringt dein Vorschlag? :)
  3. Claus Busch Win User

    Problem mit Wertermittlung (Minimum, 2t-kleinster Wert etc.) aus einem Array

    Hallo Eva,

    ändere eine Zeile im Code so ab:

    pricearray(n) = CDbl(rngC.Value)

    Oder schau nochmals in OneDrive vorbei.

    Claus
  4. Eva.Lisa Win User

    Problem mit Wertermittlung (Minimum, 2t-kleinster Wert etc.) aus einem Array

    Oh, in der Tat hat es etwas mit der Formatierung zu tun! Vielen Dank!!! :)

    Die Werte sind bei mir €-Werte (also Format: Währung), wenn ich es in Standard-Format ändere, funktioniert es! Kann ich es irgendwie abändern, dass der Vergleich auch mit €-Werten funktioniert oder muss ich die Formatierung als €-Werte erst am Ende machen?
  5. Eva.Lisa Win User

    Problem mit Wertermittlung (Minimum, 2t-kleinster Wert etc.) aus einem Array

    Danke, das hat funktioniert, hervorragend! Allerdings ist dadurch ein weiteres Problem entstanden. :-D

    In meinem ursprünglichen Code habe ich mit start_index und end_index gearbeitet, damit bei der Befüllung von opt1 etc. der ursprüngliche Index beibehalten wird. D.h. wenn p3 = 0 ist und wegfällt, sollte p3 auch nicht bei den Optionen auftauchen. Hintergrund
    ist, dass später eine Abfrage kommen soll, wenn opt 1 = p2 dann führe diese Aktionen aus, die eben spezifisch von p abhängen. Deswegen hatte ich p0 und p3 auch extra so benannt, dass man sie einfach "aussparen" kann ohne etwas überspringen zu müssen. :-D

    Bekommen wir das wieder irgendwo unter? :-/ Also der p-index ist quasi das identifizierende Element für die spätere Art der Aktionen, ich hoffe das ist verständlich.
  6. Eva.Lisa Win User

    Problem mit Wertermittlung (Minimum, 2t-kleinster Wert etc.) aus einem Array

    Danke Claus, funktioniert aber leider auch nicht. :-(

    Ein Test mit WorksheetFunction.Min(pricearray) gibt wieder 0 aus, und auch bei der Small-Funktion kommt wieder derselbe Fehler (Laufzeitfehler 1004 - die small eigenschaft des worksheetfunction objektes kann nicht zugeordnet werden)...
  7. User Advert


    Hi,

    willkommen im Windows Forum!
Thema:

Problem mit Wertermittlung (Minimum, 2t-kleinster Wert etc.) aus einem Array - Microsoft Office

Die Seite wird geladen...

Problem mit Wertermittlung (Minimum, 2t-kleinster Wert etc.) aus einem Array - Similar Threads - Problem Wertermittlung Minimum

Forum Datum

Zähle C Wenn wert A kleiner als Wert b

Zähle C Wenn wert A kleiner als Wert b: Moin. Ich habe in meiner Bewohner-Statistik nun folgende Herausforderung zu meistern. In Tabelle data1 habe ich in Feld A3 den Beginn in B3 das Ende meines Auswertungszeitraums stehen. In Spalte...
Microsoft Office 20. Oktober 2023

Spaltenname des kleinsten Wertes einer Zeile Anzeigen

Spaltenname des kleinsten Wertes einer Zeile Anzeigen: Hallo Leute! Ich habe hier eine vermeintlich einfache Frage, aber ich komme einfach nicht auf die Lösung - vielleicht könnt Ihr mir helfen. Ich habe eine ganz einfache Tabelle, die entsprechend...
Microsoft Office 21. Mai 2023

Dynamic array

Dynamic array: Issue: after updating last week, neither dynamic arrays nor the new functions like UNIQUE or FILTER work anymore. Windows 10 is up to date, Microsoft 365 got uninstalled by MS support and newly...
Microsoft Office 12. Mai 2020

Excell nächst kleineren Wert mit Bedingung finden

Excell nächst kleineren Wert mit Bedingung finden: Ich möchte in Spalte C jeweils den nächstkleineren km-Stand für das betreffende Fahrzeug aus Spalte A anzeigen lassen. Gibt es dafür eine Lösung? [IMG]
Microsoft Office 21. November 2019

Excel VBA Array Werte verschwinden

Excel VBA Array Werte verschwinden: Hallo, NG, ich habe hier ein ganz komisches Problem. Ich habe ein Array, das ich mit Werten in einer Schleife befülle: For cntZaehler = 1 To intZeilen If...
Microsoft Office 26. Januar 2017

Kleines Problem mit ICQ 6

Kleines Problem mit ICQ 6: Hallo ich habe mir gerade iCQ 6 runtergeladen uns es funktioniert soweit auch. Aber wenn ich jemanden ein "tzer" (z.B. eine Katze die den Bildschirm runter rutscht) senden möchte sagt ICQ6...
Software 15. Juni 2007

vista auf sata-platte =kleines problem

vista auf sata-platte =kleines problem: Windows XP-Version (32 Bit, 64 Bit): 32 Bit Service Pack: 2 Hi, ich habe ein kleines problem, ich will win. xp auf eine sata platte installieren, das klappt ganz normal, nun hab ich aber noch...
Windows Insider 13. Oktober 2006
Problem mit Wertermittlung (Minimum, 2t-kleinster Wert etc.) aus einem Array solved
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.