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 :

Somme.si.ens dans une macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2019
    Messages : 12
    Par défaut Somme.si.ens dans une macro
    Bonjour à tous,

    Me voici avec un nouveau soucis sur lequel je m'arrache les cheveux depuis quelques jours.... J'ai beau avoir recherché des solutions ici et dans différents autre site, je ne trouve pas de quoi résoudre mon problème ou alors c'est que je n'ai pas les yeux en face des trous

    j'ai sur un onglet en colonne A un intitulé du type "W1171039" qui peuvent se répéter plusieurs fois sur plusieurs lignes et en colonne B des valeurs numérique.

    J'ai réussi à extraire en colonne F les intitulés de la colonne A sans qu'il y ai de doublons
    ce que je souhaite, c'est que via une macro, je puisse calculé, dans la colonne G" la somme des valeurs en Colonne B.
    J'arrive à créer le cycle qui me fait le tour des différentes ligne mais comme résultat j'ai systématiquement "#DIV/0!"... j'ai bien capté où était le problème, mais impossible de trouver comment le corriger.

    Voici mon code VBA
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        Dim Derligne As Integer
        Dim I As Long
     
        Derligne = Range("F" & Rows.Count).End(xlUp).Row
     
        For I = 2 To Derligne
            Range("G2:G" & Derligne).FormulaLocal = "=MOYENNE.SI.ENS(B:B;A:A;""F"" & I)"
        Next
    Mon problème se trouve quand je cherche à aller chercher la référence de la cellule à comparer ==> en rouge et Gras
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "=MOYENNE.SI.ENS(B:B;A:A;""F"" & I)"
    En effet, quand mon code s'exécute, je retrouve afficher dans ma cellule "=MOYENNE.SI.ENS(B:B;A:A;"F" &@ I)" alors que je devrais avoir "=MOYENNE.SI.ENS(B:B;A:A;F2)"

    Si quelqu'un savait comment me dépanner, ça serait royal.

    Merci par avance

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    plutôt comme ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("G2" & Derligne).FormulaLocal = "=MOYENNE.SI.ENS(B:B;A:A;F" & I & ")"

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2019
    Messages : 12
    Par défaut
    Citation Envoyé par joe.levrai Voir le message
    Bonjour,

    plutôt comme ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("G2" & Derligne).FormulaLocal = "=MOYENNE.SI.ENS(B:B;A:A;F" & I & ")"
    Merci de te pencher sur mon cas.

    Alors, c'est en effet une bonne orientation

    Avec le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim Derligne As Integer
        Dim I As Long
     
        Derligne = Range("F" & Rows.Count).End(xlUp).Row
     
        For I = 2 To Derligne
            Range("G2:G" & Derligne).FormulaLocal = "=MOYENNE.SI.ENS(B:B;A:A;F" & I & ")"
        Next
    Ca avance grandement, du moins pour la 1ère ligne en mode partiel...
    la formule s'affiche correctement, sauf qu'elle prend comme référence la dernière ligne de comparatif, du coup les lignes suivantes se retrouve avec rien à comparer et je me retrouve de nouveau avec des "#DIV/0!"... ce qui pour le coup est logique.

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2019
    Messages : 12
    Par défaut
    Bon, en fin de compte, à force de chercher j'ai réussis à résoudre mon problème, avec la ligne de code suivante...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        For I = 2 To Derligne
            Range("G" & I).FormulaLocal = "=MOYENNE.SI.ENS(B:B;A:A;F" & I & ")"
        Next
    Du coup, problème résolu.

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

Discussions similaires

  1. [XL-2010] Faire une somme dans une macro
    Par vbavba dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/06/2013, 20h18
  2. Somme automatique dans une macro
    Par willabe dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 23/07/2012, 09h55
  3. Somme dans une macro
    Par foxrol dans le forum Macro
    Réponses: 3
    Dernier message: 02/07/2012, 22h44
  4. pb d'incompatibilité de type dans une macro "somme"
    Par solipop dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 07/07/2011, 10h38
  5. NB.SI.ENS dans une macro, avec une boite de dialogue
    Par wyzer dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/12/2010, 11h06

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