Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA: créer une formule

7 réponses
Avatar
Stach
Salut,

Comment cr=E9er une formule dans une cellule en VBA?

Je voudrai par exemple cr=E9er dans la cellules E22 la=20
formule:

=3DD22/D32

Lorsque j'essaye : Range("E22") =3D Range("D22") / Range
("D32") , =E7a ne marche pas.

Comment faire svp?

Merci

Stach ;-)

7 réponses

Avatar
Vincent.
Salut !
En reprenant ton exemple, voici une procédure à placer
dans un module de ton fichier...
Function Division(Nb1 As Long, Nb2 As Long)
If Nb2 =0 Then
Division = "Division par 0 !"
Else
Division = Nb1/Nb2
End If
End Function
A+

V.

-----Message d'origine-----
Salut,

Comment créer une formule dans une cellule en VBA?

Je voudrai par exemple créer dans la cellules E22 la
formule:

Ò2/D32

Lorsque j'essaye : Range("E22") = Range("D22") / Range
("D32") , ça ne marche pas.

Comment faire svp?

Merci

Stach ;-)
.



Avatar
Phil
Salut,

Je pense pouvoir faire plus simple:

Sub essai()
[E22].Formula = "Ò2/D32"
End Sub
Cordialement,
PB

-----Message d'origine-----
Salut !
En reprenant ton exemple, voici une procédure à placer
dans un module de ton fichier...
Function Division(Nb1 As Long, Nb2 As Long)
If Nb2 =0 Then
Division = "Division par 0 !"
Else
Division = Nb1/Nb2
End If
End Function
A+

V.

-----Message d'origine-----
Salut,

Comment créer une formule dans une cellule en VBA?

Je voudrai par exemple créer dans la cellules E22 la
formule:

Ò2/D32

Lorsque j'essaye : Range("E22") = Range("D22") / Range
("D32") , ça ne marche pas.

Comment faire svp?

Merci

Stach ;-)
.

.





Avatar
Vincent.
Salut !
Effectivement, c'est un peu plus simple... en apparence.
En fait, cela ne répond pas au même besoin ! Ta procédure
doit être appelée (par un bouton, un événement, etc.)
alors qu'une fonction telle que proposée dans mon
précédent post peut être appelée directement dans une
cellule du classeur :
=DIVISION(A1;A2) renverra la valeur A1/A2 ou "Division par
0" ou #NOMBRE! si une des valeurs n'est pas numérique...
Question de point de vue donc !
A+

V.

-----Message d'origine-----
Salut,

Je pense pouvoir faire plus simple:

Sub essai()
[E22].Formula = "Ò2/D32"
End Sub
Cordialement,
PB

-----Message d'origine-----
Salut !
En reprenant ton exemple, voici une procédure à placer
dans un module de ton fichier...
Function Division(Nb1 As Long, Nb2 As Long)
If Nb2 =0 Then
Division = "Division par 0 !"
Else
Division = Nb1/Nb2
End If
End Function
A+

V.

-----Message d'origine-----
Salut,

Comment créer une formule dans une cellule en VBA?

Je voudrai par exemple créer dans la cellules E22 la
formule:

Ò2/D32

Lorsque j'essaye : Range("E22") = Range("D22") / Range
("D32") , ça ne marche pas.

Comment faire svp?

Merci

Stach ;-)
.

.


.






Avatar
Michel Gaboly
Bonjour Vincent,

La demande initiale était "comment placer une formule en
VBA", pas la valeur en résultant.

D'autre part, c'est se compliquer la vie de créer une fonction
pour diviser, alors qu'existe déjà un opérateur pour cela.

La réponse de Phil paraît donc naturelle, aux crochets près
qui sont un mode d'écriture que personnellement, je n'aime
pas (ne serait-ce que parce que les crochets nécessitent une
combinaison de touches avec un cmlavier français), mais
c'est un détail.



Salut !
Effectivement, c'est un peu plus simple... en apparence.
En fait, cela ne répond pas au même besoin ! Ta procédure
doit être appelée (par un bouton, un événement, etc.)
alors qu'une fonction telle que proposée dans mon
précédent post peut être appelée directement dans une
cellule du classeur :
=DIVISION(A1;A2) renverra la valeur A1/A2 ou "Division par
0" ou #NOMBRE! si une des valeurs n'est pas numérique...
Question de point de vue donc !
A+

V.

-----Message d'origine-----
Salut,

Je pense pouvoir faire plus simple:

Sub essai()
[E22].Formula = "Ò2/D32"
End Sub
Cordialement,
PB

-----Message d'origine-----
Salut !
En reprenant ton exemple, voici une procédure à placer
dans un module de ton fichier...
Function Division(Nb1 As Long, Nb2 As Long)
If Nb2 =0 Then
Division = "Division par 0 !"
Else
Division = Nb1/Nb2
End If
End Function
A+

V.

-----Message d'origine-----
Salut,

Comment créer une formule dans une cellule en VBA?

Je voudrai par exemple créer dans la cellules E22 la
formule:

Ò2/D32

Lorsque j'essaye : Range("E22") = Range("D22") / Range
("D32") , ça ne marche pas.

Comment faire svp?

Merci

Stach ;-)
.

.


.





--
Cordialement,

Michel Gaboly
http://www.gaboly.com




