Microsoft 365 addtionner les cellules non vides (contiennent nbres et/ou lettres)

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,
Je vous souhaite une belle journée :)

Je n'arrive pas à faire une formule ou un code vba pour additionner les cellules "NON vides" de la colonne "A" de ma feuille.
J'ai cherché certainement mal car ça me semble être déjà traité mais je n'ai pas trouvé.
J'ai également cherche avec "nbval" sans succès.
Je vais voir du côté de sous total,
Auriez-vous la solution?
Je joins un petit fichier test.
Avec mes remerciements,
Amicalement,
lionel :)
 

Pièces jointes

  • nbval_test.xlsm
    11 KB · Affichages: 25

eriiic

XLDnaute Barbatruc
Bonjour à tous,

au passage, pour ne pas compter tes vides non vides tu as :
VB:
=NB.SI(A3:A106;"><")

La question que je me pose, c'est qu'ils n'apparaissent pas ex-nihilo et s'il ne vaudrait pas mieux intervenir en amont.
Je suppose que tu les mets (involontairement) par macro avec une instruction du style ="".
Il faudrait que tu les vides vraiment avec = Empty.
Valable aussi bien pour un élément de tableau que pour une cellule
eric
 
Dernière édition:

soan

XLDnaute Barbatruc
Inactif
Bonjour job75, Lionel, le fil,

Dans ton post #15, tu as écrit : « Au post #10 l'ami soan présente la macro Epurage qui ne tient pas du tout la route. »

Je trouve que tu ne devrais pas dénigrer ma méthode de façon aussi catégorique, car elle convient très bien si le nombre de données n'est pas trop important, et si le temps d'exécution est inférieur à 5 secondes ; j'ai regardé le fichier joint du même post #15 :

Bouton « Epurage (par cellule) » = ma méthode : 1er essai : 1,30 sec ; 2ème essai : 1,26 sec ; 3ème essai : 1,23 sec ; pour moins de 2 secondes, je trouve que ma méthode est déjà pas mal du tout ! 😊

Image 1.jpg


Image 2.jpg




Ensuite, j'ai voulu essayer ta méthode ; j'ai donc cliqué sur le bouton « Epurage avec filtre » ; quel temps ? 400 sec ! 😭 ah non, j'me suis trompé ; c'est encore bien pire ! c'est ce 400-là :​

Image 3.jpg


Entre moins de 2 secondes et une erreur 400, j'préfère largement ma méthode ! 😁 🤣

Je suis passé en mode débogage pour essayer de trouver l'erreur ; elle se produit juste quand j'appuie sur F8 pour exécuter cette ligne jaune :​

Image 4.jpg


Pourtant, xlCellTypeVisible est bien une constante Excel valide ; peut-être que l'erreur se produit sur Excel 2007 et pas sur ta version d'Excel ? si oui, ma solution qui soi-disant ne tient pas du tout la route pourra sûrement dépanner les lecteurs de cette conversation qui ont Excel 2007 comme moi, et pas une version ultérieure : ce sera bien plus efficace qu'une erreur 400 ! 😜 😁

soan
 

job75

XLDnaute Barbatruc
Bonjour à tous,

@soan si le filtre automatique ne fonctionne pas chez toi utilise au moins un tableau VBA :
VB:
Sub Epurage_avec_tableau()
Dim t, tablo, i&, x$
t = Timer
With ActiveSheet.UsedRange
    tablo = .Resize(, 2).Formula 'matrice, plus rapide, au moins 2 éléments
    For i = 1 To UBound(tablo)
        If tablo(i, 1) = "" Then tablo(i, 1) = Empty
    Next
    .Columns(1) = tablo
End With
x = Format(Timer - t, "0.00 \sec")
[F13] = x
MsgBox x
End Sub
Fichier (2), noter que 20 000 lignes ce n'est pas beaucoup.

A+
 

Pièces jointes

  • Epurage(2).xlsm
    346.7 KB · Affichages: 2

Discussions similaires

Statistiques des forums

Discussions
312 107
Messages
2 085 356
Membres
102 874
dernier inscrit
Petro2611