Compter le nombre de personnes qui disposent du même compte utilisateur

Bonjour, est-ce que quelqu’un pourrait m’aider ; Il m’est demandé de créer une colonne « Nombre de clients connectés » dans la feuille « comptes utilisateur », pour stocker le nombre de clients connecter à un compte particulier ( sachant qu’un client n’a qu’un seul numéro de compte, mais qu’un numéro de compte est attribué à plusieurs clients).

Donc le but est de savoir combien il y a de clients au total dans chaque compte utilisateur.

Pour ce faire, j’ai utilisé le code suivant :

Sub clients_connect()

Sheets("Clients").Select

Dim nbcompte As Long

nbcompte = Range("B2").End(xlDown).Row

Sheets("Comptes utilisateur").Select

Dim nbcompte2 As Long

nbcompte2 = Range("A2").End(xlDown).Row

Dim numcompte As String

Dim count As Integer

Range("F1").Value = "Nombre de clients connecté"

Sheets("comptes utilisateur").Select

For compte = 2 To nbcompte2

numcompte = Range("A" & compte).Value

count = 0

Sheets("Clients").Select

For clients = 2 To nbcompte

If Range("B" & clients).Value = numcompte Then

count = count + 1

End If

Sheets("comptes utilisateur").Select

Range("F" & compte).Value = count

Next clients

Next compte

End Sub

Malheureusement, ce code ne me donne pas la réponse attendue, il ne fait qu’afficher un 1 pour la deuxième ligne de la colonne suivie de plein de 0 pour les colonnes suivantes. Je ne comprends pas comment faire en sorte qu’il parcourt toute la colonne B de la feuille clients, et compte le nombre de fois qu’un même compte utilisateur s’y trouve, et ensuite mettre cette information dans la colonne « nombre de clients connecté » de la feuille « compte utilisateur »…

Si quelqu’un a compris mon erreur, peut-il m’expliquer ?

Edit Dan : Fichier retiré pour présence de données confidentielles

Salut Estelle,

VBA est plus simple que tu crois : quasi toujours, il n'est pas besoin de sélectionner ou d'activer feuilles ou cellules.
L'adressage direct fonctionne très bien : il suffit de préciser dans le code qui fait quoi.

J'imagine que tu veux une mise à jour en temps réel : si ce code fonctionne comme il devrait, je te ferai une macro qui fera ce même calcul automatiquement lors de l'encodage.

Sub clients_connect()
'
Dim sWkCL As Worksheet, iTot%
'
Set sWkCL = Worksheets("Clients")
Application.ScreenUpdating = False
'
With Worksheets("Comptes utilisateurs")
    .[F1] = "Nombre de clients connectés"
    For x = 2 To .Range("A" & Rows.count).End(xlUp).Row
        iTot = 0
        For y = 2 To sWkCL.Range("B" & Rows.count).End(xlUp).Row
            If sWkCL.Range("B" & y).Value = .Range("A" & x).Value Then iTot = iTot + 1
        Next
        .Range("F" & x).Value = iTot
    Next compte
End With
'
Application.ScreenUpdating = True
'
End Sub


A+

Rechercher des sujets similaires à "compter nombre personnes qui disposent meme compte utilisateur"