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

validatiob liste avec formule

7 réponses
Avatar
FabriceR
Bonjour,

Est il possible avec une liste de validation d'obtenir une formule dans la
cellule.

Par exemple en AD3 j'aimerais une liste qui me donne le choix entre "oui"
"non" et "mini" (jusque là ok)
Mais si on choisi "oui", est il possible que la formule "=g3+(g3/4)"
s'inscrive

J'ai essayé avec decaler, equiv. mais je n'y arrive pas.
Merci de votre aide

7 réponses

Avatar
Daniel.C
Bonjour.
Ajoute cette macro dans le module feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$3" Then
If Target.Value = "oui" Then
Application.EnableEvents = False
Target.Formula = "=g3+(g3/4)"
Application.EnableEvents = True
End If
End If
End Sub

Dans cet exemple, E3 est la cellule considérée. Modifie la ligne :
If Target.Address = "$E$3" Then
selon tes besoins.
PS. Pas sûr que cela fonctionne avec une version antérieure à XL2003.
Cordialement.
Daniel

Bonjour,

Est il possible avec une liste de validation d'obtenir une formule dans la
cellule.

Par exemple en AD3 j'aimerais une liste qui me donne le choix entre "oui"
"non" et "mini" (jusque là ok)
Mais si on choisi "oui", est il possible que la formule "=g3+(g3/4)"
s'inscrive

J'ai essayé avec decaler, equiv. mais je n'y arrive pas.
Merci de votre aide


Avatar
garnote
Salut,

Par exemple, si tu veux que quelque chose entre en AF3
et que ta formule entre en AD3, essaie ceci :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$AD$3" Then
Set c = Range("AF3")
Select Case Target.Value
Case "mini": c.Value = "Bonjour"
Case "non": c.Value = "Bonsoir"
Case "oui": Target.Formula = "=G3+(G3/4)"
End Select
End If
End Sub

Serge

"FabriceR" a écrit dans le message de news:
Bonjour,

Est il possible avec une liste de validation d'obtenir une formule dans la cellule.

Par exemple en AD3 j'aimerais une liste qui me donne le choix entre "oui" "non" et "mini" (jusque là ok)
Mais si on choisi "oui", est il possible que la formule "=g3+(g3/4)" s'inscrive

J'ai essayé avec decaler, equiv. mais je n'y arrive pas.
Merci de votre aide



Avatar
FabriceR
Merci

Donc par la liste de validation c'est pas possible ??

du coup est il possible de remplacer AD3 par la colonne AD ?? Je n'y arrive
pas.
Car en réalité j'ai bcp de lignes dans ce cas là et pas seulement AD3. donc
il faut que je modifie un peu la macro mais je n'arrive pas à mettre la
colonne en target.adresse
Et si je change la ligne Target.Formula en Target.FormulaR1C1 ca marchera ?

Merci
Par contre je n'ai pas besoin d'inscrire la formule ailleurs que dans la
colonne AD






"Daniel.C" a écrit dans le message de news:
%23vrl%
Bonjour.
Ajoute cette macro dans le module feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$3" Then
If Target.Value = "oui" Then
Application.EnableEvents = False
Target.Formula = "=g3+(g3/4)"
Application.EnableEvents = True
End If
End If
End Sub

Dans cet exemple, E3 est la cellule considérée. Modifie la ligne :
If Target.Address = "$E$3" Then
selon tes besoins.
PS. Pas sûr que cela fonctionne avec une version antérieure à XL2003.
Cordialement.
Daniel

Bonjour,

Est il possible avec une liste de validation d'obtenir une formule dans
la cellule.

Par exemple en AD3 j'aimerais une liste qui me donne le choix entre "oui"
"non" et "mini" (jusque là ok)
Mais si on choisi "oui", est il possible que la formule "=g3+(g3/4)"
s'inscrive

J'ai essayé avec decaler, equiv. mais je n'y arrive pas.
Merci de votre aide






Avatar
michdenis
Private Sub Worksheet_Change(ByVal Target As Range)
Si tu saisis "oui" dans la colonne une cellule de la colonne E
en F sur la même ligne s'inscrira la formule désirée.

Si cela te convient tu adaptes les plages de cellules qui sied ton application

If Not Intersect(Target, Range("E:E")) Is Nothing Then
If LCase(Target.Value) = "oui" Then
Application.EnableEvents = False
Target.Offset(, 1).Formula = "=G" & Target.Row & _
"+(G" & Target.Row & ")/4"
Application.EnableEvents = True
End If
End If
End Sub




"FabriceR" a écrit dans le message de groupe de discussion
:
Merci

Donc par la liste de validation c'est pas possible ??

du coup est il possible de remplacer AD3 par la colonne AD ?? Je n'y arrive
pas.
Car en réalité j'ai bcp de lignes dans ce cas là et pas seulement AD3. donc
il faut que je modifie un peu la macro mais je n'arrive pas à mettre la
colonne en target.adresse
Et si je change la ligne Target.Formula en Target.FormulaR1C1 ca marchera ?

