-
utilisation de CountIf
*bonjour,
j'ai une feuille de 21341 ligne, sur une colonne je voudrai trouver le nombre d'occurrences donc je fait
pour toute la colonne,
problème:
dans ma macro j'ai plusieurs formules a calculer, j'ai remarqué que le temps d'exécution était trop long donc en faisant un debug, le commande qui prenait le plus de temps (la quasi totalité du temps total est la ligne)
Code:
Worksheets("base").Columns("B").Calculate
et c'est justement celle qui contient la formule countif
une suggestion ?
-
Une idée, oui, déjà en mettant en début de macro, et si ce n'est déjà fait,
Code:
Application.screenUpdating
que tu repasses à True en fin de macro.
Ensuite, exécute ton Calculate sur la plage de cellules, non sur la colonne entière.
Code:
Worksheets("base").Range("B1:B" & range("B65536).end(xlup).row).calculate
Ça devrait améliorer "un peu" les choses
Tu dis
A+
-
Bonjour,
Autre solution alternative en VBA:
Tu réalise une double boucle avec un compteur qui calculera le nombre d'occurence de tes lignes pour chacune des valeurs que tu souhaite compter. L'avantage est que ton fichier n'aura pas de formule et tournera plus vite. L'inconvénient est que ton comptage ne sera pas mis à jour qu'avec la macro.
Have a nice day
-
merci,
le screen update je l'enlève toujours
Application.Calculation est sur manuelle et je fait le calcul à la fin seulement pour les colonnes que je souhaite, mais je me dis
vu que j'ai 24000 ligne et que je veux appliquer la formule pour toutes les ligne je vais avoir 24000*24000 comparaisons .... non ?
je me dis c'est pas ennorme .... enfin ça ne devrais pas prendre 3min de calcul ... non ?
-
Re^^
Ne serait il pas mieux que tu repartisse sur 2 Feuilles.
Je m'explique une que l'on appelera Base avec Toutes tes lignes.
L'autre compteur, ou tu laissera tes lignes en supprimant tous les doublons. (via une petite macro evidement :p )
Le temps de calcul serait alors plus leger.
-
je n'ai jamais dis que je voulais les supprimer !!!, mais il ya une colonne REF. (Référence), et la colonne qui est à coter j'ai envie de savoir combien de fois cette référence à été utilisé (cité), par moment j'ai des feuilles de 50000 lignes, je n'ai pas eu à les utilisées pour le moment mais je me dis que si un jour..... le PC plantera pendant un cart d'heure le temps de me donner un résultat et franchement ..... c'est pas bien jolie :aie: , vous êtes d'accord!
-
Nan je ne te dit pas de les supprimers, mais de faire sur une feuille annexe, un lexique de toute les references a chercher sans les doublons. Et c'est sur cette feuille que tu comptera tes occurences^^
Ca evitera de calculer ton nombre d'occurences par doublons^^
Ou sinon je viens d'avoir une idée pourquoi pas un Tableau Croisé Dynamique^^ A voir je pense que ca peut marcher et c'est très rapide^^