Office: FIND und FINDNEXT Problem

Helfe beim Thema FIND und FINDNEXT Problem in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, ich habe ein Problem mit dem Find und Findnext. Ich möchte den Wert in Spalte D und Zeile x suchen, allerdings darf in der erste gefundene... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Armado, 21. September 2017.

  1. FIND und FINDNEXT Problem


    Hallo,

    ich habe ein Problem mit dem Find und Findnext.
    Ich möchte den Wert in Spalte D und Zeile x suchen, allerdings darf in der erste gefundene Eintrag nicht die Ausgangszelle sein und dann ein "Hallo" jedes mal ausgeben, sobald er den Wert mit Findnext wieder gefunden hat. Ausserdem darf er bei jedem Schleifendurchlauf nicht wieder ganz oben anfangen zu suchen, sondern erst nach der Zeile in der er sich jetzt befindet und dann wieder ein Hallo ausgeben. In meinem Beispiel müssten es dann 5x ein Hallo geben und nicht mehr oder weniger. Leider funktioniert es nicht mit meinem Code. Anbei auch das File.

    Vielen Dank für die Hilfe im Voraus *wink.gif*.



    Code:
    :)
     
  2. Hallo Armado,

    worauf soll das Ganze hinauslaufen?
     
  3. ich möchte dann das hallo ersetzen und jede gefundene zeile dann unter gewissen Bedingungen aufaddieren. sprich spalte G addiere ich dann, wenn spalte D und spalte A und Spalte B gleich ist, aber in Spalte C nicht das Wort "SK" oder "SV" vorkommt. Verstehst du was ich meine ? und danach die zeilen löschen. im Prinzip so, dass ich alles was die Bedingungen erfüllt dann zusammenrechnet und nur noch eine zeile dafür übrig bleibt mit dem Gesamtwert.
     
  4. FIND und FINDNEXT Problem

    oder würdest du es anders lösen?
     
  5. Hallo,

    vielleicht kann man das auch anders lösen. Ich denke rein von dem logischen Ansatz her müsste das Makro so funktionieren.

    1. Von der letzten Zeile ausgehend
    2. Prüfen, ob der Wert in Spalte 4 der letzten Zeile in irgendeiner Zelle oberhalb auch vorhanden ist und in Spalte 1, Spalte 2 der gleiche Wert enthalten ist, aber in Spalte 3 nicht das Wort SK oder SV enthalten ist.
    3. Wenn das der Fall ist müssen die Werte in Spalte 7 addiert werden und
    4. Die Werte der Spalten 3 und 6 verkettet werden
    5. Das Ergebnis in einer Zeile speichern und alle anderen Zeilen, die die Grundlage der Berechnung war, müssen gelöscht werden.

    Ist das verständlich?

    Danke für die Hilfe
     
  6. Hier mal ein Vorher und Nachher Bild
     
  7. Hallo Armado,

    sorry, hat ein bisschen gedauert ich wollte es aber so schreiben dass du noch eine Chance hast den Code zu verstehen.

    Option Explicit

    Public Sub Aufbereitung()

    Dim avntValues As Variant, avntKeys As Variant
    Dim strFirstAddress As String, strKey As String
    Dim ialngIndex As Long, ialngRow As Long, ialngRange As Long
    Dim objDictionary As Object
    Dim objCell As Range, aobjRange() As Range, objDelRows As Range

    'Tabelle einlesen
    avntValues = Range(Cells(2, 1), Cells(Rows.Count, 4).End(xlUp)).Value2

    'Dictionary-Klasse instanziieren
    Set objDictionary = CreateObject(Class:="Scripting.Dictionary")

    'Schleife über das Array
    For ialngIndex = 1 To UBound(avntValues, 1)

    'Wenn sich in Spalte D ein Wert befindet
    If Not IsEmpty(avntValues(ialngIndex, 4)) Then

    If avntValues(ialngIndex, 3) <> "SK" Then

    If avntValues(ialngIndex, 3) <> "SV" Then

    'Schlüssel bilden
    strKey = avntValues(ialngIndex, 1) & "|" & _
    avntValues(ialngIndex, 2) & "|" & avntValues(ialngIndex, 4)

    'Wenn es den Schlüssel schon gibt
    If objDictionary.Exists(strKey) Then

    '1 zum Schlüssel hinzuaddieren
    objDictionary(strKey) = objDictionary(strKey) + 1

    Else

    'Schlüssel kommt zum 1. Mal vor
    objDictionary(strKey) = 1

    End If
    End If
    End If
    End If
    Next

    'Schlüssel und Werte an Arrays übergeben
    avntKeys = objDictionary.Keys
    avntValues = objDictionary.Items

    'Dictionary-Klasse zerstören
    Set objDictionary = Nothing

    With Application
    .Calculation = xlCalculationManual
    .EnableEvents = False
    .ScreenUpdating = False
    End With

    'Schleife über die Werte
    For ialngIndex = 0 To UBound(avntValues, 1)

    'Wenn der Schlüssel öfters als einmal vorgekommen ist
    If avntValues(ialngIndex) > 1 Then

    'Schlüssel suchen
    Redim objRange(1 To avntValues(ialngIndex))
    ialngRange = 0
    Set objCell = Columns(4).Find(What:=Split(avntKeys(ialngIndex), "|")(2), _
    After:=Cells(1, 4), LookIn:=xlValues, LookAt:=xlWhole)
    strFirstAddress = objCell.Address
    Do
    If objCell.Offset(0, -3).Value = Split(avntKeys(ialngIndex), "|")(0) Then
    If objCell.Offset(0, -2).Value = CDate(Split(avntKeys(ialngIndex), "|")(1)) Then
    With objCell.Offset(0, -1)
    If .Value <> "SK" Then
    If .Value <> "SV" Then
    ialngRange = ialngRange + 1
    Set objRange(ialngRange) = objCell
    End If
    End If
    End With
    End If
    End If
    Set objCell = Columns(4).FindNext(After:=objCell)
    Loop Until strFirstAddress = objCell.Address
    Set objCell = Nothing

    'Schleife über die gefundenen Schlüssel
    For ialngRow = 2 To ialngRange

    'Zeilen die gelöscht werden sollen sammeln
    If objDelRows Is Nothing Then Set objDelRows = objRange(ialngRow) Else _
    Set objDelRows = Union(objDelRows, objRange(ialngRow))

    'Werte in Spalte 3 zusammenbauen
    objRange(1).Offset(0, -1).Value = objRange(1).Offset(0, -1).Value & _
    ", " & objRange(ialngRow).Offset(0, -1).Value

    'Werte in Spalte 6 zusammenbauen
    objRange(1).Offset(0, 2).Value = objRange(1).Offset(0, 2).Value & _
    ", " & objRange(ialngRow).Offset(0, 2).Value

    'Werte in Spalte 7 addieren
    objRange(1).Offset(0, 3).Value = objRange(1).Offset(0, 3).Value + _
    objRange(ialngRow).Offset(0, 3).Value

    Next
    Erase aobjRange
    End If
    Next

    'Überflüssig gewordene Zeilen löschen
    If Not objDelRows Is Nothing Then Call objDelRows.EntireRow.Delete

    With Application
    .Calculation = xlCalculationAutomatic
    .EnableEvents = True
    .ScreenUpdating = True
    End With
    End Sub
     
  8. FIND und FINDNEXT Problem

    Absolut kein Problem, jetzt war ich eine Zeit lang nicht da. Danke dir das ist ja absolut der Hammer !!!!!!! Top *wink.gif* Danke!
     
