Bonjour,
J’ai suivi à la lettre les commentaires, tout fonctionne parfaitement jusqu'à maintenant (après adaptation au véritable fichier de travail), il va falloir que je teste la macro sur un nombre significatif de bases pour constater si j’ai omis des variables ou pas.
En tout cas cela va me permettre d’avancer et je te suis sincèrement reconnaissant !!!
si jamais je devais être amené a créer un deuxième groupe de problème (tel que "ordinateur" me suffit il de dupliquer ce passage :
Ordi = Array("clavier et souris", "écran et caisson de basses", "imprimante", "Nass", "câbles et wifi")
Set Prob = CreateObject("Scripting.Dictionary")
With Sheets("Base")
.Range("CK1").Value = .Range("I1").Value 'remplace I1 par CC1
Derlig = .Cells(Rows.Count, "A").End(xlUp).Row
Set Plg = .Range("A1:J" & Derlig) 'ATTENION à bien définir la plage(dans ton fichier réel, remplace J par CK)
For Each Cel In .Range("I2:I" & Derlig) 'Ici, remplace I par CC
If Not IsEmpty(Cel) Then
If IsError(Application.Match(Cel.Value, Ordi, 0)) Then
Prob(Cel.Value) = Cel.Value
End If
End If
Next Cel
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = "Ordinateur"
For I = 0 To UBound(Ordi)
.Cells(I + 2, "CK").Value = Ordi(I)
Next I
Plg.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=.Range( _
"CK1").Resize(UBound(Ordi) + 2), CopyToRange:=ActiveSheet.Range("A1"), Unique:=False
.Range("CK1").Resize(UBound(Ordi) + 2).Clear
et de le placer a la suite du premier groupement en changeant les variables ?
Un tres grand merci à toi.
Ps : je n’aurais pas toujours la chance de tomber sur quelqu’un comme toi, de ce fait aurais tu un livre à me conseiller pour me perfectionner en VBA. ?