J'ai une liste de noms dans la colonne A d'un classeur 1=20
et une autre dans un classeur 2.=20
Je voudrais cr=E9er une macro qui me permettra de comparer=20
chaque ligne de cellule de Liste1 avec chaque cellule de=20
liste2 et:
1- mettre la cellule de liste1 en rouge si une=20
correspondance est trouv=E9e dans liste2
2- ins=E9rer une colonne et ajouter "OK" devant toute les=20
cellules qui sont en rouge
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
BJ
salut, ceci est un début de macro qui pourras t'aider tu dois avoir les 2 fichiers ouvert; Classeur1 et Classeur2 pour lancer la macro nomme "myliste" l'onglet Feuil1 de Classeur1 nomme "lesnoms" l'onglet Feuil1 de Classeur2 mets cette macro en module de Classeur2 J'ai seulement traité : en classeur2 mettre "ok" si le nom est présent dans l'autre classeur. Dans ma Bal si besoin de plus de trucs Bruno
Sub Macro1() Dim nom(20000) As String Windows("Classeur1.xls").Activate nligne = Sheets("myliste").Range("A65536").End(xlUp).Row For k = 2 To nligne nom(k) = Sheets("myliste").Cells(k, 1).Value Next k Windows("Classeur2.xls").Activate For k = 2 To Sheets("lesnoms").Range("A65536").End(xlUp).Row For c = 2 To nligne If nom(c) = Sheets("lesnoms").Cells(k, 1).Value Then Sheets("lesnoms").Cells(k, 2) = "ok" Exit For End If Next c Next k End Sub
Pedro a écrit dans le message : 060501c35fee$4b29c670$ J'ai une liste de noms dans la colonne A d'un classeur 1 et une autre dans un classeur 2. Je voudrais créer une macro qui me permettra de comparer chaque ligne de cellule de Liste1 avec chaque cellule de liste2 et:
1- mettre la cellule de liste1 en rouge si une correspondance est trouvée dans liste2
2- insérer une colonne et ajouter "OK" devant toute les cellules qui sont en rouge
salut,
ceci est un début de macro qui pourras t'aider
tu dois avoir les 2 fichiers ouvert; Classeur1 et Classeur2 pour lancer la
macro
nomme "myliste" l'onglet Feuil1 de Classeur1
nomme "lesnoms" l'onglet Feuil1 de Classeur2
mets cette macro en module de Classeur2
J'ai seulement traité : en classeur2 mettre "ok" si le nom est présent dans
l'autre classeur.
Dans ma Bal si besoin de plus de trucs
Bruno
Sub Macro1()
Dim nom(20000) As String
Windows("Classeur1.xls").Activate
nligne = Sheets("myliste").Range("A65536").End(xlUp).Row
For k = 2 To nligne
nom(k) = Sheets("myliste").Cells(k, 1).Value
Next k
Windows("Classeur2.xls").Activate
For k = 2 To Sheets("lesnoms").Range("A65536").End(xlUp).Row
For c = 2 To nligne
If nom(c) = Sheets("lesnoms").Cells(k, 1).Value Then
Sheets("lesnoms").Cells(k, 2) = "ok"
Exit For
End If
Next c
Next k
End Sub
Pedro <pidejean@yahoo.com> a écrit dans le message :
060501c35fee$4b29c670$a101280a@phx.gbl...
J'ai une liste de noms dans la colonne A d'un classeur 1
et une autre dans un classeur 2.
Je voudrais créer une macro qui me permettra de comparer
chaque ligne de cellule de Liste1 avec chaque cellule de
liste2 et:
1- mettre la cellule de liste1 en rouge si une
correspondance est trouvée dans liste2
2- insérer une colonne et ajouter "OK" devant toute les
cellules qui sont en rouge
salut, ceci est un début de macro qui pourras t'aider tu dois avoir les 2 fichiers ouvert; Classeur1 et Classeur2 pour lancer la macro nomme "myliste" l'onglet Feuil1 de Classeur1 nomme "lesnoms" l'onglet Feuil1 de Classeur2 mets cette macro en module de Classeur2 J'ai seulement traité : en classeur2 mettre "ok" si le nom est présent dans l'autre classeur. Dans ma Bal si besoin de plus de trucs Bruno
Sub Macro1() Dim nom(20000) As String Windows("Classeur1.xls").Activate nligne = Sheets("myliste").Range("A65536").End(xlUp).Row For k = 2 To nligne nom(k) = Sheets("myliste").Cells(k, 1).Value Next k Windows("Classeur2.xls").Activate For k = 2 To Sheets("lesnoms").Range("A65536").End(xlUp).Row For c = 2 To nligne If nom(c) = Sheets("lesnoms").Cells(k, 1).Value Then Sheets("lesnoms").Cells(k, 2) = "ok" Exit For End If Next c Next k End Sub
Pedro a écrit dans le message : 060501c35fee$4b29c670$ J'ai une liste de noms dans la colonne A d'un classeur 1 et une autre dans un classeur 2. Je voudrais créer une macro qui me permettra de comparer chaque ligne de cellule de Liste1 avec chaque cellule de liste2 et:
1- mettre la cellule de liste1 en rouge si une correspondance est trouvée dans liste2
2- insérer une colonne et ajouter "OK" devant toute les cellules qui sont en rouge
Frédéric Sigonneau
Bonsoir,
Je pense que tu pourrais t'inspirer de ce code paru ici-même il y a qq temps (je n'ai pas noté l'auteur). Il traite 2 colonnes de la même feuille du même classeur, mais rien ne s'oppose, AMA, à ce que les plages qui renseignent les tableaux (Eleves2002 et Eleves2003 dans la procédure de test) soient dans des feuilles de classeurs différents à partir du moment où les 2 classeurs sont ouverts. A adapter et à tester :
'======================== 'comparer deux plages de cellules en passant par des tableaux
Sub test() Dim Eleves2002, Eleves2003, Partis(), Nouveaux()
Sub CompareTableaux(TabSource, TabCible, TabResult()) 'renvoie dans TabResult les éléments de TabCible 'qui ne sont pas dans TabSource Dim i&, j&, k&
k = 0 For j = LBound(TabCible, 1) To UBound(TabCible, 1) If IsError(Application.Match(TabCible(j, 1), TabSource, 0)) Then ReDim Preserve TabResult(k) TabResult(k) = TabCible(j, 1) k = k + 1 End If Next j
End Sub '======================== FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
J'ai une liste de noms dans la colonne A d'un classeur 1 et une autre dans un classeur 2. Je voudrais créer une macro qui me permettra de comparer chaque ligne de cellule de Liste1 avec chaque cellule de liste2 et:
1- mettre la cellule de liste1 en rouge si une correspondance est trouvée dans liste2
2- insérer une colonne et ajouter "OK" devant toute les cellules qui sont en rouge
Bonsoir,
Je pense que tu pourrais t'inspirer de ce code paru ici-même il y a qq temps (je
n'ai pas noté l'auteur). Il traite 2 colonnes de la même feuille du même
classeur, mais rien ne s'oppose, AMA, à ce que les plages qui renseignent les
tableaux (Eleves2002 et Eleves2003 dans la procédure de test) soient dans des
feuilles de classeurs différents à partir du moment où les 2 classeurs sont
ouverts. A adapter et à tester :
'======================== 'comparer deux plages de cellules en passant par des tableaux
Sub test()
Dim Eleves2002, Eleves2003, Partis(), Nouveaux()
Sub CompareTableaux(TabSource, TabCible, TabResult())
'renvoie dans TabResult les éléments de TabCible
'qui ne sont pas dans TabSource
Dim i&, j&, k&
k = 0
For j = LBound(TabCible, 1) To UBound(TabCible, 1)
If IsError(Application.Match(TabCible(j, 1), TabSource, 0)) Then
ReDim Preserve TabResult(k)
TabResult(k) = TabCible(j, 1)
k = k + 1
End If
Next j
End Sub
'========================
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
J'ai une liste de noms dans la colonne A d'un classeur 1
et une autre dans un classeur 2.
Je voudrais créer une macro qui me permettra de comparer
chaque ligne de cellule de Liste1 avec chaque cellule de
liste2 et:
1- mettre la cellule de liste1 en rouge si une
correspondance est trouvée dans liste2
2- insérer une colonne et ajouter "OK" devant toute les
cellules qui sont en rouge
Je pense que tu pourrais t'inspirer de ce code paru ici-même il y a qq temps (je n'ai pas noté l'auteur). Il traite 2 colonnes de la même feuille du même classeur, mais rien ne s'oppose, AMA, à ce que les plages qui renseignent les tableaux (Eleves2002 et Eleves2003 dans la procédure de test) soient dans des feuilles de classeurs différents à partir du moment où les 2 classeurs sont ouverts. A adapter et à tester :
'======================== 'comparer deux plages de cellules en passant par des tableaux
Sub test() Dim Eleves2002, Eleves2003, Partis(), Nouveaux()
Sub CompareTableaux(TabSource, TabCible, TabResult()) 'renvoie dans TabResult les éléments de TabCible 'qui ne sont pas dans TabSource Dim i&, j&, k&
k = 0 For j = LBound(TabCible, 1) To UBound(TabCible, 1) If IsError(Application.Match(TabCible(j, 1), TabSource, 0)) Then ReDim Preserve TabResult(k) TabResult(k) = TabCible(j, 1) k = k + 1 End If Next j
End Sub '======================== FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
J'ai une liste de noms dans la colonne A d'un classeur 1 et une autre dans un classeur 2. Je voudrais créer une macro qui me permettra de comparer chaque ligne de cellule de Liste1 avec chaque cellule de liste2 et:
1- mettre la cellule de liste1 en rouge si une correspondance est trouvée dans liste2
2- insérer une colonne et ajouter "OK" devant toute les cellules qui sont en rouge
AV
Paramètres à adapter à ton cas : * On lance la macro à partir de la feuille active du classeur "Classeur1" contenant la liste en A1:Ax * Le classeur "Classeur2" est ouvert * La liste, dans le classeur "Classeur2", se trouve en "Feuil1" A1:A100
Sub zz_Dble() For Each c In Range("A1:A" & [A65536].End(3).Row) If Evaluate("isnumber(match(" & c.Address & ",[Classeur2]Feuil1!A1:A100,0))") Then c.Font.ColorIndex = 3 c(1, 2) = "OK" End If Next End Sub
PS : Dans la mesure où les 2 classeurs sont ouverts, on pourrait utiliser la Mise en Forme Conditionnelle pour barbouiller les doublons en rouge AV
"Pedro" a écrit dans le message news: 060501c35fee$4b29c670$ J'ai une liste de noms dans la colonne A d'un classeur 1 et une autre dans un classeur 2. Je voudrais créer une macro qui me permettra de comparer chaque ligne de cellule de Liste1 avec chaque cellule de liste2 et:
1- mettre la cellule de liste1 en rouge si une correspondance est trouvée dans liste2
2- insérer une colonne et ajouter "OK" devant toute les cellules qui sont en rouge
Paramètres à adapter à ton cas :
* On lance la macro à partir de la feuille active du classeur "Classeur1"
contenant la liste en A1:Ax
* Le classeur "Classeur2" est ouvert
* La liste, dans le classeur "Classeur2", se trouve en "Feuil1" A1:A100
Sub zz_Dble()
For Each c In Range("A1:A" & [A65536].End(3).Row)
If Evaluate("isnumber(match(" & c.Address & ",[Classeur2]Feuil1!A1:A100,0))")
Then
c.Font.ColorIndex = 3
c(1, 2) = "OK"
End If
Next
End Sub
PS : Dans la mesure où les 2 classeurs sont ouverts, on pourrait utiliser la
Mise en Forme Conditionnelle pour barbouiller les doublons en rouge
AV
"Pedro" <pidejean@yahoo.com> a écrit dans le message news:
060501c35fee$4b29c670$a101280a@phx.gbl...
J'ai une liste de noms dans la colonne A d'un classeur 1
et une autre dans un classeur 2.
Je voudrais créer une macro qui me permettra de comparer
chaque ligne de cellule de Liste1 avec chaque cellule de
liste2 et:
1- mettre la cellule de liste1 en rouge si une
correspondance est trouvée dans liste2
2- insérer une colonne et ajouter "OK" devant toute les
cellules qui sont en rouge
Paramètres à adapter à ton cas : * On lance la macro à partir de la feuille active du classeur "Classeur1" contenant la liste en A1:Ax * Le classeur "Classeur2" est ouvert * La liste, dans le classeur "Classeur2", se trouve en "Feuil1" A1:A100
Sub zz_Dble() For Each c In Range("A1:A" & [A65536].End(3).Row) If Evaluate("isnumber(match(" & c.Address & ",[Classeur2]Feuil1!A1:A100,0))") Then c.Font.ColorIndex = 3 c(1, 2) = "OK" End If Next End Sub
PS : Dans la mesure où les 2 classeurs sont ouverts, on pourrait utiliser la Mise en Forme Conditionnelle pour barbouiller les doublons en rouge AV
"Pedro" a écrit dans le message news: 060501c35fee$4b29c670$ J'ai une liste de noms dans la colonne A d'un classeur 1 et une autre dans un classeur 2. Je voudrais créer une macro qui me permettra de comparer chaque ligne de cellule de Liste1 avec chaque cellule de liste2 et:
1- mettre la cellule de liste1 en rouge si une correspondance est trouvée dans liste2
2- insérer une colonne et ajouter "OK" devant toute les cellules qui sont en rouge