Flux rss
Collection CommentCaMarche.net

[VBA] Fonction NB.SI_Plus

Publié par lermite222, dernière mise à jour le mardi 2 septembre 2008 à 07:45:51 par lermite222

Fonction NB.SI_Plus sans limitation


Cette fonction "Plus" permet d'appliquer la fonction NB.SI sans que l'on soit limité au nombre de paramètres imposés par Excel.


Introduction

  • C'est la plage de critères (sur une seule ligne) qui détermine le nombre de colonnes à balayer.
  • La plage de critères peut comporter des blancs.
  • Les cellules vides de la plage de critères permettent d'ignorer cette colonne dans le calcul.
  • Sélection de la hauteur du bloc (en ligne).
    • Automatique en ne sélectionnant que la première cellule Gauche/Haut de la plage de recherche.
    • Programmée en sélectionnant la première cellule Gauche/Haut et en étirant sur la ligne souhaitée.

Le classeur



L'emplacement de la plage de critères ne doit pas être obligatoirement à cet endroit ; elle peut être dans un coin perdu de la feuille.

Dans un module général


Coller le code ci-dessous
Function NbSi_Plus(PlageRech As Variant, PlageCritere1 As Range)
Dim i As Integer, e As Integer, N As Integer, C1 As Integer
Dim M As Long, Mcont As Integer, Tot As Long
Dim TBF
Dim Cell As Range
Dim DebL As Long, FinL As Long
Dim DebC As Long, FinC As Long
Dim Col()
Dim Crit()
    'Initialise les filtres
    i = 0
    For Each Cell In PlageRech
        ReDim Preserve Crit(1, i)
        If Cell <> "" Then
            Mcont = Mcont + 1
            Crit(1, i) = Asc(Cell) '60="<" 62=">"
            
            
            If Len(Cell) > 1 Then
                If Asc(Mid(Cell, 2, 1)) = 60 Or Asc(Mid(Cell, 2, 1)) = 62 Then
                    Crit(1, i) = 61
                End If
            End If
            Select Case Crit(1, i)
            Case 60, 62
                Crit(0, i) = Mid(Cell, 2)
            Case 61
                Crit(0, i) = Mid(Cell, 3)
            Case Else
                Crit(0, i) = Cell
            End Select
        Else
            Crit(1, i) = 0
        End If
        i = i + 1
    Next Cell
    
    'Rechercher si bloc ou toute la colonne
    TBF = Split(PlageCritere1.Address, ":")
    DebL = Range(TBF(0)).Row
    DebC = Range(TBF(0)).Column
    If UBound(TBF) > 0 Then
        FinL = Range(TBF(1)).Row
        
    End If
    If DebL = FinL Or FinL = 0 Then
        'faire le tri sur toute la hauteur de la colonne
        FinL = Cells(65536, Range(TBF(0)).Column).End(xlUp).Row
    End If
    FinC = DebC + UBound(Crit, 2)
    
    'Appliquer les filtres
    For i = DebL To FinL
        M = 0: C1 = 0
        For e = DebC To FinC
            If Crit(0, C1) <> "" Then
                'For N = 0 To UBound(Crit, 2)
                    Select Case Crit(1, C1)
                    Case 60
                        If Cells(i, e) < Val(Crit(0, C1)) Then M = M + 1
                    Case 61
                        If Cells(i, e) <> Val(Crit(0, C1)) Then M = M + 1
                    Case 62
                        If Cells(i, e) > Val(Crit(0, C1)) Then M = M + 1
                    Case Is <> 0
                        If Cells(i, e) = CStr(Crit(0, C1)) Then M = M + 1
                    End Select
                
            End If
            C1 = C1 + 1
        Next e
        If M = Mcont Then Tot = Tot + 1
    Next i

    NbSi_Plus = Tot
End Function

Télécharger le classeur


Sur CiJoint avant le 20/09/2008
Si plus sur Cijoint, vous pouvez m'envoyer un MP et je le remettrai.

Fin


Résultats pour Fonction NB.SI_Plus

La fonction NB.SI de Excel (Résolu) Bonjour, Je ne parviens pas à mettre deux critères avec la fonction NB.SI de Excel. SOS www.commentcamarche.net/forum/affich-8435704-la-fonction-nb-si-de-excel
Excel : fonction nb.si avec une date (Résolu) Bonjour, J'ai un truc un peu tordu à calculer avec excel. Voilà : avec la fonction nb.si, je veux calculer le nombre de cellules dans une plage en fonction du mois et de l'année contenue dans la date. Ma plage contient une liste de date... www.commentcamarche.net/forum/affich-9039662-excel-fonction-nb-si-avec-une-date
Totaliser Nbr cellules comportant du TEXTE (Résolu) Bonjour, J'ai besoin de totaliser le nombre de cellules comportant duTEXTE dans une colonne. Pour cela j'ai éssayé en imbriquant une fonction "ESTTEXT" dans une fonction "NB.SI" mais cela ne fonctionne pas. ex: NB.SI(A1:A4;ESTTEXTE()) Comme... www.commentcamarche.net/forum/affich-7807353-totaliser-nbr-cellules-comportant-du-texte

