Exécuter une formule en fonction d'un critère

Le
eric
Bonjour,

j'ai une feuille de calcul avec en colonne A des valeurs ( par exemple
"STot" ;"Tot";"sdpx" ).
Pour une ligne donnée, je veux éxecuter dans la colonne N une formule si
pour cette ligne dans la colonne A la valeur est "STot". Par contre si la
valeur indiquée est autre que "STot", je ne veux pas exécuter de formule dans
cette cellule mais pouvoir saisir manuellement un nombre.

Par exemple si en A5, il y a "STot", je veux que en N5 s'exécute une formule
du type = I5/J5. Par contre si en A5, il n y a pas "STot", je veux que la
cellule N5 soit complètement vierge afin que je puisse y saisir manuellement
une valeur.

Merci d'avance de votre aide!
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #19526411
Bonjour.
Si les valeurs de la colonne A son entrées manuellement, mets la macro
suivante dans le code de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
If c.Column = 1 Then
If c.Value = "STot" Then
Application.EnableEvents = False
c.Offset(, 13).Formula = "=I5/J5"
Application.EnableEvents = True
End If
End If
Next c
End Sub

Cordialement.
Daniel

Bonjour,

j'ai une feuille de calcul avec en colonne A des valeurs ( par exemple
"STot" ;"Tot";"sdpx" ...).
Pour une ligne donnée, je veux éxecuter dans la colonne N une formule si
pour cette ligne dans la colonne A la valeur est "STot". Par contre si la
valeur indiquée est autre que "STot", je ne veux pas exécuter de formule dans
cette cellule mais pouvoir saisir manuellement un nombre.

Par exemple si en A5, il y a "STot", je veux que en N5 s'exécute une formule
du type = I5/J5. Par contre si en A5, il n y a pas "STot", je veux que la
cellule N5 soit complètement vierge afin que je puisse y saisir manuellement
une valeur.

Merci d'avance de votre aide!


eric
Le #19529031
Merci,

Par contre le problème, c'est que dans la colonne A, il y a aussi une
formule et non une saisie manuelle


"Daniel.C" a écrit :

Bonjour.
Si les valeurs de la colonne A son entrées manuellement, mets la macro
suivante dans le code de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
If c.Column = 1 Then
If c.Value = "STot" Then
Application.EnableEvents = False
c.Offset(, 13).Formula = "=I5/J5"
Application.EnableEvents = True
End If
End If
Next c
End Sub

Cordialement.
Daniel

> Bonjour,
>
> j'ai une feuille de calcul avec en colonne A des valeurs ( par exemple
> "STot" ;"Tot";"sdpx" ...).
> Pour une ligne donnée, je veux éxecuter dans la colonne N une formule si
> pour cette ligne dans la colonne A la valeur est "STot". Par contre si la
> valeur indiquée est autre que "STot", je ne veux pas exécuter de formule dans
> cette cellule mais pouvoir saisir manuellement un nombre.
>
> Par exemple si en A5, il y a "STot", je veux que en N5 s'exécute une formule
> du type = I5/J5. Par contre si en A5, il n y a pas "STot", je veux que la
> cellule N5 soit complètement vierge afin que je puisse y saisir manuellement
> une valeur.
>
> Merci d'avance de votre aide!





Daniel.C
Le #19530781
Bonjour.
Essaie alors de mettre la macro suivante dans le module feuille, mais
si tu as beaucoup de données en colonne A, ça peut ralentir ton
classeur.
Daniel

Merci,

Par contre le problème, c'est que dans la colonne A, il y a aussi une
formule et non une saisie manuelle


"Daniel.C" a écrit :

Bonjour.
Si les valeurs de la colonne A son entrées manuellement, mets la macro
suivante dans le code de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
If c.Column = 1 Then
If c.Value = "STot" Then
Application.EnableEvents = False
c.Offset(, 13).Formula = "=I5/J5"
Application.EnableEvents = True
End If
End If
Next c
End Sub

Cordialement.
Daniel

Bonjour,

j'ai une feuille de calcul avec en colonne A des valeurs ( par exemple
"STot" ;"Tot";"sdpx" ...).
Pour une ligne donnée, je veux éxecuter dans la colonne N une formule si
pour cette ligne dans la colonne A la valeur est "STot". Par contre si la
valeur indiquée est autre que "STot", je ne veux pas exécuter de formule
dans cette cellule mais pouvoir saisir manuellement un nombre.

