baros55
Goto Top

Makro, das Zeilen mit gleicher Sachnummer in Spalte H einer tabelle findet.

Hallo zusammen,

bin verzweifelt auf der Suche nach einer Möglichkeit folgende Schritte automatisch durch ein Makro durchführen zu lassen. Hoffe auf Euren Input!

1. Schritt: Suche alle Zeilen mit gleichem Wert in Spalte H in einer Tabelle.
2. Schritt: Gehe dann für die in Schritt 1 gefundenen Zeilen zu Spalte U und untersuche ob die Werte in dieser Spalte alle gleich sind.
(Dieser 2. Schritt sollte jeweils für alle gefundenen "Pakete" mit gleichem Wert in Spalte H durchgeführt werden).
3. Schritt: Sind die Werte in Spalte U (von den Zeilen mit gleichem Wert in Spalte H) gleich, dann mach x in Tabelle 2 (neues Tabellenblatt) angefangen bei Zelle N3.
(Auch dieser 3. Schritt sollte jeweils für alle gefundenen "Pakete" mit gleichem Wert in Spalte H durchgeführt werden).

Ist definitiv eine komplizierte Sache! Aber ich hoffe Ihr habt gute Ideen.
Vielen Dank im Voraus!

Gruß
Baros55

Content-Key: 139481

Url: https://administrator.de/contentid/139481

Printed on: April 25, 2024 at 23:04 o'clock

Member: bastla
bastla Mar 30, 2010 at 19:59:55 (UTC)
Goto Top
Hallo baros55 und willkommen im Forum!

Deinen Schritten 1 und 2 konnte ich (hoffentlich) noch folgen - der Schritt 3 ist mir aber nicht wirklich klar: Wenn in der Spalte N der "Tabelle2" die soeben geprüfte Sachnummer und in Spalte O die Kennzeichnung für "alle Werte in U gleich" eingetragen würde, oder umgekehrt, die zu prüfende Sachnummer etwa der Spalte M von "Tabelle2" zu entnehmen wäre, würde mir das noch einleuchten - aber nur für jede Sachnummer mit passenden Werten in U in der "Tabelle2" ein "x" zu setzen ...

Anyhow - grundsätzlich sollte das folgende Makro (zu starten von der Tabelle mit den Suchwerten in Spalte "H" aus) Deine Vorgaben umsetzen (wobei ab "H2" nach Sachnummern gesucht und dabei vorausgesetzt wird, dass die Suche mit der ersten leeren Zelle in "H" endet):
Sub CheckIt()
SuchSpalte = "H"  
SuchZeile = 2 'Suche ab dieser Zeile  
TestSpalte = "U"  

ZielTabelle = "Tabelle2"  
ZielSpalte = "N"  
ZielZeile = 3 'Eintrag ab dieser Zeile  

Erledigt = "|"  
Zeile = SuchZeile
Set ZielTab = Worksheets(ZielTabelle)

Sachnummer = Cells(Zeile, SuchSpalte).Value
Do While Sachnummer <> ""  
    If InStr(Erledigt, "|" & Sachnummer & "|") = 0 Then  
        Erledigt = Erledigt & Sachnummer & "|"  
        Test = Cells(Zeile, TestSpalte).Value
        OK = True
        Set c = Columns(SuchSpalte).Find(Sachnummer, Cells(Zeile, SuchSpalte), xlValues)
        If Not c Is Nothing Then
            Do
                If Cells(c.Row, TestSpalte).Value <> Test Then
                    OK = False
                    Exit Do
                End If
                Set c = Columns(SuchSpalte).FindNext(c)
            Loop While Not c Is Nothing And c.Row > Zeile
        End If
        If OK Then
            ZielTab.Cells(ZielZeile, ZielSpalte).Value = "x"  
            ZielZeile = ZielZeile + 1
        End If
    End If
    Zeile = Zeile + 1
    Sachnummer = Cells(Zeile, SuchSpalte).Value
Loop
End Sub
Es wird jede Sachnummer nur bei ihrem ersten Vorkommen überprüft und in weiterer Folge übersprungen (wenn also in H2, in H6 und H8 die selbe Sachnummer enthalten wäre, würden die Zeilen 6 und 8 ja schon bei der Prüfung der Sachnummer aus H2 erfasst).

Grüße
bastla
Member: baros55
baros55 Apr 01, 2010 at 08:30:12 (UTC)
Goto Top
Hallo bastla,

wow...vielen Dank für deine Hilfe, hat prima funktioniert!

Gruß
Baros55