Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Comparaison deux colonnes

  • Initiateur de la discussion Initiateur de la discussion Bad_Dream
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

B

Bad_Dream

Guest
Bonjour,
Je cherche à faire une maccro sous vba, qui comparerait deux colonnes de deux onglets différents, et ajoueteraient la valeur manquante ds le premier onglet. J'avais pensé le faire en mettant une fonction vlookup a l'interieur d'une boucle qui chercherait ainsi chaque valeur du premier tableau dans le deuxieme, et en cas d'erreur prendrait la valeur non trouvé et la mettrait dans le premier tableau. Je vous met mon ébauche qui bien entendu ne marche pas...


Private Sub CommandButton1_Click()


On Error Resume Next




For k = 9 To Nblignecc2
If Worksheets("cc").Cells(k, 1) <> "" Then
a = Application.VLookup(Worksheets("cc").Cells(k, 1), Worksheets("feuil1").Range("A:B"), 2, False)
End If

If a Then b = b Else _
b = NBlignefeuil1 + 1
c = Worksheets("cc").Cells(k, 1)
Worksheets("feuil1").Cells(b, 1) = c


Next k



End Sub


Sachant que Nblignecc2 et Nblignefeuil1 sont des zones de texte remplies par l'utilisateur


Merci d'avance pour votre aide!
 
Re : Comparaison deux colonnes

Bonjour Bad_Dream,

moi je verrais plutôt ça comme ça (pas testé) :

Code:
Private Sub CommandButton1_Click()
 
 
On Error Resume Next
 
 
 
 
For k = 9 To Nblignecc2
If Worksheets("cc").Cells(k, 1) <> "" Then
a = Application.Countif(Worksheets("feuil1").Range("A:A"),Worksheets("cc").Cells(k, 1))
 
If a=0 Then 
b = NBlignefeuil1 + 1
c = Worksheets("cc").Cells(k, 1)
Worksheets("feuil1").Cells(b, 1) = c
end if
End If
Next k
 
 
 
End Sub
 
Re : Comparaison deux colonnes

Bonjour,
Ca ne marche malheuresement pas. Je crois que je me suis mal expliqué en fait.
J'ai deux colonnes ds deux onglets différents. La colonne du second onglet est mise a jour régulièrement, c'est a dire qu'on ajoute des lignes ( j'insiste sur le fait que l'on en retire jamais). Il faudrait en fait que je puisse faire une maccro qui ajouterait les lignes manquante dans le premier onglet par rapport au second, et ceci sans changer les lignes déja existantes du premier onglet. Si ce n'est vraiment pas clair dites le moi :s
Merci
 
Re : Comparaison deux colonnes

Bonjour,

pourquoi ça marche pas ? qu'est-ce qui se passe ? où ça bugue ?

on se doute que si tu viens poser des questions, c'est que

Ca ne marche malheuresement pas

Autre question : j'ai repris ton code pour le modifier, mais les variables Nblignecc2 et NBlignefeuil1 ne semblent pas initialisées.. leur donnes-tu les bonnes valeurs avant ce code ?
 
Re : Comparaison deux colonnes

En effet j'avais fait une erreur de saisie => "nblignefeuil1" au lieu de "nblignesfeuil1".
De plus, mon second problème était que quand il y avait plusieurs valeurs différentes, il n'en prenait qu'une => résolue avec l'ajout de b= b+1
Au final j'ai :

Private Sub CommandButton1_Click()


On Error Resume Next



b = Nblignesfeuil1 + 1
For k = 9 To Nblignecc2
If Worksheets("cc").Cells(k, 1) <> "" Then
a = Application.CountIf(Worksheets("feuil1").Range("A:A"), Worksheets("cc").Cells(k, 1))

If a = 0 Then
c = Worksheets("cc").Cells(k, 1)
Worksheets("feuil1").Cells(b, 1) = c
b = b + 1
End If
End If

Next k



End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
15
Affichages
788
Réponses
5
Affichages
752
Réponses
9
Affichages
884
Réponses
7
Affichages
831
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…