j'ai un classeur comportant une feuille de synthèse et 5 feuilles de calculs.
Chacune des feuilles de calcul comporte un tableau dont certaines colonnes sont masquées de façon variable selon des choix de l'utilisateur. Sur Pour chaque ligne, J'ai besoin de connaître le nombre de cellules cochées et visibles.
La fonction nbval me renvoie le nombre de cellule occupées (y compris celles masquées, ce qui ne me convient pas - j'ai besoin des cellules cochées et visibles)
La fonction SOUS.TOTAL (102, ...) ne fonctionne que pour une recherche de cellules visibles sur une colonne, mais pas sur une ligne (Dommage, ça m'aurait bien arrangé !)
Grâce au forum, j'ai pu concocté une fonction perso visiblecoche, qui me permet de déterminer ce que je souhaite.
J'ai placé cette fonction dans un module
Code:
Function visiblecoche(celluletest As Object)
Application.Volatile
For Each cell In celluletest
If cell.Columns.Hidden = False And cell.Value <> "" Then Total = Total + 1
Next
visiblecoche = Total
End Function
je fais ensuite appel à cette fonction dans les feuilles
Mis à part que j'ai besoin de faire 300 fois appel à cette fonction sur chacune des feuilles de calcul. Je constate donc une lenteur épouvantable, et les double-clics sur les cases à cocher sont lents à la détente.
Y-a-t-il une méthode ou une commande pour accélérer le processus ?
Re : Fonction : Extrême lenteur pour déterminer les cellules visibles occupées
Bonsoir prof
Avec un petit fichier exemple (quelques lignes , 1 ou 2 feuilles) ne comportant pas de données confidentielles on serait plus à l'aise pour t'aider
NB: Le rappel du probleme dans le fichier est un plus
Re : Fonction : Extrême lenteur pour déterminer les cellules visibles occupées
Bonsoir Prof,
Pas trop compris sans fichier exemple mais essai de regarder dans les formules SOUSTOTAL
qui font toutes sortes de choses en tenant compte des cellules masquées.
Bruno
Re : Fonction : Extrême lenteur pour déterminer les cellules visibles occupées
Bonsoir à tous, bonsoir prof
D'accord avec les remarques de mes collègues, que je salue, un support serait vraisemblablement utile. En attendant, avez-vous essayé en supprimant Application.Volatile ? Dans certains contextes, on obtient une accélération appréciable sans nuire au résultat.