Merci
Par contre je n'ai pas besoin d'inscrire la formule ailleurs que dans la
colonne AD






"Daniel.C" a écrit dans le message de news:
%23vrl%
Bonjour.
Ajoute cette macro dans le module feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$3" Then
If Target.Value = "oui" Then
Application.EnableEvents = False
Target.Formula = "=g3+(g3/4)"
Application.EnableEvents = True
End If
End If
End Sub

Dans cet exemple, E3 est la cellule considérée. Modifie la ligne :
If Target.Address = "$E$3" Then
selon tes besoins.
PS. Pas sûr que cela fonctionne avec une version antérieure à XL2003.
Cordialement.
Daniel

Bonjour,

Est il possible avec une liste de validation d'obtenir une formule dans
la cellule.

Par exemple en AD3 j'aimerais une liste qui me donne le choix entre "oui"
"non" et "mini" (jusque là ok)
Mais si on choisi "oui", est il possible que la formule "=g3+(g3/4)"
s'inscrive

J'ai essayé avec decaler, equiv. mais je n'y arrive pas.
Merci de votre aide






Avatar
FabriceR
"Si tu saisis "oui" dans la colonne une cellule de la colonne E
en F sur la même ligne s'inscrira la formule désirée"

Non en fait j'aimerais que tout se passe dans la meme colonne, c'est a dire
que dans la cellule où je choisi "oui", cela se transforme en formule.
Un peu comme le code de Daniel.C mais la target doit etre la colonne et non
une seule cellule (E3 dans son exemple) mais je n'arrive pas à le modifier.

Merci de ton aide




"michdenis" a écrit dans le message de news:

Private Sub Worksheet_Change(ByVal Target As Range)
Si tu saisis "oui" dans la colonne une cellule de la colonne E
en F sur la même ligne s'inscrira la formule désirée.

Si cela te convient tu adaptes les plages de cellules qui sied ton
application

If Not Intersect(Target, Range("E:E")) Is Nothing Then
If LCase(Target.Value) = "oui" Then
Application.EnableEvents = False
Target.Offset(, 1).Formula = "=G" & Target.Row & _
"+(G" & Target.Row & ")/4"
Application.EnableEvents = True
End If
End If
End Sub




"FabriceR" a écrit dans le message de
groupe de discussion
:
Merci

Donc par la liste de validation c'est pas possible ??

du coup est il possible de remplacer AD3 par la colonne AD ?? Je n'y
arrive
pas.
Car en réalité j'ai bcp de lignes dans ce cas là et pas seulement AD3.
donc
il faut que je modifie un peu la macro mais je n'arrive pas à mettre la
colonne en target.adresse
Et si je change la ligne Target.Formula en Target.FormulaR1C1 ca marchera
?

Merci
Par contre je n'ai pas besoin d'inscrire la formule ailleurs que dans la
colonne AD






"Daniel.C" a écrit dans le message de news:
%23vrl%
Bonjour.
Ajoute cette macro dans le module feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$3" Then
If Target.Value = "oui" Then
Application.EnableEvents = False
Target.Formula = "=g3+(g3/4)"
Application.EnableEvents = True
End If
End If
End Sub

Dans cet exemple, E3 est la cellule considérée. Modifie la ligne :
If Target.Address = "$E$3" Then
selon tes besoins.
PS. Pas sûr que cela fonctionne avec une version antérieure à XL2003.
Cordialement.
Daniel

Bonjour,

Est il possible avec une liste de validation d'obtenir une formule dans
la cellule.

Par exemple en AD3 j'aimerais une liste qui me donne le choix entre
"oui"
"non" et "mini" (jusque là ok)
Mais si on choisi "oui", est il possible que la formule "=g3+(g3/4)"
s'inscrive

J'ai essayé avec decaler, equiv. mais je n'y arrive pas.
Merci de votre aide









Avatar
Daniel.C
Pour la colonne E :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 5 Then
If Target.Value = "oui" Then
Application.EnableEvents = False
Target.Formula = "=g" & Target.Row & "+(g" & Target.Row & "/4)"
Application.EnableEvents = True
End If
End If
End Sub

Daniel

"Si tu saisis "oui" dans la colonne une cellule de la colonne E
en F sur la même ligne s'inscrira la formule désirée"

Non en fait j'aimerais que tout se passe dans la meme colonne, c'est a dire
que dans la cellule où je choisi "oui", cela se transforme en formule.
Un peu comme le code de Daniel.C mais la target doit etre la colonne et non
une seule cellule (E3 dans son exemple) mais je n'arrive pas à le modifier.

Merci de ton aide




"michdenis" a écrit dans le message de news:

Private Sub Worksheet_Change(ByVal Target As Range)
Si tu saisis "oui" dans la colonne une cellule de la colonne E
en F sur la même ligne s'inscrira la formule désirée.

Si cela te convient tu adaptes les plages de cellules qui sied ton
application