Par exemple si en A5, il y a "STot", je veux que en N5 s'exécute une
formule du type = I5/J5. Par contre si en A5, il n y a pas "STot", je veux
que la cellule N5 soit complètement vierge afin que je puisse y saisir
manuellement une valeur.

Merci d'avance de votre aide!









Daniel.C
Le #19530761
Il ppourrait de faire un test sur ce qui, dans la formule détermine la
valeur STot; par exemple :
en A1 : =SI(B1=1;"STot";"")
On peut tester la valeur de B1, si celle-ci est entrée manuellement.
Daniel

Merci,

Par contre le problème, c'est que dans la colonne A, il y a aussi une
formule et non une saisie manuelle


"Daniel.C" a écrit :

Bonjour.
Si les valeurs de la colonne A son entrées manuellement, mets la macro
suivante dans le code de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
If c.Column = 1 Then
If c.Value = "STot" Then
Application.EnableEvents = False
c.Offset(, 13).Formula = "=I5/J5"
Application.EnableEvents = True
End If
End If
Next c
End Sub

Cordialement.
Daniel

Bonjour,

j'ai une feuille de calcul avec en colonne A des valeurs ( par exemple
"STot" ;"Tot";"sdpx" ...).
Pour une ligne donnée, je veux éxecuter dans la colonne N une formule si
pour cette ligne dans la colonne A la valeur est "STot". Par contre si la
valeur indiquée est autre que "STot", je ne veux pas exécuter de formule
dans cette cellule mais pouvoir saisir manuellement un nombre.

Par exemple si en A5, il y a "STot", je veux que en N5 s'exécute une
formule du type = I5/J5. Par contre si en A5, il n y a pas "STot", je veux
que la cellule N5 soit complètement vierge afin que je puisse y saisir
manuellement une valeur.

Merci d'avance de votre aide!









Daniel.C
Le #19530741
Je voulais dire :
Il pourrait être intéressant de faire un test sur ce qui, dans la
formule détermine la valeur STot; par exemple :
en A1 : =SI(B1=1;"STot";"")
On peut tester la valeur de B1, si celle-ci est entrée manuellement.
Daniel


Il ppourrait de faire un test sur ce qui, dans la formule détermine la valeur
STot; par exemple :
en A1 : =SI(B1=1;"STot";"")
On peut tester la valeur de B1, si celle-ci est entrée manuellement.
Daniel

Merci,

Par contre le problème, c'est que dans la colonne A, il y a aussi une
formule et non une saisie manuelle


"Daniel.C" a écrit :

Bonjour.
Si les valeurs de la colonne A son entrées manuellement, mets la macro
suivante dans le code de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
If c.Column = 1 Then
If c.Value = "STot" Then
Application.EnableEvents = False
c.Offset(, 13).Formula = "=I5/J5"
Application.EnableEvents = True
End If
End If
Next c
End Sub

Cordialement.
Daniel

Bonjour,

j'ai une feuille de calcul avec en colonne A des valeurs ( par exemple
"STot" ;"Tot";"sdpx" ...). Pour une ligne donnée, je veux éxecuter dans
la colonne N une formule si pour cette ligne dans la colonne A la valeur
est "STot". Par contre si la valeur indiquée est autre que "STot", je ne
veux pas exécuter de formule dans cette cellule mais pouvoir saisir
manuellement un nombre.

Par exemple si en A5, il y a "STot", je veux que en N5 s'exécute une
formule du type = I5/J5. Par contre si en A5, il n y a pas "STot", je
veux que la cellule N5 soit complètement vierge afin que je puisse y
saisir manuellement une valeur.

Merci d'avance de votre aide!










eric
Le #19532041
En fait pour que la cellule An affiche "STot", il faut que les cellules Bn et
Cn+1 soient entre autres toutes les 2 non vides. Par exemple, si B15 et C16
sont non vides et que la formule ne détécte pas de critères d'erreur, alors
A14 est égal à "STot".

ci-dessous, pour info la formule que j'ai en A14:

