Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/11/2011, 21h40   #1
Invité régulier
 
Inscription : août 2011
Messages : 41
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 41
Points : 6
Points : 6
Par défaut dénombrer et lister

Bonjour à tous,
Voici un exemple simple, je veux lister les différents types dans la colonne A et le nombre de chaque type trouvé:
x
x
y
x
z
y
t
t

résultat:ici il ya:
x:3
u:2
z:1
t:2
mais vous comprenez que syr une colonne de 25000 lignes et xxx types, ça devien pénible de faire des filtres et compter:
merci.
moi244 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2011, 22h16   #2
Membre actif
 
Avatar de jawed
 
Homme
Comptable
Inscription : mars 2004
Messages : 302
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 34
Localisation : Algérie

Informations professionnelles :
Activité : Comptable
Secteur : Finance

Informations forums :
Inscription : mars 2004
Messages : 302
Points : 184
Points : 184
Bonsoir moi244
en créant une table avec toute tes références tu peut utiliser la fonction Nb.Si et tu est sous 2007 tu peut utiliser la fonction Nb.Si.Ens
Cordialement
jawed est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2011, 22h35   #3
Invité régulier
 
Inscription : août 2011
Messages : 41
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 41
Points : 6
Points : 6
oui mai nb.si c'est une fonction qui doit faire référence à une cellule (critère).
Avec un code VBA, il va lister tous les différents types dans la colonne A, et dénombrer ensuite.
Merci.
moi244 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2011, 22h39   #4
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Fais un Tableau Croisé Dynamique et sans vba.
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2011, 23h59   #5
Invité régulier
 
Inscription : août 2011
Messages : 41
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 41
Points : 6
Points : 6
C'est juste que je suis un débutant en programmation, alors j'essaie de voir comment je pourrais faire ça en VBA. Je suis sur qu'il ya un expert qui pourrait me donner un coup de main.
moi244 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2011, 02h09   #6
Rédacteur
 
Avatar de Ormonth
 
Homme Didier GONARD
Formateur Développeur Office - indépendant
Inscription : février 2008
Messages : 2 353
Détails du profil
Informations personnelles :
Nom : Homme Didier GONARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Formateur Développeur Office - indépendant

Informations forums :
Inscription : février 2008
Messages : 2 353
Points : 4 685
Points : 4 685
Bonsoir,

Vu ainsi, tu as raison, on va pouvoir jouer à te donner des approches différentes

Toutes versions :

Dans un premier temps, tu utilises l'enregistreur de macros en faisant un filtre avancé pour extraire les valeurs uniques de ta liste et les coller à un autre emplacement (cf aide Excel si besoin).

Tu nommes la liste des valeurs uniques "MaPlage" ou tu adaptes...

Tu lances ce code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub Gogo()
Dim cell As Range
Dim dblNombre As Double
Dim I As Long
 
I = 1
For Each cell In Range("MaPlage") 'parcourt la collection des cellules de la plage
   'sur l'ensemble de la colonne visée A ici...
   dblNombre = WorksheetFunction.CountIf(Worksheets(1).Columns("A:A"), cell.Value) 'utilise NBSI à travers le VBA
   Cells(I, 4) = cell.Value 'écrit les valeurs
   Cells(I, 5) = dblNombre
   I = I + 1
Next cell
End Sub
Résultat : OrmonthDatawx1.jpg

Cordialement,

Ps : si le côté technique de la réponse = OK ou pas => pensez à cliquer sur les pouces et quand question résolue à la taguer résolue, et chaque action vous rapporte des points

Didier
__________________
Didier Gonard

Ps :
Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite !
Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP
N'oubliez pas de mettre : ..quand c'est le cas !
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2011, 10h19   #7
Rédacteur
 
Avatar de Ormonth
 
Homme Didier GONARD
Formateur Développeur Office - indépendant
Inscription : février 2008
Messages : 2 353
Détails du profil
Informations personnelles :
Nom : Homme Didier GONARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Formateur Développeur Office - indépendant

Informations forums :
Inscription : février 2008
Messages : 2 353
Points : 4 685
Points : 4 685
Bonjour,

Vois aussi ce fil récent...

http://www.developpez.net/forums/d11...tence-colonne/

Cordialement,

Ps : si le côté technique de la réponse = OK ou pas => pensez à cliquer sur les pouces et quand question résolue à la taguer résolue, et chaque action vous rapporte des points

Didier
__________________
Didier Gonard

Ps :
Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite !
Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP
N'oubliez pas de mettre : ..quand c'est le cas !
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h32.


 
 
 
 
Partenaires

Hébergement Web