Avatar
Vincent.
Oulala ! Je me suis complétement fourvoyé... j'avais
compris, m'enfin, vous l'avez compris ce que j'ai
compris...
Désolé !
Note : moi, j'aime bien les crochets, ça allèche, lège
veuille-je dire !
A+

V.

-----Message d'origine-----
Bonjour Vincent,

La demande initiale était "comment placer une formule en
VBA", pas la valeur en résultant.

D'autre part, c'est se compliquer la vie de créer une
fonction

pour diviser, alors qu'existe déjà un opérateur pour cela.

La réponse de Phil paraît donc naturelle, aux crochets
près

qui sont un mode d'écriture que personnellement, je n'aime
pas (ne serait-ce que parce que les crochets nécessitent
une

combinaison de touches avec un cmlavier français), mais
c'est un détail.



Salut !
Effectivement, c'est un peu plus simple... en apparence.
En fait, cela ne répond pas au même besoin ! Ta
procédure


doit être appelée (par un bouton, un événement, etc.)
alors qu'une fonction telle que proposée dans mon
précédent post peut être appelée directement dans une
cellule du classeur :
=DIVISION(A1;A2) renverra la valeur A1/A2 ou "Division
par


0" ou #NOMBRE! si une des valeurs n'est pas numérique...
Question de point de vue donc !
A+

V.

-----Message d'origine-----
Salut,

Je pense pouvoir faire plus simple:

Sub essai()
[E22].Formula = "Ò2/D32"
End Sub
Cordialement,
PB

-----Message d'origine-----
Salut !
En reprenant ton exemple, voici une procédure à placer
dans un module de ton fichier...
Function Division(Nb1 As Long, Nb2 As Long)
If Nb2 =0 Then
Division = "Division par 0 !"
Else
Division = Nb1/Nb2
End If
End Function
A+

V.

-----Message d'origine-----
Salut,

Comment créer une formule dans une cellule en VBA?

Je voudrai par exemple créer dans la cellules E22 la
formule:

Ò2/D32

Lorsque j'essaye : Range("E22") = Range("D22") /
Range





("D32") , ça ne marche pas.

Comment faire svp?

Merci

Stach ;-)
.

.


.





--
Cordialement,

Michel Gaboly
http://www.gaboly.com


.







Avatar
Michel Gaboly
;-))

L'usage des crochets me choque, mais je suis probablement
trop puriste :

En principe, les crochets sont un raccourci pour Evaluate,
moins souple mais + concis. Evaluate est un peu l'équivalent
du point d'interrogation dans le langage courant, puisque
cela permet d'indiquer un nom, une expression et d'en
récupérer le résultat.

Par conséquent écrire :

[A1] = 10

est pour moi l'équivalent d'une affirmation que l'on ferait
suivre d'un point d'interrogation. Cela marche, c'est accepté
par VBA, mais sur le plan logique, cela me paraît une parfaite
aberration.

Voilàpourquoi j'ai horreur de l'usage des crochets dans ce
contexte ;-((((



Oulala ! Je me suis complétement fourvoyé... j'avais
compris, m'enfin, vous l'avez compris ce que j'ai
compris...
Désolé !
Note : moi, j'aime bien les crochets, ça allèche, lège
veuille-je dire !
A+

V.

-----Message d'origine-----
Bonjour Vincent,

La demande initiale était "comment placer une formule en
VBA", pas la valeur en résultant.

D'autre part, c'est se compliquer la vie de créer une
fonction

pour diviser, alors qu'existe déjà un opérateur pour cela.

La réponse de Phil paraît donc naturelle, aux crochets
près

qui sont un mode d'écriture que personnellement, je n'aime
pas (ne serait-ce que parce que les crochets nécessitent
une

combinaison de touches avec un cmlavier français), mais
c'est un détail.



Salut !
Effectivement, c'est un peu plus simple... en apparence.
En fait, cela ne répond pas au même besoin ! Ta
procédure


doit être appelée (par un bouton, un événement, etc.)
alors qu'une fonction telle que proposée dans mon
précédent post peut être appelée directement dans une
cellule du classeur :
=DIVISION(A1;A2) renverra la valeur A1/A2 ou "Division
par


0" ou #NOMBRE! si une des valeurs n'est pas numérique...
Question de point de vue donc !
A+

V.

-----Message d'origine-----
Salut,

Je pense pouvoir faire plus simple:

Sub essai()
[E22].Formula = "Ò2/D32"
End Sub
Cordialement,
PB

-----Message d'origine-----
Salut !
En reprenant ton exemple, voici une procédure à placer
dans un module de ton fichier...
Function Division(Nb1 As Long, Nb2 As Long)
If Nb2 =0 Then
Division = "Division par 0 !"
Else
Division = Nb1/Nb2
End If
End Function
A+

V.

-----Message d'origine-----
Salut,

Comment créer une formule dans une cellule en VBA?

Je voudrai par exemple créer dans la cellules E22 la
formule:

Ò2/D32

Lorsque j'essaye : Range("E22") = Range("D22") /
Range





("D32") , ça ne marche pas.

Comment faire svp?

Merci

Stach ;-)
.

.


.





--
Cordialement,

Michel Gaboly
http://www.gaboly.com


.




--
Cordialement,

Michel Gaboly
http://www.gaboly.com






Avatar
Papyty
Salut @ Tous, Stach a écrit:
Je voudrai par exemple créer dans la cellules E22 la
formule:

Ò2/D32


Range("E22").FormulaLocal = "Ò2/D32"
devrait convenir
--
@+
Thierry