=SI(OU(OU(ESTVIDE(J14);ESTVIDE(N14));ET(B14 Tot";SI(ET(B14<>0;ESTVIDE(DECALER(C14;1;0;1;1)));"Tot";SI(ET(ESTVIDE(B14)*ESTVIDE(C14));"Vide";"Bizarre")))))

Merci beaucoup

"Daniel.C" a écrit :

Je voulais dire :
Il pourrait être intéressant de faire un test sur ce qui, dans la
formule détermine la valeur STot; par exemple :
en A1 : =SI(B1=1;"STot";"")
On peut tester la valeur de B1, si celle-ci est entrée manuellement.
Daniel


> Il ppourrait de faire un test sur ce qui, dans la formule détermine la valeur
> STot; par exemple :
> en A1 : =SI(B1=1;"STot";"")
> On peut tester la valeur de B1, si celle-ci est entrée manuellement.
> Daniel
>
>> Merci,
>>
>> Par contre le problème, c'est que dans la colonne A, il y a aussi une
>> formule et non une saisie manuelle
>>
>>
>> "Daniel.C" a écrit :
>>
>>> Bonjour.
>>> Si les valeurs de la colonne A son entrées manuellement, mets la macro
>>> suivante dans le code de la feuille :
>>>
>>> Private Sub Worksheet_Change(ByVal Target As Range)
>>> Dim c As Range
>>> For Each c In Target
>>> If c.Column = 1 Then
>>> If c.Value = "STot" Then
>>> Application.EnableEvents = False
>>> c.Offset(, 13).Formula = "=I5/J5"
>>> Application.EnableEvents = True
>>> End If
>>> End If
>>> Next c
>>> End Sub
>>>
>>> Cordialement.
>>> Daniel
>>>
>>>> Bonjour,
>>>>
>>>> j'ai une feuille de calcul avec en colonne A des valeurs ( par exemple
>>>> "STot" ;"Tot";"sdpx" ...). Pour une ligne donnée, je veux éxecuter dans
>>>> la colonne N une formule si pour cette ligne dans la colonne A la valeur
>>>> est "STot". Par contre si la valeur indiquée est autre que "STot", je ne
>>>> veux pas exécuter de formule dans cette cellule mais pouvoir saisir
>>>> manuellement un nombre.
>>>>
>>>> Par exemple si en A5, il y a "STot", je veux que en N5 s'exécute une
>>>> formule du type = I5/J5. Par contre si en A5, il n y a pas "STot", je
>>>> veux que la cellule N5 soit complètement vierge afin que je puisse y
>>>> saisir manuellement une valeur.
>>>>
>>>> Merci d'avance de votre aide!
>>>
>>>





Daniel.C
Le #19533101
Essaie :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
If c.Column If c.Column = 2 Then
c.Offset(, 12) = ""
Else
c.Offset(-1, 11) = ""
End If
If (c.Column = 2 And c If Not IsError(c.Offset(-1)) Then
Application.EnableEvents = False
c.Offset(, 12).Formula = "=I" & c.Row & "/J" & c.Row
Application.EnableEvents = True
Else
c.Offset(, 12) = ""
End If
ElseIf (c.Column = 3 And c If Not IsError(c.Offset(-1, -2)) Then
Application.EnableEvents = False
c.Offset(-1, 11).Formula = "=I" & c.Row & "/J" & c.Row
Application.EnableEvents = True
Else
c.Offset(-1, 11) = ""
End If
End If
Next c
End Sub

Cordialement.
Daniel

En fait pour que la cellule An affiche "STot", il faut que les cellules Bn et
Cn+1 soient entre autres toutes les 2 non vides. Par exemple, si B15 et C16
sont non vides et que la formule ne détécte pas de critères d'erreur, alors
A14 est égal à "STot".

ci-dessous, pour info la formule que j'ai en A14:

=SI(OU(OU(ESTVIDE(J14);ESTVIDE(N14));ET(B14 Tot";SI(ET(B14<>0;ESTVIDE(DECALER(C14;1;0;1;1)));"Tot";SI(ET(ESTVIDE(B14)*ESTVIDE(C14));"Vide";"Bizarre")))))

Merci beaucoup

"Daniel.C" a écrit :

Je voulais dire :
Il pourrait être intéressant de faire un test sur ce qui, dans la
formule détermine la valeur STot; par exemple :
en A1 : =SI(B1=1;"STot";"")
On peut tester la valeur de B1, si celle-ci est entrée manuellement.
Daniel


Il ppourrait de faire un test sur ce qui, dans la formule détermine la
valeur STot; par exemple :
en A1 : =SI(B1=1;"STot";"")
On peut tester la valeur de B1, si celle-ci est entrée manuellement.
Daniel

Merci,

Par contre le problème, c'est que dans la colonne A, il y a aussi une
formule et non une saisie manuelle


"Daniel.C" a écrit :

Bonjour.
Si les valeurs de la colonne A son entrées manuellement, mets la macro
suivante dans le code de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
If c.Column = 1 Then
If c.Value = "STot" Then
Application.EnableEvents = False
c.Offset(, 13).Formula = "=I5/J5"
Application.EnableEvents = True
End If
End If
Next c
End Sub

Cordialement.
Daniel

Bonjour,

j'ai une feuille de calcul avec en colonne A des valeurs ( par exemple
"STot" ;"Tot";"sdpx" ...). Pour une ligne donnée, je veux éxecuter dans
la colonne N une formule si pour cette ligne dans la colonne A la valeur
est "STot". Par contre si la valeur indiquée est autre que "STot", je ne
veux pas exécuter de formule dans cette cellule mais pouvoir saisir
manuellement un nombre.

Par exemple si en A5, il y a "STot", je veux que en N5 s'exécute une
formule du type = I5/J5. Par contre si en A5, il n y a pas "STot", je
veux que la cellule N5 soit complètement vierge afin que je puisse y
saisir manuellement une valeur.

Merci d'avance de votre aide!

















gmlsteph
Le #19532671
Bonjour,
je remets car visiblement tu n'as pas vu ou pas c'est moi qui ai pas
compris
Si une cellule contient une formule elle n'est pas vide et une
formule n'execute pas, elle renvoie un résultat c'est tout!

Donc au lieu de saisir en N là ou tu as ta formule tu saisira le cas
échéant en P5 par exemple et cela donne ceci:

=si(A5="sTot";I5/K5 ;P5)

et cela fait amha indirectement ce que tu demandais sans besoin de
code !

Cordialement.

--
lSteph



On 10 juin, 13:35, eric
En fait pour que la cellule An affiche "STot", il faut que les cellules B n et
Cn+1 soient entre autres toutes les 2 non vides. Par exemple, si B15 et C 16
sont non vides et que la formule ne détécte pas de critères d'erreu r, alors
A14 est égal à "STot".

ci-dessous, pour info la formule que j'ai en A14:

=SI(OU(OU(ESTVIDE(J14);ESTVIDE(N14));ET(B14 Tot";SI(ET(B14<>0;ESTVIDE(DECALER(C14;1;0;1;1)));"Tot";SI(ET(ESTVIDE(B14) *E­STVIDE(C14));"Vide";"Bizarre")))))

Merci beaucoup

"Daniel.C" a écrit :



> Je voulais dire :
> Il pourrait être intéressant de faire un test sur ce qui, dans la
> formule détermine la valeur STot; par exemple :
> en A1 : =SI(B1=1;"STot";"")
> On peut tester la valeur de B1, si celle-ci est entrée manuellement.
> Daniel

> > Il ppourrait de faire un test sur ce qui, dans la formule détermine la valeur
> > STot; par exemple :
> > en A1 : =SI(B1=1;"STot";"")
> > On peut tester la valeur de B1, si celle-ci est entrée manuellement .
> > Daniel

> >> Merci,

> >> Par contre le problème, c'est que dans la colonne A, il y a aussi une
> >> formule et non une saisie manuelle

> >> "Daniel.C" a écrit :

> >>> Bonjour.
> >>> Si les valeurs de la colonne A son entrées manuellement, mets la macro
> >>> suivante dans le code de la feuille :

> >>> Private Sub Worksheet_Change(ByVal Target As Range)
> >>> Dim c As Range
> >>> For Each c In Target
> >>>     If c.Column = 1 Then
> >>>         If c.Value = "STot" Then
> >>>             Application.EnableEvents = False
> >>>             c.Offset(, 13).Formula = "=I5/J5"
> >>>             Application.EnableEvents = True
> >>>         End If
> >>>     End If
> >>> Next c
> >>> End Sub

> >>> Cordialement.
> >>> Daniel

> >>>> Bonjour,

> >>>> j'ai une feuille de calcul avec en colonne A des valeurs ( par exe mple
> >>>> "STot" ;"Tot";"sdpx" ...). Pour une ligne donnée, je veux éxec uter dans
> >>>> la colonne N une formule si pour cette ligne dans la colonne A la valeur
> >>>> est "STot". Par contre si la valeur indiquée est autre que "STot ", je ne
> >>>> veux pas exécuter de formule dans  cette cellule mais pouvoir saisir
> >>>> manuellement un nombre.

> >>>> Par exemple si en A5, il y a "STot", je veux que en N5 s'exécute une
> >>>> formule  du type = I5/J5. Par contre si en A5, il n y a pas "S Tot", je
> >>>> veux que la  cellule N5 soit complètement vierge afin que je p uisse y
> >>>> saisir manuellement  une valeur.

> >>>> Merci d'avance de votre aide!- Masquer le texte des messages pré cédents -

- Afficher le texte des messages précédents -


eric
Le #19536981
merci bcp ça marche en faisant un mix entre la première et la deuxième macro
Merci beaucoup

"Daniel.C" a écrit :

Essaie :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
If c.Column If c.Column = 2 Then
c.Offset(, 12) = ""
Else
c.Offset(-1, 11) = ""
End If
If (c.Column = 2 And c If Not IsError(c.Offset(-1)) Then
Application.EnableEvents = False
c.Offset(, 12).Formula = "=I" & c.Row & "/J" & c.Row
Application.EnableEvents = True
Else
c.Offset(, 12) = ""
End If
ElseIf (c.Column = 3 And c If Not IsError(c.Offset(-1, -2)) Then
Application.EnableEvents = False
c.Offset(-1, 11).Formula = "=I" & c.Row & "/J" & c.Row
Application.EnableEvents = True
Else
c.Offset(-1, 11) = ""
End If
End If
Next c
End Sub

Cordialement.
Daniel

> En fait pour que la cellule An affiche "STot", il faut que les cellules Bn et
> Cn+1 soient entre autres toutes les 2 non vides. Par exemple, si B15 et C16
> sont non vides et que la formule ne détécte pas de critères d'erreur, alors
> A14 est égal à "STot".
>
> ci-dessous, pour info la formule que j'ai en A14:
>
> =SI(OU(OU(ESTVIDE(J14);ESTVIDE(N14));ET(B14 > Tot";SI(ET(B14<>0;ESTVIDE(DECALER(C14;1;0;1;1)));"Tot";SI(ET(ESTVIDE(B14)*ESTVIDE(C14));"Vide";"Bizarre")))))
>
> Merci beaucoup
>
> "Daniel.C" a écrit :
>
>> Je voulais dire :
>> Il pourrait être intéressant de faire un test sur ce qui, dans la
>> formule détermine la valeur STot; par exemple :
>> en A1 : =SI(B1=1;"STot";"")
>> On peut tester la valeur de B1, si celle-ci est entrée manuellement.
>> Daniel
>>
>>
>>> Il ppourrait de faire un test sur ce qui, dans la formule détermine la
>>> valeur STot; par exemple :
>>> en A1 : =SI(B1=1;"STot";"")
>>> On peut tester la valeur de B1, si celle-ci est entrée manuellement.
>>> Daniel
>>>
>>>> Merci,
>>>>
>>>> Par contre le problème, c'est que dans la colonne A, il y a aussi une
>>>> formule et non une saisie manuelle
>>>>
>>>>
>>>> "Daniel.C" a écrit :
>>>>
>>>>> Bonjour.
>>>>> Si les valeurs de la colonne A son entrées manuellement, mets la macro
>>>>> suivante dans le code de la feuille :
>>>>>
>>>>> Private Sub Worksheet_Change(ByVal Target As Range)
>>>>> Dim c As Range
>>>>> For Each c In Target
>>>>> If c.Column = 1 Then
>>>>> If c.Value = "STot" Then
>>>>> Application.EnableEvents = False
>>>>> c.Offset(, 13).Formula = "=I5/J5"
>>>>> Application.EnableEvents = True
>>>>> End If
>>>>> End If
>>>>> Next c
>>>>> End Sub
>>>>>
>>>>> Cordialement.
>>>>> Daniel
>>>>>
>>>>>> Bonjour,
>>>>>>
>>>>>> j'ai une feuille de calcul avec en colonne A des valeurs ( par exemple
>>>>>> "STot" ;"Tot";"sdpx" ...). Pour une ligne donnée, je veux éxecuter dans
>>>>>> la colonne N une formule si pour cette ligne dans la colonne A la valeur
>>>>>> est "STot". Par contre si la valeur indiquée est autre que "STot", je ne
>>>>>> veux pas exécuter de formule dans cette cellule mais pouvoir saisir
>>>>>> manuellement un nombre.
>>>>>>
>>>>>> Par exemple si en A5, il y a "STot", je veux que en N5 s'exécute une
>>>>>> formule du type = I5/J5. Par contre si en A5, il n y a pas "STot", je
>>>>>> veux que la cellule N5 soit complètement vierge afin que je puisse y
>>>>>> saisir manuellement une valeur.
>>>>>>
>>>>>> Merci d'avance de votre aide!
>>>>>
>>>>>
>>
>>
>>





Publicité
Poster une réponse
Anonyme