Résultats pour Fonction NB.SI_Plus

[PHP] Fonction mail()La fonction mail() est bloquée chez certains des hébergeurs gratuits pour des raisons de sécurité (afin d'éviter le spam notamment), l'adresse ip de la machine qui a demandé le script sera alors indiquée dans le header 'X-MM-Mail-From-IP'. renseignez... www.commentcamarche.net/faq/sujet-117-php-fonction-mail
Faire fonctionner une application Windows sous Linux avec WineWine est un logiciel permettant de faire fonctionne certaines applications Windows sous Linux. Contrairement à VMWare ou VirtualBox, Wine n'émule pas un PC complet, mais seulement les API Win32 (appels système Windows). L'émulation n'est pas... www.commentcamarche.net/faq/sujet-9182-faire-fonctionner-une-application-windows-sous-linux-avec-wine

Résultats pour Fonction NB.SI_Plus

Fonction excel (Résolu)Bonjour, bonjour a tous et a toutes, jai un petit souci je comprend pas la fonction NBVAL sur excel pourriais vous m'aider? please merci www.commentcamarche.net/forum/affich-5494422-fonction-excel
Compter le nombre de référence dans excel (Résolu)Bonjour, J'aimerais trouver une formule qui me dirait au final que: dans ce tableau, parmis les 3 "2+1gratuit", il y en a 2 qui provienne de la marque A (la réponse que je veux donc est "2") J'ai essayé avec la fonction nb.si mais cela ne me... www.commentcamarche.net/forum/affich-6478020-compter-le-nombre-de-reference-dans-excel
Encore et toujours excel (Résolu)Bonjour, Je vous expose mon problème (encore), je voudrais qu'excel décèle dans une plage la présence (ou non) de chaines de caractères tout en utilisant la fonction NB.SI afin que les occurrences soient comptées... J'en suis... www.commentcamarche.net/forum/affich-7780311-encore-et-toujours-excel

Résultats pour Fonction NB.SI_Plus

Télécharger Pilote BisonCam, NB Pro 1300Le pilote Pilote Bison Cam NB Pro 1300 permet de faire fonctionner les webcams intégrées "Bison" des portables ASUS. www.commentcamarche.net/telecharger/telecharger-34056598-pilote-bisoncam-nb-pro-1300
Télécharger NBA Scoreboard 2009Ne ratez aucun moment sur les nouvelles provenant de la NBA. NBA Scoreboard vous donne directement les résultats des matchs récents ou à venir, les récapitulatifs des matchs précédents ou de la journée mais aussi les programmes des prochains... www.commentcamarche.net/telecharger/telecharger-34056265-nba-scoreboard-2009

Résultats pour Fonction NB.SI_Plus

Alcatel Biloba 170 Voice TwinSans-fil,180 heures d'autonomie en veille,50 m de portée en intérieur,300 m de portée en extérieur,Répertoire,Nb de lignes (affichage):1,Sans-fil,Type:Classique,Video Phone:No,Fonction SMS,Portée intérieure:50 m,Portée extérieure:300... www.commentcamarche.net/guide-achat/alcatel-biloba-170-voice-twin-1092466-fiche-technique
Nortel IP Phone 1120E Graphite1120 E, Présentation du numéro appelant, VoIP, Présentation du numéro appelant, Nb de lignes (affichage):4, Type:Classique, Téléphone numérique (DECT), Fonction VOIP, Écran rétro-éclairé, Compatible WLAN, Connecteur réseau, USB, Nombre de combinés... www.commentcamarche.net/guide-achat/nortel-ip-phone-1120e-graphite-686353-fiche-technique
Sagem D30HD 30 30 H 30H 30H, Sans-fil, Présentation du numéro appelant, VoIP, 180 heures d'autonomie en veille, Présentation du numéro appelant, Répertoire, Nb de lignes (affichage):2, Sans-fil, Type:Classique, Téléphone numérique (DECT), Fonction VOIP, Écran. www.commentcamarche.net/guide-achat/sagem-d30h-894455-fiche-technique

Résultats pour Fonction NB.SI_Plus

PHP - Les fonctionsLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du... www.commentcamarche.net/contents/php/phpfonc.php3
Javascript - Les fonctionsLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Cette notion de sous-programme est généralement appelée fonction... www.commentcamarche.net/contents/javascript/jsfonc.php3
Fonctionnement du BluetoothFonctionnement Le standard Bluetooth, à la manière du WiFi utilise la technique FHSS (Frequency Hopping Spread Spectrum, en français étalement de spectre par saut de fréquence ou étalement de spectre par évasion de fréquence), consistant à découper... www.commentcamarche.net/contents/bluetooth/bluetooth-fonctionnement.php3