mettre une formule dans une cellule par macro

  • Initiateur de la discussion Initiateur de la discussion bpol
  • 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 !

bpol

XLDnaute Impliqué
bonsoir,

qu'elle est la manière de mettre une formule dans une cellule avec une macro style

si cela vaut la peine pour une question de poids de fichier

Ligne = Range("A65536").End(xlUp).Row + 1

Cells(Ligne, 1) = Sheets("encodage").Range("J7")
Cells(Ligne, 2) = Sheets("encodage").Range("J8")
Cells(Ligne, 3) = Sheets("encodage").Range("J9")
Cells(Ligne, 4) = Sheets("encodage").Range("J10")
Cells(Ligne, 5) = Sheets("encodage").Range("J11")
Cells(Ligne, 6) = [ style =RECHERCHEV(Cells(Ligne, 1);BD!A:I;5;FAUX))]
Cells(Ligne, 7) = [=SOMMEPROD(('facturier sorties'!$C$2:$C$64=Cells(Ligne, 1))*('facturier sorties'!F$2:F$64))]
Cells(Ligne, 8) = [=SOMMEPROD(('facturier sorties'!$C$2:$C$64=Cells(Ligne, 1))*('facturier sorties'!I$2:I$64)) ]

Merci
Bpol
 
Re : mettre une formule dans une cellule par macro

bonsoir Dan,

d'abord une petite explication sur la page encodage quand j'encode un nouveau client il se place dans l base de données(BD)

et le nom se place également sur la feuille listing clients qui elle contient des formules ds les colllonnes B,C et D et c'est là que je voudrais placer les formules avec la macro

les formules ont comme réf la collonne A

Cells(Ligne, 2) = [ style =RECHERCHEV(Cells(Ligne, 1);BD!A:I;5;FAUX))]
Cells(Ligne, 3) = [=SOMMEPROD(('facturier sorties'!$C$2:$C$64=Cells(Ligne, 1))*('facturier sorties'!F$2:F$64))]
Cells(Ligne, 4) = [=SOMMEPROD(('facturier sorties'!$C$2:$C$64=Cells(Ligne, 1))*('facturier sorties'!I$2:I$64)) ]


http://cjoint.com/?gzxV22Fgl5


bonne nuit

Bpol
 
Re : mettre une formule dans une cellule par macro

Bonsoir,

pour avoir la traduction de la formule (les fonctions en vba doivent être en anglais) le plus simple est de démarrer l'enregistreur de macro et de revalider ta formule sur ta feuille.
Tu obtiendras la formule attendue par vba, malheureusement avec les références en R1C1, à toi de les remettre au format A1 si tu préfères.

Tu ne gagneras rien au poids du fichier, il s'alourdira même légèrement. Par contre pose toi la question si ce n'est pas plus interessant de n'y mettre que le résultat. Là tu y gagneras en poids et en vitesse (en n'oubliant pas de rafraichir les résultats quand c'est nécessaire)
eric
 
Re : mettre une formule dans une cellule par macro

Bonjour à tous
Un exemple avec une formule écrite en Français dans le code.
Code:
[COLOR="DarkSlateGray"]Sub toto()
Dim oCel As Range
   For Each oCel In Range("A2:A22")
      oCel.[COLOR="Red"]FormulaLocal[/COLOR] = "=[COLOR="Red"]SI(ESTNUM([/COLOR]" & oCel.Offset(-1, 0).Address(False, False) & ");" & oCel.Offset(-1, 0).Address(False, False) & "+1;[COLOR="Red"]SI(LIGNE()[/COLOR]>2;"""";0))"
   Next oCel
End Sub[/COLOR]
Formule obtenue :
Code:
[COLOR="DarkSlateGray"]=SI(ESTNUM(A1);A1+1;SI(LIGNE()>2;"";0))[/COLOR]
Bonne journée.
ROGER2327
 
Re : mettre une formule dans une cellule par macro

Bonjour,

Bête question mais pourquoi veux-tu placer des formules dans cette feuille ? On pourrait simplement copier l'info dès que tu la mets dans la feuille BD.

Dan
 
Re : mettre une formule dans une cellule par macro

non le but de mon message est que la feuille listing client contient 120 formules et je pensais qu'avec une macro j'aurais allégé mon fichier

dan, ce ne sont pas toutes les mêmes données que ds la BD

encore merci de vos réponses

Bpol
 
- 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
5
Affichages
241
Réponses
4
Affichages
179
Réponses
8
Affichages
471
Réponses
2
Affichages
406
Retour