OVH Cloud OVH Cloud

Comparaison et suppression de cellule en VBA

3 réponses
Avatar
Vanessa Martin
Hello,

Voilà dans ma colonne A j'ai des nombres (numéro de client) et dans la
colonne B j'ai le chiffre d'affaire. Dans la colonne D j'ai également des
numéro de client et dans la colonne E le chiffre d'affaire. Je voudrais
supprimer ou effacer dans la colonne A tous les clients qui ne figurent pas
dans la colonne D (en supprimant ou effaçant également leur chiffre d'affaire
dans la colonne B).

Merci de votre aide

Vanessa

3 réponses

Avatar
AV
Avec la plage nommée "plageColD" (plage des numéros clients en colonne D)

Sub zzz()
Application.ScreenUpdating = False
For i = [A65536].End(3).Row To 1 Step -1
If Not IsNumeric(Application.Match(Cells(i, 1), Range("plageColD"), 0))
Then
Cells(i, 1).Range("A1:B1").Delete Shift:=xlUp
End If
Next
End Sub

AV
Avatar
poy-poy
Bonjour vanessa,

Pour information, tu pourrais le faire manuellement par un vlookup puis un
tri automatique sur les données non trouvées, puis les supprimer...

Sinon tu mets ce code dans un module :

sub comparaison()

dim tablA as variant, tablC as variant
Dim n1 as integer,n2 as integer, i as integer, j as integer, q as integer

sheets("feuille que tu veux").select

q =0
n1 = [A1].end(xldown).row
n2 = [C1].end(xldown).row

tablA = range("A1:A" & n1)
tablC = range("C1:C" & n2)

for n1 = 1 to 1 steps -1
for j = 1 to n2
if tablA(i)=tablC(j)
q = 1
exit for
next j
if q = 1 then range(cells(i,1),cells(i,2)).delete shift:=xlup
next i

end sub

attention, le code fait une comparaison pour chaque donnée de la colonne A
sur toutes les données de la colonne C donc si tu as beaucoup de donnée, cela
risque de mettre du temps. De plus, je ne l'ai pas testé (vielle flemme) donc
si cela marche pas fais le savoir.

Cordialement
benjamin


Hello,

Voilà dans ma colonne A j'ai des nombres (numéro de client) et dans la
colonne B j'ai le chiffre d'affaire. Dans la colonne D j'ai également des
numéro de client et dans la colonne E le chiffre d'affaire. Je voudrais
supprimer ou effacer dans la colonne A tous les clients qui ne figurent pas
dans la colonne D (en supprimant ou effaçant également leur chiffre d'affaire
dans la colonne B).

Merci de votre aide

Vanessa


Avatar
poy-poy
Lol j'ai déjà faut vu que j'ai pri la colonne C au-lieu de la colonne D
utilise celui d'av il y plus de chance qu'il marche...

benjamin


Bonjour vanessa,

Pour information, tu pourrais le faire manuellement par un vlookup puis un
tri automatique sur les données non trouvées, puis les supprimer...

Sinon tu mets ce code dans un module :

sub comparaison()

dim tablA as variant, tablC as variant
Dim n1 as integer,n2 as integer, i as integer, j as integer, q as integer

sheets("feuille que tu veux").select

q =0
n1 = [A1].end(xldown).row
n2 = [C1].end(xldown).row

tablA = range("A1:A" & n1)
tablC = range("C1:C" & n2)

for n1 = 1 to 1 steps -1
for j = 1 to n2
if tablA(i)=tablC(j)
q = 1
exit for
next j
if q = 1 then range(cells(i,1),cells(i,2)).delete shift:=xlup
next i

end sub

attention, le code fait une comparaison pour chaque donnée de la colonne A
sur toutes les données de la colonne C donc si tu as beaucoup de donnée, cela
risque de mettre du temps. De plus, je ne l'ai pas testé (vielle flemme) donc
si cela marche pas fais le savoir.

Cordialement
benjamin


Hello,

Voilà dans ma colonne A j'ai des nombres (numéro de client) et dans la
colonne B j'ai le chiffre d'affaire. Dans la colonne D j'ai également des
numéro de client et dans la colonne E le chiffre d'affaire. Je voudrais
supprimer ou effacer dans la colonne A tous les clients qui ne figurent pas
dans la colonne D (en supprimant ou effaçant également leur chiffre d'affaire
dans la colonne B).

Merci de votre aide

Vanessa