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 !

tactic6

XLDnaute Impliqué
Bonjour tout le monde

J'essaie d'écrire cette formule
Code:
=SI(I18<>"";H18*((100-J18)/100)*I18;"")
qui se trouve dans mon tableau dans un code VBA
j'ai donc écrit
Code:
FormulaLocal = "=SI(I" & u & "<>"""";H" & u & "*((100-J" & u & ")/100*I" & u & ";"""")"
mais ça ne marche pas
quelqu'un pourrait corriger ma formule SVP
En vous remerciant je vous souhaite à tous un bon Week End

Edit voici le bout de code complet
Code:
For u = 15 To 50
      If IsEmpty(CellS(u, 11)) Then
      CellS(u, 11).FormulaLocal = "=SI(I" & u & "<>"""";H" & u & "*((100-J" & u & ")/100*I" & u & ";"""")"
      End If
    Next

Le but recherché est de calculer un montant en "K" en fonction d'un Nombre en "I" et d'une remise en "J"
 
Dernière édition:
Re : Formule en VBA

Bonjour,

Et toi comment l'écrirais-tu? C'est ça l'important. On est sur un forum d'entraide pas de production de 'tout cuit"!

Place ta formule dans une cellule et garde ta cellule sélectionnée.
Dans l'editeur de Macro fait CTRL+G
Dans la fenêtre excecution tu tapes: ?activecell.formula et tu valide par ENTREE
Tu verras ta formule écrite,
A toi d'adapter l'écriture avec tes variables.
Vu ce que tu as fait précédement tu devrait t'en sortir.
A+
 
Re : Formule en VBA

Re
Voici donc ce que je sorts de la marmite
Code:
CellS(6, 53).FormulaLocal = "=SI(SUM(O" & 54 & ">0),SUM(N" & 53 & ")-(J " & 55 & ")),"""")"
Mais ç'est pas à point
Je cherche à écrire la formule en "F53" d'où le "CellS(6, 53)"
 
Re : Formule en VBA

Re,

Là tu mélanges FormulaLocal et Formula.
FormulaLocal: 'SI'
Formula= 'IF';
FormulaLocal: 'SOMME'
Formula: 'SUM'
FormulaLocal: ';'
Formula: ','

A+
 
Dernière modification par un modérateur:
Re : Formule en VBA

RE,

Un truc:
Code:
Sub truc()
    Dim formule As String
    formule = "=SI(SOMME(O? >0);SOMME(N#-J!);"""")"
    formule = Replace(Replace(Replace(formule, "?", "54"), "#", "53"), "!", "55")
    Debug.Print formule
End Sub

A+
 
Re : Formule en VBA

Oui en effet
si en O54 je suis >0
alors F53 devient la soustraction de N53 à J55
Avec ma formule j'ai une erreur 1014

OUPS pas rafraichit
je regarde un peu ton code mais je ne le comprends pas trop
je vais essayer
merci et bon app
 
Re : Formule en VBA

Bonjour,

Le Truc Détaillé et commenté:
VB:
Sub truc()
 
Dim formule As String
Dim i As Long
 
'La formule telle quelle apparaît dans une cellule en remplaçant
'les numéros de ligne par des caractères distinctifs
 
formule = "=SI(O?>0;N#-J!;"""")"
 
'En partant de 1 à 10
For i = 1 To 10
 
'Remplacer les caractères distinctifs de la formule par leur équivalent ligne (53+i), 52+1,54+1
formule = Replace(Replace(Replace(formule, "?", 53 + i), "#", 52 + i), "!", 54 + i)
 
'Affiche la formule dans la fenêtre execution pour contrôle
'a supprimer quand tout est ok
Debug.Print formule
 
'Mettre la formule dans les cellules idoines
Cells(i, 1).FormulaLocal = formule
 
Next
End Sub

La ligne de remplacement des caractères par l'incrémentation de la variable i est un raccourci équivalent à :

VB:
formule = Replace(formule, "?", 53 + i) 'Remplacer ? par 53+i
formule = Replace(formule, "#", 52 + i) 'Remplacer # par 52+i
formule = Replace(formule, "!", 54 + i) 'Remplacer ! par 54+i

A+
 
- 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
236
Réponses
4
Affichages
177
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
649
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
169
Retour