Somme.Si

Résolu
Artur -  
 Artur -
Bonjour,

J'essaye de créer une macro mais j'ai un problème avec la fonction somme.si

voici le code :
ActiveCell.FormulaR1C1 = _
        "=SUMIF(Export!R[-6]C[-5]:R[682]C[-5],Balance!RC[-5],Export!R[-6]C[4]:R[682]C[4])"

Mon problème étant que je souhaite arriver a une formule comme celle ci :

=SOMME.SI(Export!B2:B690;Balance!E8;Export!K2:K690)

Mais je n'arrive pas à le retranscrire en macro ...

Merci et bonne journée !

2 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    Ceciç devrait résoudre ton souci :

    ActiveCell.FormulaLocal = _
            "=SOMME.SI(Export!B2:B690;Balance!E8;Export!K2:K690)" 
    1
  2. Artur
     
    Merci !
    0
    1. Artur
       
      J'ai un autre soucis avec ce code :

      Range("I1").Select
          ActiveCell.FormulaR1C1 = "=si(D2<Commande!$B$1;Balance!E2;"")"


      Et je ne vois pas où est le problème sachant que sur Excel ça passe et en VB il ne veut pas ... ?
      une ligne jaune apparait sur la ligne ActiveCell ...

      Merci !
      0
    2. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
       
      Bonjour,

      le langage VBA est un langage anglais. Du coup, il n'accepte pas le "=SI". Si tu veux garder ta syntaxe, il te faut utiliser ActiveCell.FormulaLocal qui te permettra d'écrire la formule dans la langue locale.

      Cordialement.
      0
    3. Artur
       
      Merci chossette... mais même problème

      avec ce code :

      ActiveCell.FormulaLocal = _
              "=si(D2<Commande!$B$1;Balance!E2;"")"
      0
    4. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
       
      Si ça ne fonctionne pas, VBA te renvoie un message d'erreur. Quel est ce message ?
      0
    5. Artur
       
      Erreur d'exécution 1004

      Erreur définie par l'application ou par l'objet


      et après la ligne jaune sur la ligne précédemment envoyé
      0