macro remplir une cellule avec une formule

  • Initiateur de la discussion Initiateur de la discussion pkc
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

pkc

XLDnaute Nouveau
bonjour,

je souhaite remplir une cellule via une macro avec une formule.

feuille1 contient un tableau.
feuille2 doit contenir des sommes conditionnelles, et je voudrai générer les formules via macro;

A2 et B2 contiennent les conditions pour la somme conditionnelle, et la formule fonctionne sur une autre feuille.

voici le code :
Sub formule_somme()
Dim cel As Range 'déclare la variable cel
Dim numero_ligne As Integer
Dim nom_colonne As String

'boucle sur toutes les cellules de la ligne 2
For Each cel In Range("E2", "H2")
numero_ligne = cel.Row
nom_colonne = cel.Column

'si la cellule est vide, elle prend la valeur de la cellule du dessus
cel.Formula = "=SOMME.SI.ENS(feuille1!nom_colonne:nom_colonne;feuille1!C:C;A2;feuille1!D😀;B2)"
Next cel 'prochaine cellule

End Sub


j'ai une erreur sur la partie cel.Formula, à priori le signe = ne passe pas.

existe-t-il un moyen de renseigner la formule sans le = ?
 
Re : macro remplir une cellule avec une formule

Bonjour pkc, fg

A priori avec la propriété "formula", la fonction doit être stipulée dans la langue vba, à savoir l'anglais, par contre, n'ayant pas 2007, je ne saurais traduire "SOMME.SI.ENS"..

bon après midi
@+
 
Re : macro remplir une cellule avec une formule

Re
Essai ceci en modifiant le chiffre en rouge (il apparait en tant que smiley dans ton post)
Code:
[COLOR=blue]Sub[/COLOR] Test()
[COLOR=blue]For Each[/COLOR] C [COLOR=blue]In[/COLOR] Range("E2:H2")
    Col = Left$(C.Address(0, 0), (C.Column < 27) + 2)
    C.FormulaLocal = "=SOMME.SI.ENS(feuille1!" & Col & " : " & Col & ";feuille1!C:C;A2;feuille1!D[SIZE=3][COLOR=red][B]2[/B][/COLOR][/SIZE];B2)"
[COLOR=blue]Next[/COLOR] C
[COLOR=blue]End Sub[/COLOR]
Je ne peux pas tester (2003) mais ceci fonctionne:
Code:
[COLOR=blue]Sub[/COLOR] test2()
Col = Left$(ActiveCell.Address(0, 0), (ActiveCell.Column < 27) + 2)
Range("A1").FormulaLocal = "=SOMME.SI(feuil1!" & Col & " : " & Col & ";""Toto"")"
[COLOR=blue]End Sub[/COLOR]
Cordialement
 
Re : macro remplir une cellule avec une formule

ça fonctionne à condition de supprimer les espaces avant et après ":".

For Each cel In Range("E2", "H2")
nom_colonne = Left$(cel.Address(0, 0), (cel.Column < 27) + 2)
cel.FormulaLocal = "=SOMME.SI.ENS(feuille1!" & nom_colonne & ":" & nom_colonne & ";feuille1!C:C;A2;feuille1!D😀;B2)"
Next cel


merci beaucoup
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
14
Affichages
514
Retour