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

Signaler
Messages postés
22
Date d'inscription
jeudi 18 juin 2009
Statut
Membre
Dernière intervention
10 mai 2010
-
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
-
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

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
35
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]
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
227
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.
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
68
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)
Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
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+
Messages postés
22
Date d'inscription
jeudi 18 juin 2009
Statut
Membre
Dernière intervention
10 mai 2010
1
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....
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
35
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)

++