Gegevens vergelijken

Status
Niet open voor verdere reacties.

Relleboer

Gebruiker
Lid geworden
6 okt 2006
Berichten
264
Hoi Allemaal,

Ik heb weer een klein probleempje waar ik na 1,5 dag nog de oplossing niet voor heb gevonden. Misschien dat een van jullie mij kan helpen.

Mijn vraag is als volgt:

Ik heb twee series met data. bestaand uit 8 Kolommen. De eerste serie is mijn werk lijst en de tweede lijst is een nieuwe uitdraai . Nu is de bedoeling dat de macro eerst gaat kijken wat er op lijst 1 staat en niet meer op lijst twee. Deze gevonden dingen moet hij neerzetten in op worksheet afgehandeld (dus gewoon toevoegen aan de bestaande lijst).

Nu de gegevens uit lijst 1 zijn opgeschoond moet alles van lijst 2 wat nog niet op lijst 1 staat worden toegevoegd(maar dat is voor later zorg).
 

Bijlagen

Hier onder de code die ik nu heb geveonden. Hij werkt maar heb het idee dat het veel te omslagtig is. heb nl met bochter gewerkt en omleidingen. hahahahahah

Iemand idee hoe de macro eenvoudiger kan?

Code:
Sub Controle()
    Sheets(1).Select
    rij = 2
    'Gedeelte 1 geeft aan wat wel op beide lijsten staat
    Do
        With Worksheets(1).Range(Cells(1, 5), Cells(1, 5).End(xlDown))
         Set c = .Find(Worksheets(2).Cells(rij, 5), LookIn:=xlValues)
         If Not c Is Nothing Then
             firstAddress = c.Address
             Do
                  c.EntireRow.Font.ColorIndex = 41
                 Set c = .FindNext(c)
             Loop While Not c Is Nothing And c.Address <> firstAddress
         End If
         End With
    rij = rij + 1
    Loop Until Worksheets(2).Cells(rij, 1).Value = Empty
                    'Gedeelte 2 verhuist de data die niet op beide lijsten naar
                    'de lijst afgehandeld
                    rij = Sheets(1).Cells(1, 1).End(xlDown).Row
                    Do
                        If Sheets(1).Cells(rij, 1).Font.ColorIndex = 1 Then
                         Sheets(1).Cells(rij, 1).EntireRow.Cut Worksheets(3).Cells(1, 1).End(xlDown).Offset(1, 0)
                        End If
                        rij = rij - 1
                    Loop Until rij = 1
                        'Gedeelte 3 zet de kleur weer terug naar zwart en wat behandeld is weer na rood
                        Sheets(1).Cells.Font.ColorIndex = 1
                        Sheets(1).Cells.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes
                            rij = 2
                            Do
                                If Not Cells(rij, 8).Value = Empty Then Cells(rij, 8).EntireRow.Font.ColorIndex = 3
                                rij = rij + 1
                            Loop Until Cells(rij, 1).Value = Empty
End Sub
 
Laatst bewerkt:
Code:
Sub test()
  For i = 1 To 2
    sq = Sheets("Complete lijst").UsedRange
    st = Sheets("NieuweImport").UsedRange
    sq(1, 5) = ""
    st(1, 5) = ""
    For j = 2 To UBound(sq)
      For jj = 2 To UBound(st)
        If sq(j, 5) = st(jj, 5) Then
          If i = 1 Then sq(j, 5) = ""
          If i = 2 Then st(jj, 5) = ""
          Exit For
        End If
     Next
  Next
  If i = 2 Then sq = st
  Sheets(Choose(i, "Afgehandeld", "Complete lijst")).Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(UBound(sq), UBound(sq, 1)) = sq
  Sheets(Choose(i, "Afgehandeld", "Complete lijst")).Columns(5).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
  Next
End Sub
 
Snb,

Kun je mij misschien aangeven hoe ik het beste deze macro kan begrijpen? Ik heb een soortgelijk probleem als wat hier is geplaats, alleen heb ik geen vba kennis.

Dank,
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan