macro remplir une cellule avec une formule

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: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 = ?
 

Pierrot93

XLDnaute Barbatruc
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
@+
 

Efgé

XLDnaute Barbatruc
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
 

pkc

XLDnaute Nouveau
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:D;B2)"
Next cel


merci beaucoup
 

Discussions similaires

Réponses
2
Affichages
272

Statistiques des forums

Discussions
313 770
Messages
2 102 235
Membres
108 181
dernier inscrit
Chr1sD