bonjour à tous !
Cela fait longtemps que je n'avais pas eu à poster mais aujourd'hui je sèche..
Je dois traiter des fichiers de plus de 700 000 lignes, Je dois garder uniquement les doublons. Cela prends énormément de temps de vérifier ligne par ligne lequels sont des doublons. Du coup en passant par des variant je ne travaille plus sur la feuille et je gagne du temps.
voici la macro :
Sub test()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim plage As Range
Dim v As Variant
ColLOE = "i"
Coluniques = "j"
lignedata = "2"
lignedatamoins1 = lignedata - 1
lignedatafin = Range(ColLOE & "1").End(xlDown).Rows.Row ' Cherche la dernière ligne
Range(Coluniques & lignedatamoins1).Value = "Doublon"
Set plage = ActiveSheet.Range("a" & lignedata & ":" & Coluniques & lignedatafin)
v = plage
For i = lignedatamoins1 To lignedatafin - 1
v(i, 10) = "=IF(COUNTIF(C[-1],R[0]C[-1])<>2,""supprimer"",""ok"")"
Next i
plage = v
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Mon problème :
1. Il me faudrait écrire directement le résultat sans que cela n'affiche la formule.
J'essaie d'intégrer le resultat de cette formule
=si(nb.si(i:i;i2<>2);"supprimer";"ok")
J'ai essayé quelque chose du style : v(i,10) = v(i,10).value mais vu qu'on ne travaille pas sur du range (si j'ai bien compris) ça ne passe pas.
Je sais que je peux faire v(i, 10) = left ; sans faire v(i,10) = "=left***"
Ce que écrit directement le résultat en donnée (et non pas la formule), dans mon cas cela inscrit la formule qui me donne le résultat.
Une fois que je pourrais faire ça, je pourrais supprimer les lignes où il est indiqué "supprimer".
2. Comment supprimer efficacement les lignes "supprimer" avec le variant ?
Auriez-vous des idées ?
Merci,