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 !
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
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
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
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.
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.