OVH Cloud OVH Cloud

repérer valeur unique et la déplacer

2 réponses
Avatar
boblebob
salut,
soit 2 listes de donn=E9es dans lesquelles je trouvre des=20
codes dans la premi=E8re colonne de chaque liste (Code1,=20
Code23, ...) (Liste1 de A1:BX, Liste2: E1:EX)
Certains de ces codes sont pr=E9sents dans les 2 listes.
ce que je veux c'est prendre ceux qui existe dans la=20
Liste2 mais pas dans la Liste1 puis les copier-coller en=20
dessous de la derni=E8re cellule non vide de la Liste1.
Actuellment je fais cela avec une recherchev et des=20
filtres.
je pensais faire la m=EAme chose avec une macro du style

Sub comparer_liste()

Dim i, ligne, colonne, combien

Range("a2").Select
combien =3D Range(Selection, Selection.End(xlDown)).Count

For i =3D 2 To combien

if cells(i,5).value n'existe pas dans Liste1 then

copier cells(i,5).value en bas de la liste 1
end if
Next i

End Sub

Comment lui dire :"if cells(i,5).value n'existe pas dans=20
Liste1 " ??
je sais comparer 2 celulles mais un cellule sur un plage=20
je vois pas.

merci d'avance

a+
bob

2 réponses

Avatar
boblebob
j'ai trouvé en faisant ça :

For i = 2 To combien
If IsError(Cells(i, 6)) Then

Range("A65536").End(xlUp).Offset(1, 0).Value = Cells
(i, 5).Value
Range("A65536").End(xlUp).Offset(0, 1).Value = 0



End If

Next i


-----Message d'origine-----
salut,
soit 2 listes de données dans lesquelles je trouvre des
codes dans la première colonne de chaque liste (Code1,
Code23, ...) (Liste1 de A1:BX, Liste2: E1:EX)
Certains de ces codes sont présents dans les 2 listes.
ce que je veux c'est prendre ceux qui existe dans la
Liste2 mais pas dans la Liste1 puis les copier-coller en
dessous de la dernière cellule non vide de la Liste1.
Actuellment je fais cela avec une recherchev et des
filtres.
je pensais faire la même chose avec une macro du style

Sub comparer_liste()

Dim i, ligne, colonne, combien

Range("a2").Select
combien = Range(Selection, Selection.End(xlDown)).Count

For i = 2 To combien

if cells(i,5).value n'existe pas dans Liste1 then

copier cells(i,5).value en bas de la liste 1
end if
Next i

End Sub

Comment lui dire :"if cells(i,5).value n'existe pas dans
Liste1 " ??
je sais comparer 2 celulles mais un cellule sur un plage
je vois pas.

merci d'avance

a+
bob

.



Avatar
Hervé
Salut Bob,
Une proc comme une autre. Elle ajoute les code qui sont dans la colonne E si
ils ne se trouvent pas en colonnes AB. Les rajoute une fois en colonne A,
une fois en colonne B. Adapte :
Sub ChercherAjouter()
Dim PlgCodeAB As Range
Dim PlgCodeE As Range
Dim CelCodeAB As Range
Dim CelCodeE As Range
Dim I As Integer, J As Integer
'adapter le nom de la feuille
With Worksheets("Feuil1")
Set PlgCodeAB = .Range(.[A1], [B65536].End(xlUp))
Set PlgCodeE = .Range(.[E1], [E65536].End(xlUp))
End With

On Error Resume Next
I = 1

For Each CelCodeE In PlgCodeE
Set CelCodeAB = PlgCodeAB.Find(CelCodeE.Value, , xlValues)
If CelCodeAB Is Nothing Then
'ajoute le code une fois en colonne A et
'une fois en colonne B
J = J + 1
'adapter le nom de la feuille
Worksheets("Feuil1") _
.Cells(PlgCodeAB.Rows.Count + I, J) = CelCodeE.Value
If J = 2 Then J = 0: I = I + 1
Set CelCodeAB = PlgCodeAB.FindNext(CelCodeAB)
End If
Next CelCodeE

Set CelCodeAB = Nothing
Set CelCodeE = Nothing
Set PlgCodeAB = Nothing
Set PlgCodeE = Nothing
End Sub

Hervé.

"boblebob" a écrit dans le message news:
09fc01c3a521$751c5240$
salut,
soit 2 listes de données dans lesquelles je trouvre des
codes dans la première colonne de chaque liste (Code1,
Code23, ...) (Liste1 de A1:BX, Liste2: E1:EX)
Certains de ces codes sont présents dans les 2 listes.
ce que je veux c'est prendre ceux qui existe dans la
Liste2 mais pas dans la Liste1 puis les copier-coller en
dessous de la dernière cellule non vide de la Liste1.
Actuellment je fais cela avec une recherchev et des
filtres.
je pensais faire la même chose avec une macro du style

Sub comparer_liste()

Dim i, ligne, colonne, combien

Range("a2").Select
combien = Range(Selection, Selection.End(xlDown)).Count

For i = 2 To combien

if cells(i,5).value n'existe pas dans Liste1 then

copier cells(i,5).value en bas de la liste 1
end if
Next i

End Sub

Comment lui dire :"if cells(i,5).value n'existe pas dans
Liste1 " ??
je sais comparer 2 celulles mais un cellule sur un plage
je vois pas.

merci d'avance

a+
bob