Thema:

FIND und FINDNEXT Problem

Die Seite wird geladen...
  1. FIND und FINDNEXT Problem - Similar Threads - FIND FINDNEXT Problem

  2. letztes Datum finden

    in Microsoft Excel Hilfe
    letztes Datum finden: Hallo Leute, hab jetzt vergebens die KI bemüht mir eine einfache Formel zu erstellen.o_O Jetzt frag ich einfach mal hier da es ja meist besser funzt.*:)* Also: ich hab ne Tabelle in der ich in...
  3. leere Zelle in Zeile finden

    in Microsoft Excel Hilfe
    leere Zelle in Zeile finden: Hallo Liebe Excel Profis, ich bin noch recht unbedarft was VBA angeht. Man kopiert und liest und bastelt und versucht alles zu verstehen. Aber irgendwann kommt man nicht weiter. Ich habe eine...
  4. Doppelte finden und Zellen addieren

    in Microsoft Excel Hilfe
    Doppelte finden und Zellen addieren: Erstmal Frohes neues euch allen. ich habe soviele Varrianten ausprobiert, bis jetzt hat nichts so richtig geklappt. Hoffe Ihr könnt mir bei meinem Problem Helfen. 1. Wenn in Spalte G ein Ja und...
  5. [VBA] PDF laden und bestimte dinge finden

    in Microsoft Excel Hilfe
    [VBA] PDF laden und bestimte dinge finden: Hallo zusammen, ich würde gerne mit den VBA Mitteln (ohne Drittprogramme) ein PDF einlesen und in dem Text mir dann bestimmte Dinge suchen, die sollten alle gleich aufgebaut sein die PDF`s. Ich...
  6. Kalenderwoche finden und Werte übernehmen

    in Microsoft Excel Hilfe
    Kalenderwoche finden und Werte übernehmen: Hallo liebe EXCEL Freaks :) Ich brauche etwas Hilfe von den Experten, damit das Internet nicht weiterhelfen kann. Ich habe einen Kalender-Plan für 4 Mitarbeiter. Hier tragt jeder Mitarbeiter...
  7. Find(what: funktioniert nicht beizugriff auf formel

    in Microsoft Excel Hilfe
    Find(what: funktioniert nicht beizugriff auf formel: Hallo, ich habe eine Funktion mit "find(what" erstellt. ich möchte ausgeben in welcher zeile ein bestimmter wert steht. Wenn ich den Wert, z.B "@P107@" direkt in die Funktion eingebe oder auf...
  8. Wo finde ich Autorecovery Dateien?

    in Microsoft Word Hilfe
    Wo finde ich Autorecovery Dateien?: Liebe alle, mein Word 2016 (für Mac) stürzt manchmal ab und dabei wird die aktuelle Datei dummerweise gelöscht. Deshalb würde ich gern wissen, ob und wo AUtorecovery Dateien gespeichert werden,...
  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.
    Information ausblenden