IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Fonction SI + NB.SI Excel en VBA [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2010
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 43
    Par défaut Fonction SI + NB.SI Excel en VBA
    Bonjour à tous !

    Je cherche désespéremment à transcrire une formule avec un NB.SI en code VBA (afin d'alléger les délais d'ouverture car j'ai une comparaison qui se fait entre 2 fichiers différents sur 4000 lignes)

    Voici la formule que je veux remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SI(NB.SI('[TdB.xls]Status'!$G:$G;Base!C5)>0;"x";"")
    elle permet de trouver au moins un cas dans la plage G:G d'un autre fichier (TdB.xls) égal à la colonne C de mon fichier actuel et si c'est le cas je met un "x" dans la colonne O de mon fichier actuel.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 24
    Par défaut
    Essaye ça :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("ta feuil").Range("cellules ou ecrire la formule").FormulaLocal = "=SI(NB.SI('[TdB.xls]Status'!$G:$G;Base!C5)>0;'""x"";"""") "

  3. #3
    Membre averti
    Inscrit en
    Octobre 2010
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 43
    Par défaut
    Malheureusement ca part dans un calcul interminable et ca plante ...

    Mon fichier est déjà très lourd et j'aimerai me débarasser de cette formule et partir sur une boucle If avec test comme un NB.SI à l'intérieur mais je n'ai aucune idée de comment le faire

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2008
    Messages : 87
    Par défaut
    Salut,

    Ce que tu souhaites c'est simplement le résultat dans ta feuille "Base" et pas la formule, n'est ce pas ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    Sub compteur()
    Dim Monfichier As Workbook, i As Integer
     
    Set Monfichier = Workbooks("TdB.xls")
     
    i = 5 'point de départ
     
    For i = 5 To 4000
        If WorksheetFunction.CountIf(Monfichier.Sheets("Status").Columns(7), Sheets("Base").Cells(i, 3)) > 0 Then
    ' je te mets le résultat dans la 4ème colonne comme je ne sais pas où tu veux le mettre, soit la colonne "D"
     
            Sheets("Feuil1").Cells(i, 4) = "X"     
    Else
            Sheets("Feuil1").Cells(i, 4) = ""
        End If
    Next i
     
    End Sub
    Ca s'execute en 10 secondes sur 4000 lignes environ avec ma bécane bien sûr.
    Si tu veux des renseignements n'hésite pas.
    A+

  5. #5
    Membre averti
    Inscrit en
    Octobre 2010
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 43
    Par défaut
    Super merci c'est exactement ce que je cherche !!!

    Par contre il me dit " Erreur d'exécution 9 : L'indice n'appartient pas à la sélection".

    Mon fichier est bien dans le meme dossier et j'ai vérifié les noms du fichier et des onglets

    D'ou est ce que ca peut venir ?

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2008
    Messages : 87
    Par défaut
    De rien,

    quand tu clique sur déboguage il pointe quelle ligne ?

    Et sinon n'oublie pas de changer le nom des feuilles là où tu veux écrire le résultat. remplace Feuil1 par Base.

    Une petite question ton fichier ne varie pas en nombre de lignes ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. utilisation des fonction excel dans VBA
    Par ghosty04 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/04/2009, 11h24
  2. équivalent fonction décaler excel en VBA
    Par jstas dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 21/09/2008, 21h49
  3. Intégration d'une fonction Excel dans VBA
    Par RéviAT dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/03/2008, 09h10
  4. Fonction PolyA d'excel sur vba
    Par husker dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/12/2007, 14h02
  5. Fonction excel en VBA
    Par Gary US dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/12/2006, 17h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo