Filtre + copie du résultat

tiestof -  
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
J'utilise quotidiennement un fichier qui contient le nombre de commandes passées par charque client pour la journée en cours.
Je souhaite programmer une Macro sous Excel, avec VBA, pour filtrer sur les clients qui n'ont pas passé de commandes et copier la liste de ces client dans une cellule.
la structure de mon tableau et comme suit :
Nom client----- article1---- article2---article3----Remarques
SA1 2 0 3
SA2 0 0 0 Pas de commandes
Je souhaite donc filtrer sur la dernière colonne " Remarque" et copier le nom de tout les clients qui n'ont pas passé de commandes " La cellule = Pas de commandes"
Pour avoir en résultat la liste de tout les clients qui ont passé 0 commandes: " A afficher dans une cellule séparé d'une virgule".

A voir également:

1 réponse

eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonjour,

Proposition sous forme d'une fonction personnalisée à mettre dans un module standard :
 Function pasCmd(plageRemarque As Range, plageNom As Range) As String 
    Const colNom As Long = 1, colRem As Long = 5 
    Dim c As Range 
    For Each c In plageRemarque.SpecialCells(xlCellTypeConstants) 
        If c = "Pas de commandes" Then 
            pasCmd = pasCmd & "," & c.Offset(0, plageNom.Column - plageRemarque.Column).Value 
        End If 
    Next c 
    If Len(pasCmd) > 0 Then pasCmd = Right(pasCmd, Len(pasCmd) - 1) 
End Function

ex syntaxe dans une cellule :
=pasCmd(plageRemarque, plageNom)
=pascmd(E:E;A:A)
retourne : "nom2,nom5,nom10,nom13"

La fonction se recalcule à chaque modif dans plageRemarque ou plageNom.
https://www.cjoint.com/?BHCnDmljXOS

eric
---
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
0