If Not Intersect(Target, Range("E:E")) Is Nothing Then
If LCase(Target.Value) = "oui" Then
Application.EnableEvents = False
Target.Offset(, 1).Formula = "=G" & Target.Row & _
"+(G" & Target.Row & ")/4"
Application.EnableEvents = True
End If
End If
End Sub




"FabriceR" a écrit dans le message de
groupe de discussion
:
Merci

Donc par la liste de validation c'est pas possible ??

du coup est il possible de remplacer AD3 par la colonne AD ?? Je n'y arrive
pas.
Car en réalité j'ai bcp de lignes dans ce cas là et pas seulement AD3. donc
il faut que je modifie un peu la macro mais je n'arrive pas à mettre la
colonne en target.adresse
Et si je change la ligne Target.Formula en Target.FormulaR1C1 ca marchera ?

Merci
Par contre je n'ai pas besoin d'inscrire la formule ailleurs que dans la
colonne AD






"Daniel.C" a écrit dans le message de news:
%23vrl%
Bonjour.
Ajoute cette macro dans le module feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$3" Then
If Target.Value = "oui" Then
Application.EnableEvents = False
Target.Formula = "=g3+(g3/4)"
Application.EnableEvents = True
End If
End If
End Sub

Dans cet exemple, E3 est la cellule considérée. Modifie la ligne :
If Target.Address = "$E$3" Then
selon tes besoins.
PS. Pas sûr que cela fonctionne avec une version antérieure à XL2003.
Cordialement.
Daniel

Bonjour,

Est il possible avec une liste de validation d'obtenir une formule dans
la cellule.

Par exemple en AD3 j'aimerais une liste qui me donne le choix entre "oui"
"non" et "mini" (jusque là ok)
Mais si on choisi "oui", est il possible que la formule "=g3+(g3/4)"
s'inscrive

J'ai essayé avec decaler, equiv. mais je n'y arrive pas.
Merci de votre aide











Avatar
FabriceR
Merci bcp,

C'est bien ce que je cherchais

"Daniel.C" a écrit dans le message de news:

Pour la colonne E :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 5 Then
If Target.Value = "oui" Then
Application.EnableEvents = False
Target.Formula = "=g" & Target.Row & "+(g" & Target.Row & "/4)"
Application.EnableEvents = True
End If
End If
End Sub

Daniel

"Si tu saisis "oui" dans la colonne une cellule de la colonne E
en F sur la même ligne s'inscrira la formule désirée"

Non en fait j'aimerais que tout se passe dans la meme colonne, c'est a
dire que dans la cellule où je choisi "oui", cela se transforme en
formule.
Un peu comme le code de Daniel.C mais la target doit etre la colonne et
non une seule cellule (E3 dans son exemple) mais je n'arrive pas à le
modifier.

Merci de ton aide




"michdenis" a écrit dans le message de news:

Private Sub Worksheet_Change(ByVal Target As Range)
Si tu saisis "oui" dans la colonne une cellule de la colonne E
en F sur la même ligne s'inscrira la formule désirée.

Si cela te convient tu adaptes les plages de cellules qui sied ton
application

If Not Intersect(Target, Range("E:E")) Is Nothing Then
If LCase(Target.Value) = "oui" Then
Application.EnableEvents = False
Target.Offset(, 1).Formula = "=G" & Target.Row & _
"+(G" & Target.Row & ")/4"
Application.EnableEvents = True
End If
End If
End Sub




"FabriceR" a écrit dans le message de
groupe de discussion
:
Merci

Donc par la liste de validation c'est pas possible ??

du coup est il possible de remplacer AD3 par la colonne AD ?? Je n'y
arrive
pas.
Car en réalité j'ai bcp de lignes dans ce cas là et pas seulement AD3.
donc
il faut que je modifie un peu la macro mais je n'arrive pas à mettre la
colonne en target.adresse
Et si je change la ligne Target.Formula en Target.FormulaR1C1 ca
marchera ?

Merci
Par contre je n'ai pas besoin d'inscrire la formule ailleurs que dans la
colonne AD






"Daniel.C" a écrit dans le message de news:
%23vrl%
Bonjour.
Ajoute cette macro dans le module feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$3" Then
If Target.Value = "oui" Then
Application.EnableEvents = False
Target.Formula = "=g3+(g3/4)"
Application.EnableEvents = True
End If
End If
End Sub

Dans cet exemple, E3 est la cellule considérée. Modifie la ligne :
If Target.Address = "$E$3" Then
selon tes besoins.
PS. Pas sûr que cela fonctionne avec une version antérieure à XL2003.
Cordialement.
Daniel

Bonjour,

Est il possible avec une liste de validation d'obtenir une formule
dans
la cellule.

Par exemple en AD3 j'aimerais une liste qui me donne le choix entre
"oui"
"non" et "mini" (jusque là ok)
Mais si on choisi "oui", est il possible que la formule "=g3+(g3/4)"
s'inscrive

J'ai essayé avec decaler, equiv. mais je n'y arrive pas.
Merci de votre aide