Traduire la fonction SI dans VBA

PierYves

XLDnaute Nouveau
Bonjour,
je souhaiterais savoir comment traduire la fonction d'une cellule excel en VBA.
j'ai ds un tableur excel une cellule avec : =SI(B22=1;+F22*G22*R$8;0)
je suis deja parti sur ça :
Code:
ActiveCell.Offset(0, 6).Value = Application.WorksheetFunction.

Mais j'arrive pas à trouver comment la fonction se traduit en VBA.
Merci d'avance pour toute votre aide.

ps: ici la valeur X22 je pense la remplacer par ActiveCell.Offset (....
 

Etienne2323

XLDnaute Impliqué
Re : Traduire la fonction SI dans VBA

Salut PierYves,
si vous souhaitez qu'il y ait une formule dans votre cellule, alors vous devez utiliser ceci :
Code:
Cells(1, 1).Value = "=IF(B22=1,+F22*G22*R$8,0)"
Sinon, en VBA
Code:
If Range("B22").Value = 1 Then
    Range("A1").Value = Range("F22") * Range("G22") * Range("R8")
Else
    Range("A1").Value = 0
End If

Dans le premier cas, l'enregistreur de macro est un bon outil pour vous aider à convertir des formules du français à l'anglais !

Bonne continuité,

Étienne
 

job75

XLDnaute Barbatruc
Re : Traduire la fonction SI dans VBA

Bonsoir PierYves, [Edit] James007, Etienne2323, Papou-net,

Au lieu de :

Code:
=SI(B22=1;+F22*G22*R$8;0)

il est beaucoup plus simple d'écrire :

Code:
=(B22=1)*F22*G22*R$8

Pour VBA, X22 est-elle la cellule active ou la cellule où est entrée la formule ?

1) si c'est la cellule active :

Code:
ActiveCell.Offset(, 6).FormulaR1C1 = "=(RC[-28]=1)*RC[-24]*RC[-23]*R8C[-12]"

2) si c'est la cellule où est entrée la formule :

Code:
ActiveCell.Offset(, 6).FormulaR1C1 = "=(RC[-22]=1)*RC[-18]*RC[-17]*R8C[-6]"

A+
 
Dernière édition:

PierYves

XLDnaute Nouveau
Re : Traduire la fonction SI dans VBA

C'est bon ! merci beaucoup Job75 pour ton aide ton code était nickel ! j'ai juste adapté à ma feuille les chiffres de placement des cellules.
Il s'agissait en effet de la cellule ou est rentrée la formule.
Merci a tous pour vos réponses et votre rapidité !
Merci beaucoup
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 677
Messages
2 090 824
Membres
104 677
dernier inscrit
soufiane12