Limite à 65536 valeurs sur application.sum en VBA ???

Bonjour,

Malgré des recherches, je ne trouve rien sur les limites de la fonction vba

Application.sum()

Je dispose d'une base de données de 78000 lignes et l'intégration des données en variable tableau suivi d'un

S

omVal=application.sum(BDD)

renvoie une erreur "incompatibilité de type"

Suite à mes propres vérifications, la raison de cette erreur est que la fonction

Application.sum()

est tout comme

transpose()

limité à 65536 valeurs. est-ce bien exact, est-ce outre passable svp ?

Merci

Bien Cordialement,

Bonjour,

La limite de la fonction Somme est au moins le nombre de lignes disponible sur Excel...

Toujours difficile de répondre avec si peu d'éléments...

a quoi correspond BDD, une variable... représentant quoi ? une plage nommée ....?

comment est déclarée cette variable ...?

Bonsoir,

ces limites sont peut -être un résidu des version d'Excel avec ce nombre de ligne (et les colonnes à l'époque étaient encore moins nombreuses...), C'est une limite similaire à "Match".

Mais pourquoi utiliser une fonction "Application" sous VBA alors qu'une boucle sur les 78000 lignes fait très bien l'affaire, non ?

Il y a "plein" de limite comme celle-ci sous Excel, comme le nombre de couleur différente en mise en forme sur une feuille (Mosaïc)

@ bientôt

LouReeD

Bonjour à tous,

incompatibilité de type c'est que ton BDD n'est pas un range

Essaie :

Dim bdd As Range
Set bdd = [A1:A78000]
Debug.Print Application.Sum(bdd)

tu verras que c'est bon.

eric

Bonjour,

BDD est une variable tableau que j'utilise car d'autres calculs/action sont nécessaires sur cette base de données.

une variable tableau est de, tout ce que j'ai pu lire sur le sujet, plus rapide en terme d’exécution surtout sur une telle Base.

Ok ce n'est pas un range (@eriiic), mais je vous invite à tester le fichier en PJ en adaptant la variable derlig sur le code, vous pouvez voir qu'à partir de 65536 le calcul ne s'effectue plus, avant oui !

@AlgoPlus : Mon Excel comporte bel et bien 1048576 lignes. la limite n'est donc pas celle qui s'affiche !

il est vrai que d'autres méthodes existent pour effectuer des sommes en intégrant le calcul dans la boucle.

Je dois d'ailleurs effectuer d'autres calculs suite à la somme, si je comprends bien il vaut mieux éviter toutes les fonctions VBA existantes (Transpose, Sum, Match...) si plus de 65536 valeurs ou procéder par "dichotomie".

Merci à chacun d'entre vous,

BDD est une variable tableau

il vaut mieux donner tout le contexte dès le départ.

Déjà lire cellule par cellule, ce n'est pas ça qui te fera gagner du temps. Ca t'en fait même perdre considérablement.

Lire une plage est 100 fois plus rapide, et en plus tu as un tableau apprécié de Sum() :

derlig = 1000000
BDD = [A1].Resize(derlig).Value
SomBDD = Application.Sum(BDD)
MsgBox SomBDD

eric

Rechercher des sujets similaires à "limite 65536 valeurs application sum vba"