J'ai essay=E9 d'=E9crire une formule IF en VBA, mais je ne=20
peux en venir =E0 bout; voici ce que cela donne:
Dim Ligne As Long
With ActiveSheet()
Ligne =3D .[a65536].End(xlUp)(2).Row
With ActiveSheet()
.Range("I" & Ligne).Formula =3D "=3Dif(B" & Ligne & ")=3D"",
((H" & Ligne & ")+ ((I"&Ligne&").offset(-1, 0)), (H" &=20
Ligne & "))"
Ce que je veux c'est que si la cellule correspondante (sur=20
le m=EAme ligne) en colonne B est vide, alors on additionne=20
la cellule en H plus la cellule pr=E9c=E9dente en I. Sinon=20
(donc s'il y a quelque chose d'=E9crit en B)on prend le=20
r=E9sultat en H.
Dans une cellule sans VBA on pourrait lire la formule=20
comme suit:
=3DIf(B11=3D"",H11+I10,H11)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Michel Gaboly
Bonsoir,
Si tu utilises Formula, il faut traduire en anglais les noms de fonctions (IF et pas SI).
Par ailleurs, tu peux simplifier en utilisant Ligne -1, plutôt qu'un Offset dans (I"&Ligne&"). Offset(-1, 0).
Tu peux utiliser les noms en français, mais il faut remplacer Formula par FormulaLocal.
L'inconvénient est que si un jour ton classeur est ouvert avec une version d'Excel dans une autre langue que le français, cela plantera ;-(((
Bonjour à tous,
J'ai essayé d'écrire une formule IF en VBA, mais je ne peux en venir à bout; voici ce que cela donne:
Dim Ligne As Long
With ActiveSheet() Ligne = .[a65536].End(xlUp)(2).Row
With ActiveSheet() .Range("I" & Ligne).Formula = "=if(B" & Ligne & ")="", ((H" & Ligne & ")+ ((I"&Ligne&").offset(-1, 0)), (H" & Ligne & "))"
Ce que je veux c'est que si la cellule correspondante (sur le même ligne) en colonne B est vide, alors on additionne la cellule en H plus la cellule précédente en I. Sinon (donc s'il y a quelque chose d'écrit en B)on prend le résultat en H.
Dans une cellule sans VBA on pourrait lire la formule comme suit: =If(B11="",H11+I10,H11)
Quelqu'un pourrait m'aider?
Merci beaucoup
Denys
-- Cordialement,
Michel Gaboly http://www.gaboly.com
Bonsoir,
Si tu utilises Formula, il faut traduire en anglais les
noms de fonctions (IF et pas SI).
Par ailleurs, tu peux simplifier en utilisant
Ligne -1, plutôt qu'un Offset dans (I"&Ligne&").
Offset(-1, 0).
Tu peux utiliser les noms en français, mais il faut
remplacer Formula par FormulaLocal.
L'inconvénient est que si un jour ton classeur est
ouvert avec une version d'Excel dans une autre langue
que le français, cela plantera ;-(((
Bonjour à tous,
J'ai essayé d'écrire une formule IF en VBA, mais je ne
peux en venir à bout; voici ce que cela donne:
Dim Ligne As Long
With ActiveSheet()
Ligne = .[a65536].End(xlUp)(2).Row
With ActiveSheet()
.Range("I" & Ligne).Formula = "=if(B" & Ligne & ")="",
((H" & Ligne & ")+ ((I"&Ligne&").offset(-1, 0)), (H" &
Ligne & "))"
Ce que je veux c'est que si la cellule correspondante (sur
le même ligne) en colonne B est vide, alors on additionne
la cellule en H plus la cellule précédente en I. Sinon
(donc s'il y a quelque chose d'écrit en B)on prend le
résultat en H.
Dans une cellule sans VBA on pourrait lire la formule
comme suit:
=If(B11="",H11+I10,H11)
Si tu utilises Formula, il faut traduire en anglais les noms de fonctions (IF et pas SI).
Par ailleurs, tu peux simplifier en utilisant Ligne -1, plutôt qu'un Offset dans (I"&Ligne&"). Offset(-1, 0).
Tu peux utiliser les noms en français, mais il faut remplacer Formula par FormulaLocal.
L'inconvénient est que si un jour ton classeur est ouvert avec une version d'Excel dans une autre langue que le français, cela plantera ;-(((
Bonjour à tous,
J'ai essayé d'écrire une formule IF en VBA, mais je ne peux en venir à bout; voici ce que cela donne:
Dim Ligne As Long
With ActiveSheet() Ligne = .[a65536].End(xlUp)(2).Row
With ActiveSheet() .Range("I" & Ligne).Formula = "=if(B" & Ligne & ")="", ((H" & Ligne & ")+ ((I"&Ligne&").offset(-1, 0)), (H" & Ligne & "))"
Ce que je veux c'est que si la cellule correspondante (sur le même ligne) en colonne B est vide, alors on additionne la cellule en H plus la cellule précédente en I. Sinon (donc s'il y a quelque chose d'écrit en B)on prend le résultat en H.
Dans une cellule sans VBA on pourrait lire la formule comme suit: =If(B11="",H11+I10,H11)
Quelqu'un pourrait m'aider?
Merci beaucoup
Denys
-- Cordialement,
Michel Gaboly http://www.gaboly.com
Papyty
Salut @ Tous, Denys a écrit:
A tester, attention au coupure:
Sub Test() Dim Ligne As Long
With ActiveSheet Ligne = .[a65536].End(xlUp)(2).Row .Range("I" & Ligne).FormulaR1C1 "=IF(RC[-7]="""",RC[-1]+R[-1]C,RC[-1])" End With End Sub
Est-ce que ça vas?
-- @+ Thierry
J'ai essayé d'écrire une formule IF en VBA, mais je ne peux en venir à bout; voici ce que cela donne:
Dim Ligne As Long
With ActiveSheet() Ligne = .[a65536].End(xlUp)(2).Row
With ActiveSheet() .Range("I" & Ligne).Formula = "=if(B" & Ligne & ")="", ((H" & Ligne & ")+ ((I"&Ligne&").offset(-1, 0)), (H" & Ligne & "))"
Ce que je veux c'est que si la cellule correspondante (sur le même ligne) en colonne B est vide, alors on additionne la cellule en H plus la cellule précédente en I. Sinon (donc s'il y a quelque chose d'écrit en B)on prend le résultat en H.
Dans une cellule sans VBA on pourrait lire la formule comme suit: =If(B11="",H11+I10,H11)
Salut @ Tous,
Denys a écrit:
A tester, attention au coupure:
Sub Test()
Dim Ligne As Long
With ActiveSheet
Ligne = .[a65536].End(xlUp)(2).Row
.Range("I" & Ligne).FormulaR1C1 "=IF(RC[-7]="""",RC[-1]+R[-1]C,RC[-1])"
End With
End Sub
Est-ce que ça vas?
--
@+
Thierry
J'ai essayé d'écrire une formule IF en VBA, mais je ne
peux en venir à bout; voici ce que cela donne:
Dim Ligne As Long
With ActiveSheet()
Ligne = .[a65536].End(xlUp)(2).Row
With ActiveSheet()
.Range("I" & Ligne).Formula = "=if(B" & Ligne & ")="",
((H" & Ligne & ")+ ((I"&Ligne&").offset(-1, 0)), (H" &
Ligne & "))"
Ce que je veux c'est que si la cellule correspondante (sur
le même ligne) en colonne B est vide, alors on additionne
la cellule en H plus la cellule précédente en I. Sinon
(donc s'il y a quelque chose d'écrit en B)on prend le
résultat en H.
Dans une cellule sans VBA on pourrait lire la formule
comme suit:
=If(B11="",H11+I10,H11)
With ActiveSheet Ligne = .[a65536].End(xlUp)(2).Row .Range("I" & Ligne).FormulaR1C1 "=IF(RC[-7]="""",RC[-1]+R[-1]C,RC[-1])" End With End Sub
Est-ce que ça vas?
-- @+ Thierry
J'ai essayé d'écrire une formule IF en VBA, mais je ne peux en venir à bout; voici ce que cela donne:
Dim Ligne As Long
With ActiveSheet() Ligne = .[a65536].End(xlUp)(2).Row
With ActiveSheet() .Range("I" & Ligne).Formula = "=if(B" & Ligne & ")="", ((H" & Ligne & ")+ ((I"&Ligne&").offset(-1, 0)), (H" & Ligne & "))"
Ce que je veux c'est que si la cellule correspondante (sur le même ligne) en colonne B est vide, alors on additionne la cellule en H plus la cellule précédente en I. Sinon (donc s'il y a quelque chose d'écrit en B)on prend le résultat en H.
Dans une cellule sans VBA on pourrait lire la formule comme suit: =If(B11="",H11+I10,H11)
isabelle
bonjour Denys,
essaie comme ça,
ActiveCell.Formula = "=IF(B" & _ Ligne & "="""",H" & Ligne & "+I" & _ Ligne - 1 & ",H" & Ligne & ")"
isabelle
Bonjour à tous,
J'ai essayé d'écrire une formule IF en VBA, mais je ne peux en venir à bout; voici ce que cela donne:
Dim Ligne As Long
With ActiveSheet() Ligne = .[a65536].End(xlUp)(2).Row
With ActiveSheet() .Range("I" & Ligne).Formula = "=if(B" & Ligne & ")="", ((H" & Ligne & ")+ ((I"&Ligne&").offset(-1, 0)), (H" & Ligne & "))"
Ce que je veux c'est que si la cellule correspondante (sur le même ligne) en colonne B est vide, alors on additionne la cellule en H plus la cellule précédente en I. Sinon (donc s'il y a quelque chose d'écrit en B)on prend le résultat en H.
Dans une cellule sans VBA on pourrait lire la formule comme suit: =If(B11="",H11+I10,H11)
Quelqu'un pourrait m'aider?
Merci beaucoup
Denys
bonjour Denys,
essaie comme ça,
ActiveCell.Formula = "=IF(B" & _
Ligne & "="""",H" & Ligne & "+I" & _
Ligne - 1 & ",H" & Ligne & ")"
isabelle
Bonjour à tous,
J'ai essayé d'écrire une formule IF en VBA, mais je ne
peux en venir à bout; voici ce que cela donne:
Dim Ligne As Long
With ActiveSheet()
Ligne = .[a65536].End(xlUp)(2).Row
With ActiveSheet()
.Range("I" & Ligne).Formula = "=if(B" & Ligne & ")="",
((H" & Ligne & ")+ ((I"&Ligne&").offset(-1, 0)), (H" &
Ligne & "))"
Ce que je veux c'est que si la cellule correspondante (sur
le même ligne) en colonne B est vide, alors on additionne
la cellule en H plus la cellule précédente en I. Sinon
(donc s'il y a quelque chose d'écrit en B)on prend le
résultat en H.
Dans une cellule sans VBA on pourrait lire la formule
comme suit:
=If(B11="",H11+I10,H11)
ActiveCell.Formula = "=IF(B" & _ Ligne & "="""",H" & Ligne & "+I" & _ Ligne - 1 & ",H" & Ligne & ")"
isabelle
Bonjour à tous,
J'ai essayé d'écrire une formule IF en VBA, mais je ne peux en venir à bout; voici ce que cela donne:
Dim Ligne As Long
With ActiveSheet() Ligne = .[a65536].End(xlUp)(2).Row
With ActiveSheet() .Range("I" & Ligne).Formula = "=if(B" & Ligne & ")="", ((H" & Ligne & ")+ ((I"&Ligne&").offset(-1, 0)), (H" & Ligne & "))"
Ce que je veux c'est que si la cellule correspondante (sur le même ligne) en colonne B est vide, alors on additionne la cellule en H plus la cellule précédente en I. Sinon (donc s'il y a quelque chose d'écrit en B)on prend le résultat en H.
Dans une cellule sans VBA on pourrait lire la formule comme suit: =If(B11="",H11+I10,H11)
Quelqu'un pourrait m'aider?
Merci beaucoup
Denys
Denys
Bonjour Michel, Isabelle et Papyty,
Merci beaucoup pour vos réponses. je regarde cela à tête reposée, et je vous reviens...
Merci pour votre temps
Denys
-----Original Message----- Bonjour à tous,
J'ai essayé d'écrire une formule IF en VBA, mais je ne peux en venir à bout; voici ce que cela donne:
Dim Ligne As Long
With ActiveSheet() Ligne = .[a65536].End(xlUp)(2).Row
With ActiveSheet() .Range("I" & Ligne).Formula = "=if(B" & Ligne & ")="", ((H" & Ligne & ")+ ((I"&Ligne&").offset(-1, 0)), (H" & Ligne & "))"
Ce que je veux c'est que si la cellule correspondante (sur
le même ligne) en colonne B est vide, alors on additionne la cellule en H plus la cellule précédente en I. Sinon (donc s'il y a quelque chose d'écrit en B)on prend le résultat en H.
Dans une cellule sans VBA on pourrait lire la formule comme suit: =If(B11="",H11+I10,H11)
Quelqu'un pourrait m'aider?
Merci beaucoup
Denys .
Bonjour Michel, Isabelle et Papyty,
Merci beaucoup pour vos réponses. je regarde cela à tête
reposée, et je vous reviens...
Merci pour votre temps
Denys
-----Original Message-----
Bonjour à tous,
J'ai essayé d'écrire une formule IF en VBA, mais je ne
peux en venir à bout; voici ce que cela donne:
Dim Ligne As Long
With ActiveSheet()
Ligne = .[a65536].End(xlUp)(2).Row
With ActiveSheet()
.Range("I" & Ligne).Formula = "=if(B" & Ligne & ")="",
((H" & Ligne & ")+ ((I"&Ligne&").offset(-1, 0)), (H" &
Ligne & "))"
Ce que je veux c'est que si la cellule correspondante
(sur
le même ligne) en colonne B est vide, alors on additionne
la cellule en H plus la cellule précédente en I. Sinon
(donc s'il y a quelque chose d'écrit en B)on prend le
résultat en H.
Dans une cellule sans VBA on pourrait lire la formule
comme suit:
=If(B11="",H11+I10,H11)
Merci beaucoup pour vos réponses. je regarde cela à tête reposée, et je vous reviens...
Merci pour votre temps
Denys
-----Original Message----- Bonjour à tous,
J'ai essayé d'écrire une formule IF en VBA, mais je ne peux en venir à bout; voici ce que cela donne:
Dim Ligne As Long
With ActiveSheet() Ligne = .[a65536].End(xlUp)(2).Row
With ActiveSheet() .Range("I" & Ligne).Formula = "=if(B" & Ligne & ")="", ((H" & Ligne & ")+ ((I"&Ligne&").offset(-1, 0)), (H" & Ligne & "))"
Ce que je veux c'est que si la cellule correspondante (sur
le même ligne) en colonne B est vide, alors on additionne la cellule en H plus la cellule précédente en I. Sinon (donc s'il y a quelque chose d'écrit en B)on prend le résultat en H.
Dans une cellule sans VBA on pourrait lire la formule comme suit: =If(B11="",H11+I10,H11)
Quelqu'un pourrait m'aider?
Merci beaucoup
Denys .
Clément Marcotte
Dans une cellule sans VBA on pourrait lire la formule comme suit: =If(B11="",H11+I10,H11)
Quelqu'un pourrait m'aider?
Avec cela, beaucoup plus simple que les patentes des concurrents
Dim Ligne As Long
With ActiveSheet() Ligne = .[a65536].End(xlUp)(2).Row
With ActiveSheet() .Range("I" & Ligne).value = "=iif(B" & Ligne & ")="", ((H" & Ligne & ")+ ((I"&Ligne&").offset(-1, 0)), (H" & Ligne & "))"
C'est bien iif()
Dans une cellule sans VBA on pourrait lire la formule
comme suit:
=If(B11="",H11+I10,H11)
Quelqu'un pourrait m'aider?
Avec cela, beaucoup plus simple que les patentes des concurrents
Dim Ligne As Long
With ActiveSheet()
Ligne = .[a65536].End(xlUp)(2).Row
With ActiveSheet()
.Range("I" & Ligne).value = "=iif(B" & Ligne & ")="",
((H" & Ligne & ")+ ((I"&Ligne&").offset(-1, 0)), (H" &
Ligne & "))"