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

Microsoft 365 Comparer valeur et ajouter si inexistante

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

  • Classeur suivi commande.xlsm
    31.4 KB · Affichages: 7
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

sylvanu

XLDnaute Barbatruc
Supporter XLD
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

  • Classeur suivi commande (1).xlsm
    32.6 KB · Affichages: 3

Croc_de_loups

XLDnaute Junior
Bonjour Sylvanu,
Ta macro fonctionne !!!! Encore une fois, tu m'aides et je t'en remercie !

Bonne journée à toi
 

Croc_de_loups

XLDnaute Junior
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)
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
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 ?
 

Croc_de_loups

XLDnaute Junior
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.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
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

  • Classeur suivi commande (1) (1).xlsm
    33.8 KB · Affichages: 3

Croc_de_loups

XLDnaute Junior
Bonjour Sylvanu,
Je viens d'essayer en modifiant le if et cela fonctionne !
Merci de ton aide et bonne journée à toi !
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…