Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1616to1620
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

Falscher Fundwert 1.Zeile

Falscher Fundwert 1.Zeile
29.03.2018 21:07:14
Pascal
Hallo
Ich habe ein Problem, wo ich nicht weiterkomme. Im Anhang findet ihr Details bzw. Muster.
Erklärung als Text:
In der Spalte A sind verschiedene Werten auch Leerzellen, die Werten werden später gebraucht als Referenz.
In Spalte C sind Werten mit 1*, die ich als Fundzeile benenne. Bei der Fundzeile in der Spalte B wird den Wert als Suchbegriff genommen. Dieser Wert soll jetzt nach oben gesucht werden bis eine Zeile mit der gleichen Nummer & zusätzlich einen Wert in der Spalte A findet.
Der erste Fundwert in dieser Zeile (Spalte A) soll jetzt zur Fundzeile eingefügt werden.
Was der Code macht ist, dass er immer die ersten Zeile sucht vom Suchbegriff. Das sollte eben nicht passieren, sondern er soll von unten nach oben suchen. Es kann eben sein, dass Suchbegriffe unterschiedliche Fundwerten haben. Wie im Beispiel gezeigt wird.
  • 
    Private Sub NormaleAuslieferungen_Click()
    Dim i As Double, LR As Double, SP As Integer
    Dim Suchen As String, Anzahl, Zeile As Double, rr As Range
    SP = 2 'Spalte B; zur Bestimmung letzte Zeile
    With Sheets("LBs")
    LR = .Cells(.Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte
    For i = 2 To LR
    If Left(.Cells(i, 3), 1) = "1" Then
    Suchen = .Cells(i, 2)
    'Ermittlung wieviele Einträge (gleiche Nr) oberhalb der Zeile vorhanden sind
    Anzahl = Evaluate("=SumProduct((B2:B" & i - 1 & "=""" & Suchen & """) * (1))")
    If Anzahl > 1 Then
    Set rr = .Columns(2).Find(Suchen) 'ggf weitere Parameter für Find ergänzen
    If (rr Is Nothing) Then
    MsgBox Suchen + " gibt es nicht"
    Else
    Zeile = rr.Row 'Zeile erster Fund
    If .Cells(Zeile, 1)  "" Then
    .Cells(i, 1) = .Cells(Zeile, 1).Value
    Else
    .Cells(i, 1) = .Cells(Zeile, 1).End(xlUp).Value
    End If
    End If
    End If
    End If
    Next
    End With
    Call Filter
    End Sub
    

  • Ich hoffe es kann mir jemand helfen.
    Lg Pascal
    https://www.herber.de/bbs/user/120766.xlsx

    3
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Falscher Fundwert 1.Zeile
    30.03.2018 07:51:10
    Hajo_Zi
    das geht nicht, da eine XLSX Datei kein Makro enthalten kann.
    Ich sehe keinen Grund eine Datei 2x zu speichern. Ich führe keine Liste unter welchem Dateinamen ich die Datei gespeichert habe.

    Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
    AW: Falscher Fundwert 1.Zeile
    30.03.2018 09:41:45
    Werner
    Hallo Pascal,
    wenn ich dich richtig verstanden habe, dann mußt du doch nur von unten nach oben suchen.
    Set rr = .Columns(2).Find(what:=Suchen, SearchDirection:=xlPrevious)
    
    Gruß Werner
    AW: Falscher Fundwert 1.Zeile
    03.04.2018 09:23:49
    Pascal
    Hallo Werner
    Nein diesen Code macht es nur noch schlimmer. Ich wollte herausfinden, was die Logik hinter diesem Code ist, aber keine Chance.
    Dieser Code
    
    Set rr = .Columns(2).Find(Suchen)
    
    schreibt eifach der Wert von der obersten Zeile in die Fundzeile. Aber was wenn die oberste Zeile in der Spalte A leer ist. gibt es den Wert in der Zelle A1 wieder.
    Gruss Pascal
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige