Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

extraction avec comptage ..... VBA

16 réponses
Avatar
Pat rednef
Bonjour,

Un problème se pose à moi sans solution: J'ai dans la colone A une liste de
code client classé par ordre croissant et en face de chaque code la date de
visite du représentant (bien sur il y a souvent plusieus fois le même code
avec des dates de visites différentes): Je sais bien faire l'extraction sans
doublons en VBA mais là je cherche à identifier le nombre de visite par
client et lister cela sur l'onglet feuil2. Le code se traduirait par :
regarde dans la colonne A pour chaque code trouvé, compte le nombre de fois
que le code apparait dans la colonne A puis trouve le code client suivant
différent et compte à nouveau le nombre de fois que le code apparait dans la
colonne A etc etc .....

A B
12345 02/11
12345 18/10
12345 10/10
12348 03/11
12349 05/10
21345 05/10
21345 29/09
etc...
Le reps a donc visité le 12345 3 fois
Je souhaite une présentation sur la feuille 2 de type
A B
12345 3
Merci à tous pour votre aide et bonne soirée

Pat

10 réponses

1 2
Avatar
Rai
Bonjoir (c)

Regarde du côté des TCD (Rapport de Tableau Croisé Dynamique du menu 'Données'.

La démarche en gros :
- mets un nom en entête de chaque colonne (ref client, date de visite ...)
- clique sur le menu Données / Rapport de Tableau Croisé Dynamique
- suis les 3 étapes de l'assistante en cliquant sur suivant, suivant Terminer
- prends le champ 'ref client' et pose le dans les champs lignes (avec la souris)
- prends le champ 'date' et pose le dans les données

FINI !!!

Dis comme ça, ça a l'air incompréhensible, mais en suivant pas à pas devant Excel ça sera simple, et rapide.

Bonne continuation,


--
Cordialement,

Rai
Remplacer point par la ponctuation appropriée pour répondre...

"Pat rednef" a écrit dans le message de news:
Bonjour,

Un problème se pose à moi sans solution: J'ai dans la colone A une liste de
code client classé par ordre croissant et en face de chaque code la date de
visite du représentant (bien sur il y a souvent plusieus fois le même code
avec des dates de visites différentes): Je sais bien faire l'extraction sans
doublons en VBA mais là je cherche à identifier le nombre de visite par
client et lister cela sur l'onglet feuil2. Le code se traduirait par :
regarde dans la colonne A pour chaque code trouvé, compte le nombre de fois
que le code apparait dans la colonne A puis trouve le code client suivant
différent et compte à nouveau le nombre de fois que le code apparait dans la
colonne A etc etc .....

A B
12345 02/11
12345 18/10
12345 10/10
12348 03/11
12349 05/10
21345 05/10
21345 29/09
etc...
Le reps a donc visité le 12345 3 fois
Je souhaite une présentation sur la feuille 2 de type
A B
12345 3
Merci à tous pour votre aide et bonne soirée

Pat


Avatar
Rai
OOOOPS !!
J'ai pas regardé ton titre de message en détail.

Du coup, j'ai omis que tu voulais avoir la procédure en VBA.
Si ça se trouve tu connais parfaitement les TCD et tu crois que je te prends pour un c... désolé si c'est le cas ;o))

En tous acs, tu peux toujours suivre la procédure indiquée en lançant l'enregistreur de macros avant, et en regardant le code ensuite.

Bonne soirée

"Rai" a écrit dans le message de news: 4194e078$0$17862$
Bonjoir (c)

Regarde du côté des TCD (Rapport de Tableau Croisé Dynamique du menu 'Données'.

La démarche en gros :
- mets un nom en entête de chaque colonne (ref client, date de visite ...)
- clique sur le menu Données / Rapport de Tableau Croisé Dynamique
- suis les 3 étapes de l'assistante en cliquant sur suivant, suivant Terminer
- prends le champ 'ref client' et pose le dans les champs lignes (avec la souris)
- prends le champ 'date' et pose le dans les données

FINI !!!

Dis comme ça, ça a l'air incompréhensible, mais en suivant pas à pas devant Excel ça sera simple, et rapide.

Bonne continuation,


--
Cordialement,

Rai
Remplacer point par la ponctuation appropriée pour répondre...

"Pat rednef" a écrit dans le message de news:
Bonjour,

Un problème se pose à moi sans solution: J'ai dans la colone A une liste de
code client classé par ordre croissant et en face de chaque code la date de
visite du représentant (bien sur il y a souvent plusieus fois le même code
avec des dates de visites différentes): Je sais bien faire l'extraction sans
doublons en VBA mais là je cherche à identifier le nombre de visite par
client et lister cela sur l'onglet feuil2. Le code se traduirait par :
regarde dans la colonne A pour chaque code trouvé, compte le nombre de fois
que le code apparait dans la colonne A puis trouve le code client suivant
différent et compte à nouveau le nombre de fois que le code apparait dans la
colonne A etc etc .....

A B
12345 02/11
12345 18/10
12345 10/10
12348 03/11
12349 05/10
21345 05/10
21345 29/09
etc...
Le reps a donc visité le 12345 3 fois
Je souhaite une présentation sur la feuille 2 de type
A B
12345 3
Merci à tous pour votre aide et bonne soirée

Pat


Avatar
Pounet95
Bonsoir,
Quelque chose dans ce goût .... à optimiser
A mettre dans un module standard

Sub Comptage()
'la feuille contenant les données
Set ws1 = ActiveSheet
'la feuille des résultats
Set ws2 = Sheets("Feuil2")
ws2.Select
Range("A1").Select

'on revient aux données
ws1.Select
'première cellule
Range("A1").Select
'mise à 1 compteur
nb = 1
'boucler tant que pas de cellule vide
Do While ActiveCell.Value <> ""
xRep = ActiveCell.Value
Do While ActiveCell.Value = xRep
nb = nb + 1
ActiveCell.Offset(1, 0).Select
Loop
ws2.Select
ActiveCell.Value = xRep
ActiveCell.Offset(0, 1).Value = nb
ActiveCell.Offset(1, 0).Select
nb = 1
ws1.Select
Loop
'voir les résultats
ws2.Select
End Sub


--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
"Pat rednef" a écrit dans le message
de news:
Bonjour,

Un problème se pose à moi sans solution: J'ai dans la colone A une liste
de
code client classé par ordre croissant et en face de chaque code la date
de
visite du représentant (bien sur il y a souvent plusieus fois le même code
avec des dates de visites différentes): Je sais bien faire l'extraction
sans
doublons en VBA mais là je cherche à identifier le nombre de visite par
client et lister cela sur l'onglet feuil2. Le code se traduirait par :
regarde dans la colonne A pour chaque code trouvé, compte le nombre de
fois
que le code apparait dans la colonne A puis trouve le code client suivant
différent et compte à nouveau le nombre de fois que le code apparait dans
la
colonne A etc etc .....

A B
12345 02/11
12345 18/10
12345 10/10
12348 03/11
12349 05/10
21345 05/10
21345 29/09
etc...
Le reps a donc visité le 12345 3 fois
Je souhaite une présentation sur la feuille 2 de type
A B
12345 3
Merci à tous pour votre aide et bonne soirée

Pat


Avatar
Pounet95
Erreur ( fatale ?) : Initialiser compteur à 0 et non pas 1

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
"Pounet95" a écrit dans le message de news:

Bonsoir,
Quelque chose dans ce goût .... à optimiser
A mettre dans un module standard

Sub Comptage()
'la feuille contenant les données
Set ws1 = ActiveSheet
'la feuille des résultats
Set ws2 = Sheets("Feuil2")
ws2.Select
Range("A1").Select

'on revient aux données
ws1.Select
'première cellule
Range("A1").Select
'mise à 1 compteur
nb = 1
'boucler tant que pas de cellule vide
Do While ActiveCell.Value <> ""
xRep = ActiveCell.Value
Do While ActiveCell.Value = xRep
nb = nb + 1
ActiveCell.Offset(1, 0).Select
Loop
ws2.Select
ActiveCell.Value = xRep
ActiveCell.Offset(0, 1).Value = nb
ActiveCell.Offset(1, 0).Select
nb = 1
ws1.Select
Loop
'voir les résultats
ws2.Select
End Sub


--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
"Pat rednef" a écrit dans le message
de news:
Bonjour,

Un problème se pose à moi sans solution: J'ai dans la colone A une liste
de
code client classé par ordre croissant et en face de chaque code la date
de
visite du représentant (bien sur il y a souvent plusieus fois le même
code
avec des dates de visites différentes): Je sais bien faire l'extraction
sans
doublons en VBA mais là je cherche à identifier le nombre de visite par
client et lister cela sur l'onglet feuil2. Le code se traduirait par :
regarde dans la colonne A pour chaque code trouvé, compte le nombre de
fois
que le code apparait dans la colonne A puis trouve le code client suivant
différent et compte à nouveau le nombre de fois que le code apparait dans
la
colonne A etc etc .....

A B
12345 02/11
12345 18/10
12345 10/10
12348 03/11
12349 05/10
21345 05/10
21345 29/09
etc...
Le reps a donc visité le 12345 3 fois
Je souhaite une présentation sur la feuille 2 de type
A B
12345 3
Merci à tous pour votre aide et bonne soirée

Pat






Avatar
Pat rednef
re bonjour,

oui oui je connais bien les TCD mais je n'imagine pas que l'on me prenne
pour un C.. rassure toi

D'abord merci pour ta réponse, effectivement je souhaite dresser une liste
sur la feuille 2 avec pour chaque client visité en colone A le total des
visites, à ce jour mon tableau avec les codes clients et dates de visite est
environ de 3500 lignes, peux tu m'aider à écrire ce code VBA pour établir la
liste compète en feuille ?

En tout cas merci d'avance pour ton aide & / ou merci à tous pour votre
gentille aide

Bien à vous tous

Pat
"Rai" wrote:

OOOOPS !!
J'ai pas regardé ton titre de message en détail.

Du coup, j'ai omis que tu voulais avoir la procédure en VBA.
Si ça se trouve tu connais parfaitement les TCD et tu crois que je te prends pour un c... désolé si c'est le cas ;o))

En tous acs, tu peux toujours suivre la procédure indiquée en lançant l'enregistreur de macros avant, et en regardant le code ensuite.

Bonne soirée

"Rai" a écrit dans le message de news: 4194e078$0$17862$
Bonjoir (c)

Regarde du côté des TCD (Rapport de Tableau Croisé Dynamique du menu 'Données'.

La démarche en gros :
- mets un nom en entête de chaque colonne (ref client, date de visite ...)
- clique sur le menu Données / Rapport de Tableau Croisé Dynamique
- suis les 3 étapes de l'assistante en cliquant sur suivant, suivant Terminer
- prends le champ 'ref client' et pose le dans les champs lignes (avec la souris)
- prends le champ 'date' et pose le dans les données

FINI !!!

Dis comme ça, ça a l'air incompréhensible, mais en suivant pas à pas devant Excel ça sera simple, et rapide.

Bonne continuation,


--
Cordialement,

Rai
Remplacer point par la ponctuation appropriée pour répondre...

"Pat rednef" a écrit dans le message de news:
Bonjour,

Un problème se pose à moi sans solution: J'ai dans la colone A une liste de
code client classé par ordre croissant et en face de chaque code la date de
visite du représentant (bien sur il y a souvent plusieus fois le même code
avec des dates de visites différentes): Je sais bien faire l'extraction sans
doublons en VBA mais là je cherche à identifier le nombre de visite par
client et lister cela sur l'onglet feuil2. Le code se traduirait par :
regarde dans la colonne A pour chaque code trouvé, compte le nombre de fois
que le code apparait dans la colonne A puis trouve le code client suivant
différent et compte à nouveau le nombre de fois que le code apparait dans la
colonne A etc etc .....

A B
12345 02/11
12345 18/10
12345 10/10
12348 03/11
12349 05/10
21345 05/10
21345 29/09
etc...
Le reps a donc visité le 12345 3 fois
Je souhaite une présentation sur la feuille 2 de type
A B
12345 3
Merci à tous pour votre aide et bonne soirée

Pat





Avatar
Pat rednef
Cher Pounet95

Bravo cela fonctionne très bien, je vais juste vérifier quelques comptes
clients pour être sur du comptage, en tout cas félicitation c'est exactement
ce que je souhaitais

Un grand merci à toi et à ta compétence

Patrick

"Pounet95" wrote:

Bonsoir,
Quelque chose dans ce goût .... à optimiser
A mettre dans un module standard

Sub Comptage()
'la feuille contenant les données
Set ws1 = ActiveSheet
'la feuille des résultats
Set ws2 = Sheets("Feuil2")
ws2.Select
Range("A1").Select

'on revient aux données
ws1.Select
'première cellule
Range("A1").Select
'mise à 1 compteur
nb = 1
'boucler tant que pas de cellule vide
Do While ActiveCell.Value <> ""
xRep = ActiveCell.Value
Do While ActiveCell.Value = xRep
nb = nb + 1
ActiveCell.Offset(1, 0).Select
Loop
ws2.Select
ActiveCell.Value = xRep
ActiveCell.Offset(0, 1).Value = nb
ActiveCell.Offset(1, 0).Select
nb = 1
ws1.Select
Loop
'voir les résultats
ws2.Select
End Sub


--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
"Pat rednef" a écrit dans le message
de news:
Bonjour,

Un problème se pose à moi sans solution: J'ai dans la colone A une liste
de
code client classé par ordre croissant et en face de chaque code la date
de
visite du représentant (bien sur il y a souvent plusieus fois le même code
avec des dates de visites différentes): Je sais bien faire l'extraction
sans
doublons en VBA mais là je cherche à identifier le nombre de visite par
client et lister cela sur l'onglet feuil2. Le code se traduirait par :
regarde dans la colonne A pour chaque code trouvé, compte le nombre de
fois
que le code apparait dans la colonne A puis trouve le code client suivant
différent et compte à nouveau le nombre de fois que le code apparait dans
la
colonne A etc etc .....

A B
12345 02/11
12345 18/10
12345 10/10
12348 03/11
12349 05/10
21345 05/10
21345 29/09
etc...
Le reps a donc visité le 12345 3 fois
Je souhaite une présentation sur la feuille 2 de type
A B
12345 3
Merci à tous pour votre aide et bonne soirée

Pat







Avatar
Pounet95
Merci du merci.

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
"Pat rednef" a écrit dans le message
de news:
Cher Pounet95

Bravo cela fonctionne très bien, je vais juste vérifier quelques comptes
clients pour être sur du comptage, en tout cas félicitation c'est
exactement
ce que je souhaitais

Un grand merci à toi et à ta compétence

Patrick

"Pounet95" wrote:

Bonsoir,
Quelque chose dans ce goût .... à optimiser
A mettre dans un module standard

Sub Comptage()
'la feuille contenant les données
Set ws1 = ActiveSheet
'la feuille des résultats
Set ws2 = Sheets("Feuil2")
ws2.Select
Range("A1").Select

'on revient aux données
ws1.Select
'première cellule
Range("A1").Select
'mise à 1 compteur
nb = 1
'boucler tant que pas de cellule vide
Do While ActiveCell.Value <> ""
xRep = ActiveCell.Value
Do While ActiveCell.Value = xRep
nb = nb + 1
ActiveCell.Offset(1, 0).Select
Loop
ws2.Select
ActiveCell.Value = xRep
ActiveCell.Offset(0, 1).Value = nb
ActiveCell.Offset(1, 0).Select
nb = 1
ws1.Select
Loop
'voir les résultats
ws2.Select
End Sub


--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
"Pat rednef" a écrit dans le
message
de news:
Bonjour,

Un problème se pose à moi sans solution: J'ai dans la colone A une
liste
de
code client classé par ordre croissant et en face de chaque code la
date
de
visite du représentant (bien sur il y a souvent plusieus fois le même
code
avec des dates de visites différentes): Je sais bien faire l'extraction
sans
doublons en VBA mais là je cherche à identifier le nombre de visite par
client et lister cela sur l'onglet feuil2. Le code se traduirait par :
regarde dans la colonne A pour chaque code trouvé, compte le nombre de
fois
que le code apparait dans la colonne A puis trouve le code client
suivant
différent et compte à nouveau le nombre de fois que le code apparait
dans
la
colonne A etc etc .....

A B
12345 02/11
12345 18/10
12345 10/10
12348 03/11
12349 05/10
21345 05/10
21345 29/09
etc...
Le reps a donc visité le 12345 3 fois
Je souhaite une présentation sur la feuille 2 de type
A B
12345 3
Merci à tous pour votre aide et bonne soirée

Pat









Avatar
Pat rednef
Aie Aie !

J'ai fait un test avec compteur initialisé à 1 ou à 0 c'est la même chose,
j'ai pris un client visité 8 fois, le résultat donne pour chaque essai 9 fois

Peux tu m'aider ?

Je ne vois pas ou est le bug

Marci Patrick

"Pounet95" wrote:

Erreur ( fatale ?) : Initialiser compteur à 0 et non pas 1

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
"Pounet95" a écrit dans le message de news:

Bonsoir,
Quelque chose dans ce goût .... à optimiser
A mettre dans un module standard

Sub Comptage()
'la feuille contenant les données
Set ws1 = ActiveSheet
'la feuille des résultats
Set ws2 = Sheets("Feuil2")
ws2.Select
Range("A1").Select

'on revient aux données
ws1.Select
'première cellule
Range("A1").Select
'mise à 1 compteur
nb = 1
'boucler tant que pas de cellule vide
Do While ActiveCell.Value <> ""
xRep = ActiveCell.Value
Do While ActiveCell.Value = xRep
nb = nb + 1
ActiveCell.Offset(1, 0).Select
Loop
ws2.Select
ActiveCell.Value = xRep
ActiveCell.Offset(0, 1).Value = nb
ActiveCell.Offset(1, 0).Select
nb = 1
ws1.Select
Loop
'voir les résultats
ws2.Select
End Sub


--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
"Pat rednef" a écrit dans le message
de news:
Bonjour,

Un problème se pose à moi sans solution: J'ai dans la colone A une liste
de
code client classé par ordre croissant et en face de chaque code la date
de
visite du représentant (bien sur il y a souvent plusieus fois le même
code
avec des dates de visites différentes): Je sais bien faire l'extraction
sans
doublons en VBA mais là je cherche à identifier le nombre de visite par
client et lister cela sur l'onglet feuil2. Le code se traduirait par :
regarde dans la colonne A pour chaque code trouvé, compte le nombre de
fois
que le code apparait dans la colonne A puis trouve le code client suivant
différent et compte à nouveau le nombre de fois que le code apparait dans
la
colonne A etc etc .....

A B
12345 02/11
12345 18/10
12345 10/10
12348 03/11
12349 05/10
21345 05/10
21345 29/09
etc...
Le reps a donc visité le 12345 3 fois
Je souhaite une présentation sur la feuille 2 de type
A B
12345 3
Merci à tous pour votre aide et bonne soirée

Pat











Avatar
Pat rednef
Cher poutnet

pour ton aide j'ai fait rapidement un test en initialisant à 0 le compteur
la première valeur est correcte mais les autres sont supérieurs de 1 à chaque
fois sur toute la liste restante

Cela peut il aider à comprendre why ?

Merci

Patrick

"Pounet95" wrote:

Erreur ( fatale ?) : Initialiser compteur à 0 et non pas 1

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
"Pounet95" a écrit dans le message de news:

Bonsoir,
Quelque chose dans ce goût .... à optimiser
A mettre dans un module standard

Sub Comptage()
'la feuille contenant les données
Set ws1 = ActiveSheet
'la feuille des résultats
Set ws2 = Sheets("Feuil2")
ws2.Select
Range("A1").Select

'on revient aux données
ws1.Select
'première cellule
Range("A1").Select
'mise à 1 compteur
nb = 1
'boucler tant que pas de cellule vide
Do While ActiveCell.Value <> ""
xRep = ActiveCell.Value
Do While ActiveCell.Value = xRep
nb = nb + 1
ActiveCell.Offset(1, 0).Select
Loop
ws2.Select
ActiveCell.Value = xRep
ActiveCell.Offset(0, 1).Value = nb
ActiveCell.Offset(1, 0).Select
nb = 1
ws1.Select
Loop
'voir les résultats
ws2.Select
End Sub


--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
"Pat rednef" a écrit dans le message
de news:
Bonjour,

Un problème se pose à moi sans solution: J'ai dans la colone A une liste
de
code client classé par ordre croissant et en face de chaque code la date
de
visite du représentant (bien sur il y a souvent plusieus fois le même
code
avec des dates de visites différentes): Je sais bien faire l'extraction
sans
doublons en VBA mais là je cherche à identifier le nombre de visite par
client et lister cela sur l'onglet feuil2. Le code se traduirait par :
regarde dans la colonne A pour chaque code trouvé, compte le nombre de
fois
que le code apparait dans la colonne A puis trouve le code client suivant
différent et compte à nouveau le nombre de fois que le code apparait dans
la
colonne A etc etc .....

A B
12345 02/11
12345 18/10
12345 10/10
12348 03/11
12349 05/10
21345 05/10
21345 29/09
etc...
Le reps a donc visité le 12345 3 fois
Je souhaite une présentation sur la feuille 2 de type
A B
12345 3
Merci à tous pour votre aide et bonne soirée

Pat











Avatar
isabelle
bonjour Pat,

Sub Macro1()
fin = Sheets("Feuil1").Range("A65536").End(xlUp).Row
ActiveWorkbook.Names.Add Name:="plage", _
RefersTo:=Range("Feuil1!$A$1:$A$" & fin)
Sheets("Feuil2").Activate
Range("plage").AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Sheets("Feuil2").Range("A1"), Unique:=True
f = Range("A65536").End(xlUp).Row
Range("B2").Formula = "=CountIf(plage,a2)"
Range("B2:B" & f).FillDown
End Sub

isabelle


Bonjour,

Un problème se pose à moi sans solution: J'ai dans la colone A une liste de
code client classé par ordre croissant et en face de chaque code la date de
visite du représentant (bien sur il y a souvent plusieus fois le même code
avec des dates de visites différentes): Je sais bien faire l'extraction sans
doublons en VBA mais là je cherche à identifier le nombre de visite par
client et lister cela sur l'onglet feuil2. Le code se traduirait par :
regarde dans la colonne A pour chaque code trouvé, compte le nombre de fois
que le code apparait dans la colonne A puis trouve le code client suivant
différent et compte à nouveau le nombre de fois que le code apparait dans la
colonne A etc etc .....

A B
12345 02/11
12345 18/10
12345 10/10
12348 03/11
12349 05/10
21345 05/10
21345 29/09
etc...
Le reps a donc visité le 12345 3 fois
Je souhaite une présentation sur la feuille 2 de type
A B
12345 3
Merci à tous pour votre aide et bonne soirée

Pat


1 2