tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
258
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Nud3l Nud3l ist offline Mitglied Bronze
    Registriert seit
    Mar 2007
    Beiträge
    40
    Ich bin auf der such wie ich in einer Spalte die kleinste nicht vorhandene Zahl ermittele

    Zum Beispiel habe ich in der Spalte 1, 2, 4, 2, 4, 6, stehen möchte ich als Ergebnis 3 erhalten

    Falls dann die 3 hinzugefügt wird möchte ich danach die 5 erhalten.

    Ich habe keine Ahnung wie ich das lösen soll mir scheint das ich es nur über VBA lösen kann und das ich das sehr schön verschachtle mit for..
     

  2. #2
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Schreibst eine kleine VBA-Funktion und wendest die nachher an.
    Dazu im Workbook im VB-Editor ein Modul anhängen und die folgende Funktion einfügen
    Code vb:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    
    Public Function kleinsteNichtVorhandeneZahl(myRange As range) As Integer
        Dim MyValues    As Object
        Dim myValue     As Variant
        Dim tempValue   As Integer
    On Error GoTo Err_Handler
     
        Set MyValues = CreateObject("System.collections.arraylist")
     
        ' Alle Inhalte in ein Array Schreiben.
        For Each myValue In myRange.Value
            If IsNumeric(myValue) And Not IsEmpty(myValue) Then
                If MyValues.Contains(myValue) = False Then
                    MyValues.Add CInt(myValue)
                End If
            End If
        Next myValue
        
        'ArrayList sortieren
        MyValues.Sort
        
        'alle Einträge durchgehen und prüfen ob sie den vorhergehenden Eintrag+1 sind
        For Each myValue In MyValues
            tempValue = tempValue + 1
            If Not CInt(myValue) = tempValue Then Exit For
        Next myValue
     
        kleinsteNichtVorhandeneZahl = tempValue
    Exit_Handler:
    On Error Resume Next
        Set objArrLst = Nothing
        Exit Function
     
    Err_Handler:
        MsgBox Err.Description
        GoSub Exit_Handler
    End Function

    Anschliessend in eine beliebige Zelle die Funktion rechnen alssen
    Code :
    1
    
    =kleinsteNichtVorhandeneZahl(A1:B6)

    Die Funktion funktioniert auch über ein mehrspaltigen Bereich
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  3. #3
    Nud3l Nud3l ist offline Mitglied Bronze
    Registriert seit
    Mar 2007
    Beiträge
    40
    Hmm das sieht ja nicht schlecht aus nur jetzt habe ich das Problem:

    Objekterstellung durch ActivX-Komponente nicht möglich.

    Ich bin Neuling was VBA betrifft vielleicht habe ich da irgendwas vergessen?
     

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 21.11.10, 23:56
  2. Nicht vorhandene Einträge suchen
    Von erika7 im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 20.08.10, 11:32
  3. Antworten: 6
    Letzter Beitrag: 08.11.09, 20:56
  4. Kleinste Zahl herausfinden
    Von paderborner im Forum Delphi, Kylix, Pascal
    Antworten: 1
    Letzter Beitrag: 22.04.09, 15:12
  5. Kleinste Zahl auswerten für Statistik
    Von sexmagic im Forum PHP
    Antworten: 5
    Letzter Beitrag: 29.04.07, 20:56