Bonjour, je cherche à "convertir" la fonction SI suivante (en A21)
=SI(E21="NON";"";1) en vba, et je bloque sur 2 points.
Je suis pour l'intant arrivé à ça (inséré dans la feuille de mon document) :
Private Sub Worksheet_Change(ByVal Target As Range)
If [e21] = "NON" Then
[a21] = ""
Else
[a21] = 1
End If
End Sub
Alors, déjà, la formule ne fonctionne pas... Je pensais pourtant que ça
correspondait.
Et ensuite, ya a t'il un moyen pour que la formule me renvoie bien 1 en A21
suivant la condition définie dans celle-ci, mais que si je rentre un autre
nombre en "écrasant" le résultat en A21, elle ne renvoie pas d'erreur et
l'accepte? (un peu comme si je supprimais le =SI(E21="NON";"";1) en le
remplacant par un chiffre; sauf que là, j'aimerai que la formule en vba
continue tout de même à fonctionner "au cas ou" en arrière plan.
Merci!
--
géjoun
dam-mail2007@ifrance.com
/Enlever l''année pour m''écrire.../
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
Modeste
Bonsour® géjoun avec ferveur ;o))) vous nous disiez :
Bonjour, je cherche à "convertir" la fonction SI suivante (en A21) =SI(E21="NON";"";1) en vba. j'aimerai que la formule en vba continue tout de même à fonctionner "au cas ou" en arrière plan.
Private Sub Worksheet_Change(ByVal Target As Range) [A21].Formula = "=IF(E21=""NON"","""",1)" End Sub
-- -- @+ ;o)))
Bonsour® géjoun avec ferveur ;o))) vous nous disiez :
Bonjour, je cherche à "convertir" la fonction SI suivante (en A21)
=SI(E21="NON";"";1) en vba.
j'aimerai que la formule en vba
continue tout de même à fonctionner "au cas ou" en arrière plan.
Private Sub Worksheet_Change(ByVal Target As Range)
[A21].Formula = "=IF(E21=""NON"","""",1)"
End Sub
Bonsour® géjoun avec ferveur ;o))) vous nous disiez :
Bonjour, je cherche à "convertir" la fonction SI suivante (en A21) =SI(E21="NON";"";1) en vba. j'aimerai que la formule en vba continue tout de même à fonctionner "au cas ou" en arrière plan.
Private Sub Worksheet_Change(ByVal Target As Range) [A21].Formula = "=IF(E21=""NON"","""",1)" End Sub
-- -- @+ ;o)))
géjoun
Bonjour,
Je n'arrive même pas à faire fonctionner cette macro (est-ce bien dans la feuille quil faut mettre le code? ou dans un module?).
Et en plus, ça met au moins 3 sec de calcul à chaque fois que j'essaie de changer les données en E21. C'est normal?
Merci!
-- géjoun
/Enlever l''année pour m''écrire.../
Bonsour® géjoun avec ferveur ;o))) vous nous disiez :
Bonjour, je cherche à "convertir" la fonction SI suivante (en A21) =SI(E21="NON";"";1) en vba. j'aimerai que la formule en vba continue tout de même à fonctionner "au cas ou" en arrière plan.
Private Sub Worksheet_Change(ByVal Target As Range) [A21].Formula = "=IF(E21=""NON"","""",1)" End Sub
-- -- @+ ;o)))
Bonjour,
Je n'arrive même pas à faire fonctionner cette macro (est-ce bien dans la
feuille quil faut mettre le code? ou dans un module?).
Et en plus, ça met au moins 3 sec de calcul à chaque fois que j'essaie de
changer les données en E21. C'est normal?
Merci!
--
géjoun
dam-mail2007@ifrance.com
/Enlever l''année pour m''écrire.../
Bonsour® géjoun avec ferveur ;o))) vous nous disiez :
Bonjour, je cherche à "convertir" la fonction SI suivante (en A21)
=SI(E21="NON";"";1) en vba.
j'aimerai que la formule en vba
continue tout de même à fonctionner "au cas ou" en arrière plan.
Private Sub Worksheet_Change(ByVal Target As Range)
[A21].Formula = "=IF(E21=""NON"","""",1)"
End Sub
Je n'arrive même pas à faire fonctionner cette macro (est-ce bien dans la feuille quil faut mettre le code? ou dans un module?).
Et en plus, ça met au moins 3 sec de calcul à chaque fois que j'essaie de changer les données en E21. C'est normal?
Merci!
-- géjoun
/Enlever l''année pour m''écrire.../
Bonsour® géjoun avec ferveur ;o))) vous nous disiez :
Bonjour, je cherche à "convertir" la fonction SI suivante (en A21) =SI(E21="NON";"";1) en vba. j'aimerai que la formule en vba continue tout de même à fonctionner "au cas ou" en arrière plan.
Private Sub Worksheet_Change(ByVal Target As Range) [A21].Formula = "=IF(E21=""NON"","""",1)" End Sub
-- -- @+ ;o)))
AH60
Bonjour
Private Sub Worksheet_Change(ByVal Target As Range) [A21] = IIf(UCase([E21]) = "NON", "", 1) End Sub
Abed_H
Bonjour, je cherche à "convertir" la fonction SI suivante (en A21) =SI(E21="NON";"";1) en vba, et je bloque sur 2 points.
Je suis pour l'intant arrivé à ça (inséré dans la feuille de mon document) :
Private Sub Worksheet_Change(ByVal Target As Range) If [e21] = "NON" Then [a21] = "" Else [a21] = 1 End If End Sub
Alors, déjà, la formule ne fonctionne pas... Je pensais pourtant que ça correspondait.
Et ensuite, ya a t'il un moyen pour que la formule me renvoie bien 1 en A21 suivant la condition définie dans celle-ci, mais que si je rentre un autre nombre en "écrasant" le résultat en A21, elle ne renvoie pas d'erreur et l'accepte? (un peu comme si je supprimais le =SI(E21="NON";"";1) en le remplacant par un chiffre; sauf que là, j'aimerai que la formule en vba continue tout de même à fonctionner "au cas ou" en arrière plan.
Merci!
-- géjoun
/Enlever l''année pour m''écrire.../
Bonjour
Private Sub Worksheet_Change(ByVal Target As Range)
[A21] = IIf(UCase([E21]) = "NON", "", 1)
End Sub
Abed_H
Bonjour, je cherche à "convertir" la fonction SI suivante (en A21)
=SI(E21="NON";"";1) en vba, et je bloque sur 2 points.
Je suis pour l'intant arrivé à ça (inséré dans la feuille de mon document) :
Private Sub Worksheet_Change(ByVal Target As Range)
If [e21] = "NON" Then
[a21] = ""
Else
[a21] = 1
End If
End Sub
Alors, déjà, la formule ne fonctionne pas... Je pensais pourtant que ça
correspondait.
Et ensuite, ya a t'il un moyen pour que la formule me renvoie bien 1 en A21
suivant la condition définie dans celle-ci, mais que si je rentre un autre
nombre en "écrasant" le résultat en A21, elle ne renvoie pas d'erreur et
l'accepte? (un peu comme si je supprimais le =SI(E21="NON";"";1) en le
remplacant par un chiffre; sauf que là, j'aimerai que la formule en vba
continue tout de même à fonctionner "au cas ou" en arrière plan.
Merci!
--
géjoun
dam-mail2007@ifrance.com
/Enlever l''année pour m''écrire.../
Private Sub Worksheet_Change(ByVal Target As Range) [A21] = IIf(UCase([E21]) = "NON", "", 1) End Sub
Abed_H
Bonjour, je cherche à "convertir" la fonction SI suivante (en A21) =SI(E21="NON";"";1) en vba, et je bloque sur 2 points.
Je suis pour l'intant arrivé à ça (inséré dans la feuille de mon document) :
Private Sub Worksheet_Change(ByVal Target As Range) If [e21] = "NON" Then [a21] = "" Else [a21] = 1 End If End Sub
Alors, déjà, la formule ne fonctionne pas... Je pensais pourtant que ça correspondait.
Et ensuite, ya a t'il un moyen pour que la formule me renvoie bien 1 en A21 suivant la condition définie dans celle-ci, mais que si je rentre un autre nombre en "écrasant" le résultat en A21, elle ne renvoie pas d'erreur et l'accepte? (un peu comme si je supprimais le =SI(E21="NON";"";1) en le remplacant par un chiffre; sauf que là, j'aimerai que la formule en vba continue tout de même à fonctionner "au cas ou" en arrière plan.
Merci!
-- géjoun
/Enlever l''année pour m''écrire.../
géjoun
Bonjour,
Bon, finalement, les 2 formules fonctionnent bien. En fait, je me suis trompé sur le numéro de cellule, et ça m'affichait le résultat sur la ligne du dessus, et j'ai mis 3 plombes à m'en apercevoir! La loose.... :o)
Par contre, existe t'il un moyen pour que ça calcule quand même, mais sans me "figer" l'ordi dès que je modifie la valur en E21?
Et est-il possible de pouvoir rentrer un autre valeur que 1 ou "" à la main" en A21; sans que le code vba m'en empêche?
Par exemple, à la place de laisser la cellule vide ou avoir 1 en A21, j'ai besoin de mettre 12, sans pour autant que la formule me remette obligatoirement 1 ou "" suivant ce qui est complété en E21; et par contre, que si à nouveau je supprime ce 12, la formule reprenne la main et re-renvoie un résultat par rapport à ce qui est rentré en E21?
Est-ce possible? Merci! -- géjoun
/Enlever l''année pour m''écrire.../
Bonjour
Private Sub Worksheet_Change(ByVal Target As Range) [A21] = IIf(UCase([E21]) = "NON", "", 1) End Sub
Abed_H
Bonjour,
Bon, finalement, les 2 formules fonctionnent bien.
En fait, je me suis trompé sur le numéro de cellule, et ça m'affichait le
résultat sur la ligne du dessus, et j'ai mis 3 plombes à m'en apercevoir! La
loose.... :o)
Par contre, existe t'il un moyen pour que ça calcule quand même, mais sans
me "figer" l'ordi dès que je modifie la valur en E21?
Et est-il possible de pouvoir rentrer un autre valeur que 1 ou "" à la main"
en A21; sans que le code vba m'en empêche?
Par exemple, à la place de laisser la cellule vide ou avoir 1 en A21, j'ai
besoin de mettre 12, sans pour autant que la formule me remette
obligatoirement 1 ou "" suivant ce qui est complété en E21; et par contre,
que si à nouveau je supprime ce 12, la formule reprenne la main et re-renvoie
un résultat par rapport à ce qui est rentré en E21?
Est-ce possible?
Merci!
--
géjoun
dam-mail2007@ifrance.com
/Enlever l''année pour m''écrire.../
Bonjour
Private Sub Worksheet_Change(ByVal Target As Range)
[A21] = IIf(UCase([E21]) = "NON", "", 1)
End Sub
Bon, finalement, les 2 formules fonctionnent bien. En fait, je me suis trompé sur le numéro de cellule, et ça m'affichait le résultat sur la ligne du dessus, et j'ai mis 3 plombes à m'en apercevoir! La loose.... :o)
Par contre, existe t'il un moyen pour que ça calcule quand même, mais sans me "figer" l'ordi dès que je modifie la valur en E21?
Et est-il possible de pouvoir rentrer un autre valeur que 1 ou "" à la main" en A21; sans que le code vba m'en empêche?
Par exemple, à la place de laisser la cellule vide ou avoir 1 en A21, j'ai besoin de mettre 12, sans pour autant que la formule me remette obligatoirement 1 ou "" suivant ce qui est complété en E21; et par contre, que si à nouveau je supprime ce 12, la formule reprenne la main et re-renvoie un résultat par rapport à ce qui est rentré en E21?
Est-ce possible? Merci! -- géjoun
/Enlever l''année pour m''écrire.../
Bonjour
Private Sub Worksheet_Change(ByVal Target As Range) [A21] = IIf(UCase([E21]) = "NON", "", 1) End Sub
Abed_H
cousinhub
Bonsoir, pour plus d'explications sur ton souhait, peux-tu préciser si, lorsque tu changes la valeur de E21 ("" ou "non"), tu cellule (A21) doit également changer de valeur? sinon, un petit code : En admettant que tes cellules à modifier soient dans la plage A1:E50, décomposée en 2 plages (iSect1 et iSect2), selon les cellules que tu modifies :
Private Sub Worksheet_Change(ByVal Target As Range) Dim iSect1 As Range, iSect2 As Range
Set iSect1 = Intersect(Target, [a1:a50]) Set iSect2 = Intersect(Target, [e1:e50])
If iSect1 Is Nothing And iSect2 Is Nothing Then Exit Sub
Select Case Target.Column Case 1 If Target = 1 Or Target = "" Then Target = IIf(UCase(Target.Offset(0, 4)) = "NON", "", 1): Exit Sub Case 5 Select Case Target Case "non" Target.Offset(0, -4) = "": Exit Sub Case "" Target.Offset(0, -4) = 1: Exit Sub End Select End Select End Sub
bonne soirée
Bonjour,
Bon, finalement, les 2 formules fonctionnent bien. En fait, je me suis trompé sur le numéro de cellule, et ça m'affichait le résultat sur la ligne du dessus, et j'ai mis 3 plombes à m'en apercevoir! La loose.... :o)
Par contre, existe t'il un moyen pour que ça calcule quand même, mais sans me "figer" l'ordi dès que je modifie la valur en E21?
Et est-il possible de pouvoir rentrer un autre valeur que 1 ou "" à la main" en A21; sans que le code vba m'en empêche?
Par exemple, à la place de laisser la cellule vide ou avoir 1 en A21, j'ai besoin de mettre 12, sans pour autant que la formule me remette obligatoirement 1 ou "" suivant ce qui est complété en E21; et par contre, que si à nouveau je supprime ce 12, la formule reprenne la main et re-renvoie un résultat par rapport à ce qui est rentré en E21?
Est-ce possible? Merci!
Bonsoir,
pour plus d'explications sur ton souhait, peux-tu préciser si, lorsque
tu changes la valeur de E21 ("" ou "non"), tu cellule (A21) doit
également changer de valeur?
sinon, un petit code :
En admettant que tes cellules à modifier soient dans la plage A1:E50,
décomposée en 2 plages (iSect1 et iSect2), selon les cellules que tu
modifies :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim iSect1 As Range, iSect2 As Range
Set iSect1 = Intersect(Target, [a1:a50])
Set iSect2 = Intersect(Target, [e1:e50])
If iSect1 Is Nothing And iSect2 Is Nothing Then Exit Sub
Select Case Target.Column
Case 1
If Target = 1 Or Target = "" Then Target =
IIf(UCase(Target.Offset(0, 4)) = "NON", "", 1): Exit Sub
Case 5
Select Case Target
Case "non"
Target.Offset(0, -4) = "": Exit Sub
Case ""
Target.Offset(0, -4) = 1: Exit Sub
End Select
End Select
End Sub
bonne soirée
Bonjour,
Bon, finalement, les 2 formules fonctionnent bien.
En fait, je me suis trompé sur le numéro de cellule, et ça m'affichait le
résultat sur la ligne du dessus, et j'ai mis 3 plombes à m'en apercevoir! La
loose.... :o)
Par contre, existe t'il un moyen pour que ça calcule quand même, mais sans
me "figer" l'ordi dès que je modifie la valur en E21?
Et est-il possible de pouvoir rentrer un autre valeur que 1 ou "" à la main"
en A21; sans que le code vba m'en empêche?
Par exemple, à la place de laisser la cellule vide ou avoir 1 en A21, j'ai
besoin de mettre 12, sans pour autant que la formule me remette
obligatoirement 1 ou "" suivant ce qui est complété en E21; et par contre,
que si à nouveau je supprime ce 12, la formule reprenne la main et re-renvoie
un résultat par rapport à ce qui est rentré en E21?
Bonsoir, pour plus d'explications sur ton souhait, peux-tu préciser si, lorsque tu changes la valeur de E21 ("" ou "non"), tu cellule (A21) doit également changer de valeur? sinon, un petit code : En admettant que tes cellules à modifier soient dans la plage A1:E50, décomposée en 2 plages (iSect1 et iSect2), selon les cellules que tu modifies :
Private Sub Worksheet_Change(ByVal Target As Range) Dim iSect1 As Range, iSect2 As Range
Set iSect1 = Intersect(Target, [a1:a50]) Set iSect2 = Intersect(Target, [e1:e50])
If iSect1 Is Nothing And iSect2 Is Nothing Then Exit Sub
Select Case Target.Column Case 1 If Target = 1 Or Target = "" Then Target = IIf(UCase(Target.Offset(0, 4)) = "NON", "", 1): Exit Sub Case 5 Select Case Target Case "non" Target.Offset(0, -4) = "": Exit Sub Case "" Target.Offset(0, -4) = 1: Exit Sub End Select End Select End Sub
bonne soirée
Bonjour,
Bon, finalement, les 2 formules fonctionnent bien. En fait, je me suis trompé sur le numéro de cellule, et ça m'affichait le résultat sur la ligne du dessus, et j'ai mis 3 plombes à m'en apercevoir! La loose.... :o)
Par contre, existe t'il un moyen pour que ça calcule quand même, mais sans me "figer" l'ordi dès que je modifie la valur en E21?
Et est-il possible de pouvoir rentrer un autre valeur que 1 ou "" à la main" en A21; sans que le code vba m'en empêche?
Par exemple, à la place de laisser la cellule vide ou avoir 1 en A21, j'ai besoin de mettre 12, sans pour autant que la formule me remette obligatoirement 1 ou "" suivant ce qui est complété en E21; et par contre, que si à nouveau je supprime ce 12, la formule reprenne la main et re-renvoie un résultat par rapport à ce qui est rentré en E21?
Est-ce possible? Merci!
géjoun
cousinhub nous expliquait :
Bonsoir,
La valeur de A21 dépend bien de ce qui est contenu dans E21 (vide si A21= "", ou 1 si A21 est "non"), mais je voudrais quand même en plus pouvoir rentrer à la main d'autres valeurs que 1 ou "", et que dans ce cas, la formule SI ne renvoie pas d'erreurs, et ne s'exécute pas. Mon explication est assez claire?
Merci!
-- géjoun
/Enlever l'année pour répondre.../
Bonsoir, pour plus d'explications sur ton souhait, peux-tu préciser si, lorsque tu changes la valeur de E21 ("" ou "non"), tu cellule (A21) doit également changer de valeur? sinon, un petit code : En admettant que tes cellules à modifier soient dans la plage A1:E50, décomposée en 2 plages (iSect1 et iSect2), selon les cellules que tu modifies :
Private Sub Worksheet_Change(ByVal Target As Range) Dim iSect1 As Range, iSect2 As Range
Set iSect1 = Intersect(Target, [a1:a50]) Set iSect2 = Intersect(Target, [e1:e50])
If iSect1 Is Nothing And iSect2 Is Nothing Then Exit Sub
Select Case Target.Column Case 1 If Target = 1 Or Target = "" Then Target > IIf(UCase(Target.Offset(0, 4)) = "NON", "", 1): Exit Sub Case 5 Select Case Target Case "non" Target.Offset(0, -4) = "": Exit Sub Case "" Target.Offset(0, -4) = 1: Exit Sub End Select End Select End Sub
bonne soirée
cousinhub <pmcsnhb_nospam@aol.com nous expliquait :
Bonsoir,
La valeur de A21 dépend bien de ce qui est contenu dans E21 (vide si A21=
"", ou 1 si A21 est "non"), mais je voudrais quand même en plus pouvoir
rentrer à la main d'autres valeurs que 1 ou "", et que dans ce cas, la
formule SI ne renvoie pas d'erreurs, et ne s'exécute pas.
Mon explication est assez claire?
Merci!
--
géjoun
dam-mail2007@ifrance.com
/Enlever l'année pour répondre.../
Bonsoir,
pour plus d'explications sur ton souhait, peux-tu préciser si, lorsque
tu changes la valeur de E21 ("" ou "non"), tu cellule (A21) doit
également changer de valeur?
sinon, un petit code :
En admettant que tes cellules à modifier soient dans la plage A1:E50,
décomposée en 2 plages (iSect1 et iSect2), selon les cellules que tu
modifies :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim iSect1 As Range, iSect2 As Range
Set iSect1 = Intersect(Target, [a1:a50])
Set iSect2 = Intersect(Target, [e1:e50])
If iSect1 Is Nothing And iSect2 Is Nothing Then Exit Sub
Select Case Target.Column
Case 1
If Target = 1 Or Target = "" Then Target > IIf(UCase(Target.Offset(0, 4)) = "NON", "", 1): Exit Sub
Case 5
Select Case Target
Case "non"
Target.Offset(0, -4) = "": Exit Sub
Case ""
Target.Offset(0, -4) = 1: Exit Sub
End Select
End Select
End Sub
La valeur de A21 dépend bien de ce qui est contenu dans E21 (vide si A21= "", ou 1 si A21 est "non"), mais je voudrais quand même en plus pouvoir rentrer à la main d'autres valeurs que 1 ou "", et que dans ce cas, la formule SI ne renvoie pas d'erreurs, et ne s'exécute pas. Mon explication est assez claire?
Merci!
-- géjoun
/Enlever l'année pour répondre.../
Bonsoir, pour plus d'explications sur ton souhait, peux-tu préciser si, lorsque tu changes la valeur de E21 ("" ou "non"), tu cellule (A21) doit également changer de valeur? sinon, un petit code : En admettant que tes cellules à modifier soient dans la plage A1:E50, décomposée en 2 plages (iSect1 et iSect2), selon les cellules que tu modifies :
Private Sub Worksheet_Change(ByVal Target As Range) Dim iSect1 As Range, iSect2 As Range
Set iSect1 = Intersect(Target, [a1:a50]) Set iSect2 = Intersect(Target, [e1:e50])
If iSect1 Is Nothing And iSect2 Is Nothing Then Exit Sub
Select Case Target.Column Case 1 If Target = 1 Or Target = "" Then Target > IIf(UCase(Target.Offset(0, 4)) = "NON", "", 1): Exit Sub Case 5 Select Case Target Case "non" Target.Offset(0, -4) = "": Exit Sub Case "" Target.Offset(0, -4) = 1: Exit Sub End Select End Select End Sub