[déplacer VB.NET -> VBA] compte cellules non-vides sans sélection

Résolu
fazpedro Messages postés 22 Date d'inscription jeudi 18 juin 2009 Statut Membre Dernière intervention 10 mai 2010 - 15 déc. 2009 à 12:11
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 15 déc. 2009 à 16:49
Bonjour, je souhaite compter le nombre de cellules non vides dans une colonne sans avoir à afficher la feuille en question, voici mon code mais qui, lors de l'éxécution, fait "clignoter" la feuille car il montre à chaque fois la feuille !

Merci d'avance.

Sheets("Feuil1").Select
Nb = WorksheetFunction.CountA(Columns("A:A"))
Sheets("MENU").Select
Range("H16") = Nb

Sheets("Feuil1").Select
Nb = WorksheetFunction.CountA(Columns("Z:Z"))
Sheets("MENU").Select
Range("H17") = Nb

6 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
15 déc. 2009 à 12:42
VBA !!


application.screenupdating=false
dim nb as long
Sheets("Feuil1").Select
Nb = WorksheetFunction.CountA(Columns("A:A"))
Sheets("MENU").Select
Range("H16") = Nb

Sheets("Feuil1").Select
Nb = WorksheetFunction.CountA(Columns("Z:Z"))
Sheets("MENU").Select
Range("H17") = Nb
application.screenupdating=true


[hr]
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
15 déc. 2009 à 12:49
Bonjour,

Suffit peut-être de ne pas utiliser les select .... (pas nécessaire)

____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
15 déc. 2009 à 12:53
Salut
Quelle feuille fait-il clignoter ? Feuil1 ou Menu ?
C'est dû au fait que tu fais un .Select

Comme expliqué dans l'aide de VBA sur la WorksheetFunction (il te suffisait d'appuyer sur F1), il te suffit de créer une variable Range :
    Dim myRange As Range
    Set myRange = Worksheets("Feuil1").Range("A:A")
    MsgBox Application.WorksheetFunction.CountA(myRange)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
15 déc. 2009 à 14:53
Salut,

autre solution:

dim nb as long
With Sheets("Feuil1")
    Nb = WorksheetFunction.CountA(.Columns("A"))
    Sheets("MENU").Range("H16").Value = Nb
    Nb = WorksheetFunction.CountA(.Columns("Z"))
    Sheets("MENU").Range("H17").Value = Nb
End with



A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fazpedro Messages postés 22 Date d'inscription jeudi 18 juin 2009 Statut Membre Dernière intervention 10 mai 2010 1
15 déc. 2009 à 16:10
OK c'est bon avec la méthode de PCPT


Merci encore.

PS : comment faire pour que ce mesage soit mis en résolu ?
je suis très débutant....
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
15 déc. 2009 à 16:49
il est flaggué "résolu" maintenant que tu as validé ma réponse

(son signe distinctif n'est pas "[résolu]....titre" comme certains sites, ici il apparaitra dans les recherches avec une coche verte)

++
0
Rejoignez-nous