validatiob liste avec formule

Le
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
Questions / Réponses high-tech
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 #18708051
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


garnote
Le #18708291
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"
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



FabriceR
Le #18708461
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" %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






michdenis
Le #18709011
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" :
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" %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






FabriceR
Le #18709391
"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"
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" 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" %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









Daniel.C
Le #18712651
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"
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" 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" %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











FabriceR
Le #18715331
Merci bcp,

C'est bien ce que je cherchais

"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"
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" 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" %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















Publicité
Poster une réponse
Anonyme