• Initiateur de la discussion Initiateur de la discussion alessandro
  • Date de début Date de début

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 !

Re : compter les clients

Bonjour Alessandro,

Je te fais une proposition dans le fichier ci-joint en utilisant un TCD (tableau croisé dynamique). A mon avis pour ce genre de statisytique, c'est beaucoup plus simple et plus souple que du code VBA.

Bon dimanche
 

Pièces jointes

Re : compter les clients

bonsoir

Je n'ai pas vue un reponse a ma question,peut etre mal pose
je voudrai savoir combien de clients unique sont etes servis.
exemple:avec le code 03201 l'agente 10 a servi seulement 1 client pas deux
j'attende une reponse svp
alessandro
 
Re : compter les clients

Bonjour Alessandro

Voi si cela te convient
Attention les 'agente' doivent etre conservés sous les N° 1 a 20

Edit:Salut FredO0

Bonsoir
je vu votre travail c'e bon mais je voudrai savoir combien de client unique
je servi par agente
exemple avec le code 03201 l'agente 10 a servi 1(un) seul client pas deux
j'espere en une reponse svp
alessandro
 
Re : compter les clients

Bonjour,

Voici une autre version qui me semble plus rapide

Code:
Dim tab1
Sub toto()
t = Timer
Set tab1 = CreateObject("scripting.dictionary")
l = 2
com = Trim(Cells(2, 11))
While Cells(l, 1) <> ""
    If Cells(l, 2) > agence_max Then agence_max = Cells(l, 2) ' recupere le nombre d'agence
    If Trim(Cells(l, 1)) = com Then
        agence = "A" & Cells(l, 2)
        If tab1.exists(agence) Then
           tab1(agence) = tab1(agence) + 1
        Else
            tab1(agence) = 1
        End If
    End If
    l = l + 1
Wend

'ecriture resultat
l = 1
c = 14
Range(Cells(2, 14), Cells(1000, 15)).ClearComments
For b = 1 To agence_max
'For Each agence In tab1
    l = b + 1
    agence = "A" & b
    If tab1.exists(agence) Then
        Cells(l, c) = b
        Cells(l, c + 1) = tab1(agence)
    Else
        Cells(l, c) = b
        Cells(l, c + 1) = 0
    End If
Next
MsgBox Round(Timer - t, 2) & " s"
End Sub

simple macro pas de module de classe




bien entendu il faut
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$K$2" Then toto
end sub
au niveau de la feuille

bonne journée
 
Re : compter les clients

Bonjour PierreJean

Et oui je n'avais pas fait le controle si meme agence et meme code client

voila
Code:
Dim tab1
Dim tab2
Sub toto()
t = Timer
Set tab1 = CreateObject("scripting.dictionary")
Set tab2 = CreateObject("scripting.dictionary")
l = 2
com = Trim(Cells(2, 11))
While Cells(l, 1) <> ""
    If Cells(l, 2) > agence_max Then agence_max = Cells(l, 2) ' recupere le nombre d'agence
    If Trim(Cells(l, 1)) = com Then
        agence = "A" & Cells(l, 2)
        cle2 = Cells(l, 2) & "_" & Cells(l, 3)
        
        
        If tab2.exists(cle2) = False Then
        If tab1.exists(agence) Then
           tab1(agence) = tab1(agence) + 1
        Else
            tab1(agence) = 1
        End If
        End If
        tab2(cle2) = 1
    End If
    l = l + 1
Wend

'ecriture resultat
l = 1
c = 14
Range(Cells(2, 14), Cells(1000, 15)).ClearComments
For b = 1 To agence_max
'For Each agence In tab1
    l = b + 1
    agence = "A" & b
    If tab1.exists(agence) Then
        Cells(l, c) = b
        Cells(l, c + 1) = tab1(agence)
    Else
        Cells(l, c) = b
        Cells(l, c + 1) = 0
    End If
Next
MsgBox Round(Timer - t, 2) & " s"
End Sub

je pense que c'est mieux

excusez moi des fautes mais je viens de perdre l'utilisation demon bras gauche
j'ai mis beaucoup de temps à écrire ce code

A+
 
- 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
7
Affichages
248
Réponses
23
Affichages
655
Réponses
17
Affichages
1 K
Réponses
5
Affichages
480
Réponses
7
Affichages
505
  • Question Question
Réponses
7
Affichages
353
  • Question Question
Microsoft 365 Remplissage auto
Réponses
14
Affichages
369
Retour