Microsoft 365 Comparer valeur et ajouter si inexistante

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 !

Croc_de_loups

XLDnaute Junior
Bonjour à vous tous,

J'ai besoin d'aide car ,j'ai beau cherché, je n'ai pas vu la réponse à ma question donc je vous demande de l'aide.
J'ai une colonne de N° de commandes inscrit(sur la feuille nommé "Suivi commande") et sur une autre feuille ("revenu commande") j'ai une colonne N° de colonne aussi.
Ce que je voudrais faire avec une macro ou une formule est de comparer ces 2 colonnes et si le N° de commandes inscrit dans la feuille 1 n'est pas dans la feuille de revenu de commande, j'aimerais qu'elle s'ajoute automatiquement.

Je vous laisse ci-joint un fichier exemple en espérant qu'il puisse vous aider.

Je vous remercie pour votre aide d'avance et je vous souhaite également une bonne journée à tous !
 

Pièces jointes

Solution
Bonjour Croc_de_loups,
Un essai en PJ avec :
VB:
Sub MiseAjour()
    DLsuivi = Sheets("Suivi commande").[A65500].End(xlUp).Row
    DL = 1 + [A65500].End(xlUp).Row: DL0 = DL
    With Sheets("Suivi commande")
        Set Plage = .Range("A2:A" & DL)
        For L = 2 To DLsuivi
            If Application.CountIf(Plage, .Cells(L, "A")) = 0 Then ' N° absent
                Cells(DL, "A") = .Cells(L, "A")
                DL = DL + 1
            End If
        Next L
    End With
    MsgBox DL - DL0 & " N° de commande ajoutés."
End Sub
Bonjour Croc_de_loups,
Un essai en PJ avec :
VB:
Sub MiseAjour()
    DLsuivi = Sheets("Suivi commande").[A65500].End(xlUp).Row
    DL = 1 + [A65500].End(xlUp).Row: DL0 = DL
    With Sheets("Suivi commande")
        Set Plage = .Range("A2:A" & DL)
        For L = 2 To DLsuivi
            If Application.CountIf(Plage, .Cells(L, "A")) = 0 Then ' N° absent
                Cells(DL, "A") = .Cells(L, "A")
                DL = DL + 1
            End If
        Next L
    End With
    MsgBox DL - DL0 & " N° de commande ajoutés."
End Sub
 

Pièces jointes

Bonjour Croc_de_loups,
Un essai en PJ avec :
VB:
Sub MiseAjour()
    DLsuivi = Sheets("Suivi commande").[A65500].End(xlUp).Row
    DL = 1 + [A65500].End(xlUp).Row: DL0 = DL
    With Sheets("Suivi commande")
        Set Plage = .Range("A2:A" & DL)
        For L = 2 To DLsuivi
            If Application.CountIf(Plage, .Cells(L, "A")) = 0 Then ' N° absent
                Cells(DL, "A") = .Cells(L, "A")
                DL = DL + 1
            End If
        Next L
    End With
    MsgBox DL - DL0 & " N° de commande ajoutés."
End Sub
Bonjour Sylvanu,
Ta macro fonctionne !!!! Encore une fois, tu m'aides et je t'en remercie !

Bonne journée à toi
 
Bonjour Croc_de_loups,
Un essai en PJ avec :
VB:
Sub MiseAjour()
    DLsuivi = Sheets("Suivi commande").[A65500].End(xlUp).Row
    DL = 1 + [A65500].End(xlUp).Row: DL0 = DL
    With Sheets("Suivi commande")
        Set Plage = .Range("A2:A" & DL)
        For L = 2 To DLsuivi
            If Application.CountIf(Plage, .Cells(L, "A")) = 0 Then ' N° absent
                Cells(DL, "A") = .Cells(L, "A")
                DL = DL + 1
            End If
        Next L
    End With
    MsgBox DL - DL0 & " N° de commande ajoutés."
End Sub
En fait j'ai parler un peu trop vite...
Je viens de mettre ta macro dans le fichier qu'il me faut et il m'insère aussi les doublons je ne sais pas pourquoi ? Peux-tu m'aider stp (désolé du dérangement)
 
Dans la PJ fournie, ce n'est pas le cas.
Et je ne comprends pas. dans la macro il y a :
VB:
If Application.CountIf(Plage, .Cells(L, "A")) = 0 Then
Donc si le numéro présent dans Suivi commande est absent dans Revenu commande alors on le rajoute , sinon on ne fait rien.
Donc je ne vois pas comment dans Revenu commande on pourrait avoir des doublons.
Vous n'auriez pas un fichier montrant le problème ?
 
Dans la PJ fournie, ce n'est pas le cas.
Et je ne comprends pas. dans la macro il y a :
VB:
If Application.CountIf(Plage, .Cells(L, "A")) = 0 Then
Donc si le numéro présent dans Suivi commande est absent dans Revenu commande alors on le rajoute , sinon on ne fait rien.
Donc je ne vois pas comment dans Revenu commande on pourrait avoir des doublons.
Vous n'auriez pas un fichier montrant le problème ?
Si tu met ,avant de lancé ta macro, sur la feuille revenu une commande (exemple M100165) et qu'après tu exécute ta macro, il l'ajoute (se trouve vers les derniers). Peux-tu essayer pour voir si c'est peut être moi qui ai mal copié ta macro ? Mais sinon ta macro fonctionne et elle fait une partie de ce que je souhaite(encore merci).
Si tu n'as pas la réponse à se sujet, pas de problème, tu m'as déjà bien aidé.

En attendant ta répons je vais essayer de trouvé la solution.
 
Oups! Celle là était jolie.
En fait on calcule la dernière ligne et on fixe la plage.
Seulement ensuite quand on rajoute des éléments, DL est modifié mais pas Plage puisqu'elle est déclarée avant.
Donc il faut recalculer la plage à chaque fois. Il faut supprimer la déclaration de Plage et modifier le IF :
VB:
If Application.CountIf(Range("A2:A" & DL), .Cells(L, "A")) = 0 Then
Comme ça la plage d'examen est recalculée à chaque fois.
Sorry.
 

Pièces jointes

Oups! Celle là était jolie.
En fait on calcule la dernière ligne et on fixe la plage.
Seulement ensuite quand on rajoute des éléments, DL est modifié mais pas Plage puisqu'elle est déclarée avant.
Donc il faut recalculer la plage à chaque fois. Il faut supprimer la déclaration de Plage et modifier le IF :
VB:
If Application.CountIf(Range("A2:A" & DL), .Cells(L, "A")) = 0 Then
Comme ça la plage d'examen est recalculée à chaque fois.
Sorry.
Bonjour Sylvanu,
Je viens d'essayer en modifiant le if et cela fonctionne !
Merci de ton aide et bonne journée à toi !
 
- 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

Discussions similaires

Réponses
4
Affichages
49
Réponses
13
Affichages
165
Réponses
1
Affichages
68
Réponses
5
Affichages
101
  • Question Question
XL 2019 fonction
Réponses
2
Affichages
83
Réponses
4
Affichages
95
Retour