Comparer les valeurs de deux colonnes en vba

Résolu/Fermé
Kasiope_33 Messages postés 5 Date d'inscription jeudi 27 novembre 2008 Statut Membre Dernière intervention 1 décembre 2008 - 27 nov. 2008 à 19:33
Kasiope_33 Messages postés 5 Date d'inscription jeudi 27 novembre 2008 Statut Membre Dernière intervention 1 décembre 2008 - 1 déc. 2008 à 19:13
Bonjour,
à partir d'une boucle for next sur une colonne dans la feuille1 je cherche à trouver si cette valeur n'est pas dans une autre colonne dans la feuille2 avec une autre boucle for next. si effectivement cette valeur n'est pas dans la colonne de la feuille2 je cherche à copier cette valeur dans une colonne feuille3. si vous pouvez m'aider un grand merci à tous

8 réponses

wilfried_42 Messages postés 907 Date d'inscription mardi 19 août 2008 Statut Contributeur Dernière intervention 8 décembre 2009 243
27 nov. 2008 à 19:41
bonjour

pour eviter les boucle multiples, on va melanger tout ca
à adapter (nom de feuille, plages de cellules)
sub ctrl_et_copie()
dim i as long
for i = 1 to sheets("Feuil1").range("A65536").end(xlup)
     if application.worksheetFunction.countif(Sheets("Feuil2").range("A:A"), sheets("Feuil1").range("A" & i))>0 then
                sheets("Feuil3").range("A65536").end(xlup).offset(1,0) = sheets("Feuil1").range("A" & i)
     end if
next i
end sub
0
Kasiope_33 Messages postés 5 Date d'inscription jeudi 27 novembre 2008 Statut Membre Dernière intervention 1 décembre 2008
28 nov. 2008 à 15:11
Je vous remercie vivement l'interet que vous portez à ma question, seulement votre réponse n'a pas réussit à me donner une solution. Mais je fouille quand meme dans la direction que vous me donnez.
Je vais vous donner le code que je comptais utiliser( enfin la base du code) .seulement il ne fonctionne pas
Sub Agent_sortant()


For c = 3 To 308
'-------------Prendre un agent x dans la liste de la feuille réafectation septembre------------------
Sheets("Réaffectation_septembre_2008").Select
idendifiant_Agent_Orchi = Range("C" & c & "").Value
Nom_Agent_Orchi = Range("D" & c & "").Value
Prenom_Agent_Orchi = Range("E" & c & "").Value

'--------------- si l'agent l'agent x n'est pas dans feuille réafectation octobre-------
'--------------- copier l'agent x dans la feuille Personnel sortant----------
Sheets("Réaffectation_octobre_2008").Select
For e = 3 To 308
If Range("C" & e & "").Value <> idendifiant_Agent_Orchi And Range("D" & e & "").Value <> Nom_Agent_Orchi Then

Sheets("Personnels_sortants").Select
Dim maligne As String
For L = 2 To 1000
If Range("c" & L & "").Value <> "" Then
maligne = L
maligne = maligne + 1
End If
Next
Range("C" & maligne & "").Value = idendifiant_Agent_Orchi
Range("D" & maligne & "").Value = Nom_Agent_Orchi
Range("E" & maligne & "").Value = Prenom_Agent_Orchi
End If

Next
Next
MsgBox "Terminé"
End Sub

SEULEMENT LA BOUCLE FOR e NEXT S'ARRETE D7S LA PREMIERE LIGNE DE RECHERCHE ET NE BALAYE PAS LES 308 LIGNES DE MA COLONNE DANS LA FEUILLE Réaffectation_octobre_2008

Encor merci de votre attention et d'avance je vous remercie de votre aide
0
wilfried_42 Messages postés 907 Date d'inscription mardi 19 août 2008 Statut Contributeur Dernière intervention 8 décembre 2009 243
28 nov. 2008 à 16:01
re:

une tite question, l'identifiant agent est unique par agent ? si oui pourquoi tester le nom ???

@ te lire
0
Kasiope_33 Messages postés 5 Date d'inscription jeudi 27 novembre 2008 Statut Membre Dernière intervention 1 décembre 2008
28 nov. 2008 à 16:27
Bonjour

oui l'identifiant est unique bonne remarque mais au départ j'avais fais avec le nom, mais bien sur si on tombe sur "Dupont" donc j'avais rajouté l'identifiant

merci et vois tu assez clairement qu'elle est ma recharche
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
wilfried_42 Messages postés 907 Date d'inscription mardi 19 août 2008 Statut Contributeur Dernière intervention 8 décembre 2009 243
28 nov. 2008 à 19:09
re:

pas sur d'avoir compris lol

Sub Agent_sortant() 
      dim w1 as worksheet, w2 as worksheet, w3 as worksheet
      dim i as long
      set w1 = Sheets("Réaffectation_septembre_2008")
      set w2 = Sheets("Réaffectation_octobre_2008")
      set w3 = Sheets("Personnels_sortants")

      for i = 3 to w1.range("C65536").end(xlup).row ' faire toute la colonne C
             if application.worksheetfunction.countif(w2.range("C:C"), w1.range("C" & i)) = 0 then
                    w1.range("C" & i & ":E" & i).copy destination:=W3.range("C65536").end(xlup).offset(1,0)
             End If 
      Next 
       MsgBox "Terminé" 
End Sub 


Comme tu n'as pas founi un fichier exemple, je n'ai pas pu testé la macro
mais à premiere vue, elle a l'aire correcte
0
Kasiope_33 Messages postés 5 Date d'inscription jeudi 27 novembre 2008 Statut Membre Dernière intervention 1 décembre 2008
29 nov. 2008 à 10:35
Bonjour je te remercie vivement
Ta macro marche à merveille et en plus cerise sur le gateau elle est vraiment très rapide.
maintenant je vais essayer de l'adapter pour que ça me copie la ligne entière
je te donne mon mail perso si tu souhaite correspondre davantage: christian.lassep@numericable.fr
encore Merci
0
wilfried_42 Messages postés 907 Date d'inscription mardi 19 août 2008 Statut Contributeur Dernière intervention 8 décembre 2009 243
30 nov. 2008 à 15:03
bonjour


pour une ligne complete :

      for i = 3 to w1.range("C65536").end(xlup).row ' faire toute la colonne C
             if application.worksheetfunction.countif(w2.range("C:C"), w1.range("C" & i)) = 0 then
                    w1.range("A" & i ).entireRow.copy destination:=W3.range("C65536").end(xlup).offset(1,-2)
             End If 
      Next 


Modif en gras pour copie de ligne complete
0
Kasiope_33 Messages postés 5 Date d'inscription jeudi 27 novembre 2008 Statut Membre Dernière intervention 1 décembre 2008
1 déc. 2008 à 19:13
Je te remercie encore une fois pour ton aide et pour l'évolution de la macro (ligne complète)

@+ de te lire un jour peut etre et je suis vraiment satisfait que des gens puissent s'entraider ainsi
0