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

Liste déroulante avec conditions dans une macro

5 réponses
Avatar
Maïa
Bonjour,

Je souhaite cr=E9er via une macro une premi=E8re liste d=E9roulante en
colonne F puis une deuxi=E8me en colonne G. La premi=E8re liste d=E9roulante=

est une liste d=E9roulante classique faisant appel =E0 une plage de
cellule nomm=E9e. Pour la seconde liste, je souhaiterais que la liste de
choix qui s'affiche dans la cellule soit conditionn=E9e par le choix
fait en colonne F.

Manuellement j'arrive =E0 cr=E9er cette liste d=E9roulante avec condition en=

tapant la formule suivante dans Donn=E9es/Validation/donn=E9es source :

=3DSI(F2=3D"CREMEUX";CREMEUX;AUTRES) o=F9 CREMEUX et AUTRES sont deux plages=

de cellules nomm=E9es.

Je suis pass=E9e par l'enregistreur VB pour avoir acc=E8s au code
correspondant et j'obiens =E7a :

With Selection.Validation
.Delete
.Add Type:=3DxlValidateList, AlertStyle:=3DxlValidAlertStop,
Operator:=3D _
xlBetween, Formula1:=3D"=3DSI(F2=3D""CREMEUX"";CREMEUX;AUTRES)"
.IgnoreBlank =3D True
.InCellDropdown =3D True
.InputTitle =3D ""
.ErrorTitle =3D ""
.InputMessage =3D ""
.ErrorMessage =3D ""
.ShowInput =3D True
.ShowError =3D True
End With

Mon probl=E8me c'est que je souhaiterais que la r=E9f=E9rence F2 pr=E9sente
dans la formule soit une r=E9f=E9rence en RC ou une r=E9f=E9rence que je
puisse coder avec des variables ligne et colonne et non une r=E9f=E9rence
fig=E9e.

Quelqu'un a-t-il une piste pour cr=E9er cette liste avec conditions dans
une macro ?

5 réponses

Avatar
Daniel.C
Bonjour.
Sans l'avoir testé,
Private Sub CommandButton1_Click()
If IsNumeric(Me.TextBox1.Value) Then
If [A1] = "" Then
Cells(1, 1) = Me.TextBox1.Value
Else
Cells([A65536].End(xlUp).Row + 1, 1) = _
Me.TextBox1.Value
End If
Unload Me
Else
MsgBox "Erreur de saisie"
End If
End Sub

"Maïa" a écrit dans le message de news:

Bonjour,

Je souhaite créer via une macro une première liste déroulante en
colonne F puis une deuxième en colonne G. La première liste déroulante
est une liste déroulante classique faisant appel à une plage de
cellule nommée. Pour la seconde liste, je souhaiterais que la liste de
choix qui s'affiche dans la cellule soit conditionnée par le choix
fait en colonne F.

Manuellement j'arrive à créer cette liste déroulante avec condition en
tapant la formule suivante dans Données/Validation/données source :

=SI(F2="CREMEUX";CREMEUX;AUTRES) où CREMEUX et AUTRES sont deux plages
de cellules nommées.

Je suis passée par l'enregistreur VB pour avoir accès au code
correspondant et j'obiens ça :

With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,
Operator:= _
xlBetween, Formula1:="=SI(F2=""CREMEUX"";CREMEUX;AUTRES)"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With

Mon problème c'est que je souhaiterais que la référence F2 présente
dans la formule soit une référence en RC ou une référence que je
puisse coder avec des variables ligne et colonne et non une référence
figée.

Quelqu'un a-t-il une piste pour créer cette liste avec conditions dans
une macro ?
Avatar
Daniel.C
Peste, encore une erreur de post (et de copier / coller), ça s'aggrave !
Daniel
"Maïa" a écrit dans le message de news:

Bonjour,

Je souhaite créer via une macro une première liste déroulante en
colonne F puis une deuxième en colonne G. La première liste déroulante
est une liste déroulante classique faisant appel à une plage de
cellule nommée. Pour la seconde liste, je souhaiterais que la liste de
choix qui s'affiche dans la cellule soit conditionnée par le choix
fait en colonne F.

Manuellement j'arrive à créer cette liste déroulante avec condition en
tapant la formule suivante dans Données/Validation/données source :

=SI(F2="CREMEUX";CREMEUX;AUTRES) où CREMEUX et AUTRES sont deux plages
de cellules nommées.

Je suis passée par l'enregistreur VB pour avoir accès au code
correspondant et j'obiens ça :

With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,
Operator:= _
xlBetween, Formula1:="=SI(F2=""CREMEUX"";CREMEUX;AUTRES)"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With

Mon problème c'est que je souhaiterais que la référence F2 présente
dans la formule soit une référence en RC ou une référence que je
puisse coder avec des variables ligne et colonne et non une référence
figée.

Quelqu'un a-t-il une piste pour créer cette liste avec conditions dans
une macro ?
Avatar
Daniel.C
xlBetween, Formula1:="=SI(" & Cells(ligne, colonne) &
"=""CREMEUX"";CREMEUX;AUTRES)"
devrait faire l'affaire.
Daniel
"Maïa" a écrit dans le message de news:

Bonjour,

Je souhaite créer via une macro une première liste déroulante en
colonne F puis une deuxième en colonne G. La première liste déroulante
est une liste déroulante classique faisant appel à une plage de
cellule nommée. Pour la seconde liste, je souhaiterais que la liste de
choix qui s'affiche dans la cellule soit conditionnée par le choix
fait en colonne F.

Manuellement j'arrive à créer cette liste déroulante avec condition en
tapant la formule suivante dans Données/Validation/données source :

=SI(F2="CREMEUX";CREMEUX;AUTRES) où CREMEUX et AUTRES sont deux plages
de cellules nommées.

Je suis passée par l'enregistreur VB pour avoir accès au code
correspondant et j'obiens ça :

With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,
Operator:= _
xlBetween, Formula1:="=SI(F2=""CREMEUX"";CREMEUX;AUTRES)"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With

Mon problème c'est que je souhaiterais que la référence F2 présente
dans la formule soit une référence en RC ou une référence que je
puisse coder avec des variables ligne et colonne et non une référence
figée.

Quelqu'un a-t-il une piste pour créer cette liste avec conditions dans
une macro ?
Avatar
JB
Bonjour,

http://cjoint.com/?ddopybi0I5

Sub xx()
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,
Operator:= _
xlBetween, Formula1:="=IF(" & Cells(2, 6).Address &
"=""CREMEUX"",CREMEUX,AUTRES)"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub


JB
On 3 mar, 11:55, "Maïa" wrote:
Bonjour,

Je souhaite créer via une macro une première liste déroulante en
colonne F puis une deuxième en colonne G. La première liste déroulan te
est une liste déroulante classique faisant appel à une plage de
cellule nommée. Pour la seconde liste, je souhaiterais que la liste de
choix qui s'affiche dans la cellule soit conditionnée par le choix
fait en colonne F.

Manuellement j'arrive à créer cette liste déroulante avec condition en
tapant la formule suivante dans Données/Validation/données source :

=SI(F2="CREMEUX";CREMEUX;AUTRES) où CREMEUX et AUTRES sont deux plag es
de cellules nommées.

Je suis passée par l'enregistreur VB pour avoir accès au code
correspondant et j'obiens ça :

    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertSto p,
Operator:= _
        xlBetween, Formula1:="=SI(F2=""CREMEUX"";CREMEUX;AUT RES)"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With

Mon problème c'est que je souhaiterais que la référence F2 présent e
dans la formule soit une référence en RC ou une référence que je
puisse coder avec des variables ligne et colonne et non une référence
figée.

Quelqu'un a-t-il une piste pour créer cette liste avec conditions dans
une macro ?


Avatar
JB
col = 6
lig = 2
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,
Operator:= _
xlBetween, Formula1:="=IF(" & Cells(lig, col).Address &
"=""CREMEUX"",CREMEUX,AUTRES)"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With

JB

On 3 mar, 14:15, JB wrote:
Bonjour,

http://cjoint.com/?ddopybi0I5

Sub xx()
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertSto p,
Operator:= _
        xlBetween, Formula1:="=IF(" & Cells(2, 6).Address &
"=""CREMEUX"",CREMEUX,AUTRES)"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
End Sub

JB
On 3 mar, 11:55, "Maïa" wrote:



Bonjour,

Je souhaite créer via une macro une première liste déroulante en
colonne F puis une deuxième en colonne G. La première liste déroul ante
est une liste déroulante classique faisant appel à une plage de
cellule nommée. Pour la seconde liste, je souhaiterais que la liste de
choix qui s'affiche dans la cellule soit conditionnée par le choix
fait en colonne F.

Manuellement j'arrive à créer cette liste déroulante avec conditio n en
tapant la formule suivante dans Données/Validation/données source :

=SI(F2="CREMEUX";CREMEUX;AUTRES) où CREMEUX et AUTRES sont deux pl ages
de cellules nommées.

Je suis passée par l'enregistreur VB pour avoir accès au code
correspondant et j'obiens ça :

    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertS top,
Operator:= _
        xlBetween, Formula1:="=SI(F2=""CREMEUX"";CREMEUX;A UTRES)"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With

Mon problème c'est que je souhaiterais que la référence F2 prése nte
dans la formule soit une référence en RC ou une référence que je
puisse coder avec des variables ligne et colonne et non une référenc e
figée.

Quelqu'un a-t-il une piste pour créer cette liste avec conditions dans
une macro ?- Masquer le texte des messages précédents -


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