Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Compter Avec NB.SI.ENS Listobject

cp4

XLDnaute Barbatruc
Bonjour,

Dans le fichier joint, je voudrais d'abord utiliser nb.si.ens sur un tableau structuré et avoir une fonction personnalisée VBA.
Et ce, pour compter les occurrences des années précédentes à l'année en cours (ne pas compter ceux de l'année en cours).
J'ai écrit une formule mais j'ai message m'indiquant que ma formule est fausse.
Merci.
 

Pièces jointes

  • Compte_des_précedentes_années.xlsm
    16 KB · Affichages: 5
Solution
la première fonction deviendrait donc
VB:
Public Function Compter(Critère1 As Range, critère2 As Range) As Integer
    With ActiveSheet.ListObjects("Tablo")
        For i = 1 To .ListRows.Count
            If .DataBodyRange(i, 2) = Critère1 And .DataBodyRange(i, 3) = critère2 And Year(.DataBodyRange(i, 1)) < Year(Now) Then
                Compter = Compter + 1
            End If
        Next i
    End With
End Function

et pour la fonction evaluate.. bah.. cp4 va travailler un peu quand meme

cp4

XLDnaute Barbatruc
comme à l'école;.il faut lire tout l'énnoncé avant de répondre à la question..
ici, faut lire toutes les réponses...
Parfaitement, d'accord avec toi. Mes excuses.
Tu avais zappé la chronologie. Chronologiquement parlant, j'ai testé à la va-vite et du coup j'ai répondu pour toutes tes propositions en me référant aux 1ères formules et la fonction du post#8.

J'ai juste définie les variables i et compteur, et tout est bon. Merci.
 

cp4

XLDnaute Barbatruc
@vgendron , @TooFatBoy FatBoy : En fait, je travaille en vba et j'ai beaucoup de données à traiter.
Pour vérifier que les résultats par code soient bons. Vu le nombre de données, ça va me prendre un temps fou à vérifier. Je me suis dit, si les résultats par code sont identiques à ceux de formules. D'une pierre 2 coups, je serai sûr à 100% que mes chiffres sont bons. Voilà, pourquoi.
Est-ce que ça répond à votre question?

Je vous remercie. Jusqu'à présent avec les données utilisées, les résultats sont satisfaisants (pas d'erreur).
 

vgendron

XLDnaute Barbatruc
s'il est question de gagner du temps d'execution.. suis pas sur que la fonction perso soit la meilleure solution
une sub qui calcule tout et restitue le résultat final est surement plus adéquate.

en plus.. vérifier un calcul "manuel" (par formule) en faisant le meme calcul par fonction perso (avec la solution Evaluate).. bah.. je vois pas comment tu évites des erreurs.. vu que c'est le meme calcul...
 

vgendron

XLDnaute Barbatruc
je me suis aussi amusé avec
1) des requetes PQ (bon... je ne sais pas mettre un résultat sous forme matricielle.. (je ne sais meme pas si c'est possible)

2) et une autre solution par macro "Sub"
 

Pièces jointes

  • Compte_des_précedentes_années.xlsm
    38.3 KB · Affichages: 2

cp4

XLDnaute Barbatruc
je me suis aussi amusé avec
1) des requetes PQ (bon... je ne sais pas mettre un résultat sous forme matricielle.. (je ne sais meme pas si c'est possible)

2) et une autre solution par macro "Sub"
Merci. Je n'utilise jamais PQ. Peut-être à tort. Depuis que j'ai galéré à remettre en état mon pc. Gros problème suite à une mise à jour ou installation d'un complément. je ne rajoute plus rien.

Merci pour la piste. Je vais l'exploiter.

Bonne soirée.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…