• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

script vergelijken en copieren

Status
Niet open voor verdere reacties.

moensk

Gebruiker
Lid geworden
23 jun 2013
Berichten
712
ik zoek script om te vergelijken op 2 voorwaarden en dan te kopiëren

voorwaarden
waardes in kolom A moeten gelijk zijn
dan moet hij in kolom B kijken en als die niet gelijk zijn
dan alle gevonden regels kopiëren naar ander tabblad
een voorbeeldje gemaakt in bijlage
 

Bijlagen

  • hulp.xlsx
    10,7 KB · Weergaven: 24
Dat kan toch gewoon met een draaitabel met de Rapportindeling Tabelweergave?
 
OctaFish,
voorwaarde 1 is geen probleem om via draaitabel te doen
maar zie niet in hoe voorwaarde 2 er aan toe te voegen "niet gelijk "
 
Zo te zien zitten er wat foutjes in de gewenst overzicht.


Code:
Sub hsv()
Dim sv, a, b(3), i As Long, j As Long
sv = Cells(1).CurrentRegion
With CreateObject("scripting.dictionary")
 For i = 1 To UBound(sv)
    a = .Item(sv(i, 1) & "|" & sv(i, 2) & "|" & sv(i, 3))
      If IsEmpty(a) Then
          a = b
              For j = 1 To 4
                a(j - 1) = sv(i, j)
              Next j
         .Item(sv(i, 1) & "|" & sv(i, 2) & "|" & sv(i, 3)) = a
      Else
        .Remove sv(i, 1) & "|" & sv(i, 2) & "|" & sv(i, 3)
      End If
  Next i
 Cells(2, 13).Resize(.Count, 4) = Application.Index(.items, 0)
 Cells(4, 13).Resize(.Count - 2, 4).Sort Cells(4, 13), , , , , , , 1
 End With
End Sub
 
Eentje mijnerzijds in 1 loop

Code:
Sub jec()
 jv = Cells(1).CurrentRegion
 With CreateObject("scripting.dictionary")
   For i = 1 To UBound(jv)
      k = jv(i, 1) & jv(i, 2) & jv(i, 3)
      If Not .Exists(k) Then
         .Item(k) = Array(jv(i, 1), jv(i, 2), jv(i, 3), jv(i, 4))
      Else
         .Remove k
      End If
   Next
   Cells(2, 19).Resize(.Count, 4) = Application.Index(.items, 0, 0)
   Cells(4, 19).Resize(.Count - 2, 4).Sort Cells(4, 19), , , , , , , 1
 End With
End Sub
 
HSV,
heb script gedraaid doch er staan er nog 2 teveel in
Key 2359 en 5874 komen meer 1x voor deze moeten niet getoond worden
mijn vraag was misschien niet duidelijk genoeg.
enkel moet niet getoond worden
 
Inderdaad, die loop was overbodig.

Maar pas op met:


Code:
 .Item(k) = Array(jv(i, 1), jv(i, 2), jv(i, 3), jv(i, 4))
 
Laatst bewerkt:
Wat is daarvan het risico?
Alleen bij veel kolommen lijkt het mij niet zo handig.
 
12343 115 en 1234 3115

Alternatieven.

Code:
.Item(k) = Split(Join(Array(jv(i, 1), jv(i, 2), jv(i, 3), jv(i, 4)), "|"), "|")
         .Item(k) = Split(Join(Application.Index(jv, i, 0), "|"), "|")
 
Laatst bewerkt:
Ah ja dat zou inderdaad toeval kunnen zijn.
Volgens mij ben je er dan zo ook wel. Die array zet alles los van elkaar.

Code:
k = jv(i, 1) & "|" & jv(i, 2) & "|" & jv(i, 3)
 
Laatst bewerkt:
Uiteraard, maar was je toch teveel werk?
 
Te veel werk? Rare opmerking, frustratie? :\
We zitten hier allemaal vrijwillig in ons eigen tijd. Dus te veel werk? Nee.

PS: Normaal ben jij degene die iedereen verbetert. Dat wordt toch ook goed opgevat?
 
Geen frustratie, integendeel, maar jij schreef!

Alleen bij veel kolommen lijkt het mij niet zo handig.

Die "|" had ik er al tussen staan, vandaar dat ik dacht dat het je teveel werk was bij veel kolommen.
 
Die te veel werk leek gericht te zijn op luiheid.
Maargoed, hopelijk heb ik het mis:thumb:
 
Met Power Query een kwestie van een paar klikken.
 

Bijlagen

  • hulp (AC).xlsx
    19,3 KB · Weergaven: 15
Laatst bewerkt:
allen,
iedereen komt met zelfde resultaat, waarvoor dank
doch key's (kolom A) die maar 1x voorkomen mogen niet getoond worden,
in jullie resultaat staat key 2359 en 5874 er teveel in
kan iemand daar nog even naar kijken aub
 
Iets meer klikken, maar ook dat kan met Power Query.
 

Bijlagen

  • hulp (AC2).xlsx
    20,5 KB · Weergaven: 20
ik wil powerquery beter leren gebruiken en begrijpen.
iemand een goeie link voor online training of goed uitgelegde query's
internet saat er vol van doch kwaliteit niet altijd super...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan