XL 2016 formule de validation de données

cyrikou

XLDnaute Occasionnel
Bonjour,

j'ai créé une macro qui s'active selon un choix dans une combobox placée sur la feuille.
Cette macro permet de créer une liste de choix dans chacune des cellules de la sélection (validation de données).
Voici le code :
VB:
Range(Cells(10, 5), Cells(37, 44)).Select
        With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=$D$60:$D$71"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputMessage = "Veuillez saisir les notes de 1 à 10 !"
        .ErrorMessage = "Mauvaise saisie ! Veuillez recommencer !"
        .ShowInput = True
        .ShowError = True
    End With

Il fonctionne très bien sauf si je me mets dans le menu option "style de référence L1C1".
J'ai un message d'erreur qui apparait : "erreur d'execution 1004, erreur définie par l'application ou par l'objet"

L'erreur est là :

Code:
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=$D$60:$D$71"

J'aimerai que quelque soit l'utilisateur, le code fonctionne et là je bloque car je n'arrive pas à écrire
Formula1:="=$D$60:$D$71" en référence L1C1.

Si vous avez une idée, un conseil, je vous remercie !
:)
 

cyrikou

XLDnaute Occasionnel
Merci Pierre Jean et cathodique, maintenant le problème est inverse, ça fonctionne plus quand je décoche la référence L1C1. Il est vrai que la majorité des excel ne sont pas activés en L1C1. Mon problème est d'avoir un code qui fonctionne dans tous les cas.

Compliqué....
 

pierrejean

XLDnaute Barbatruc
Re

A tester:
Range(Cells(10, 5), Cells(37, 44)).Select
With Selection.Validation
.Delete
On Error Resume Next
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=R60C4:R71C4"
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=$D$60:$D$71"
On Error GoTo 0
.IgnoreBlank = True
.InCellDropdown = True
.InputMessage = "Veuillez saisir les notes de 1 à 10 !"
.ErrorMessage = "Mauvaise saisie ! Veuillez recommencer !"
.ShowInput = True
.ShowError = True
End With
 

Discussions similaires

Statistiques des forums

Discussions
312 109
Messages
2 085 383
Membres
102 878
dernier inscrit
asmaa