Exemple:
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, _
Formula1:="=ET(SOMME($B4:$D4)<=$B$2;OU(B4="""";ESTNUM(B4));MOD(B4;0.5)=0)"
.Add xlValidateCustom, xlValidAlertStop, xlBetween, _
"=AND(SUM($B4:$D4)<=$B$2;OR(B4="""";ISNUMBER(B4));MOD(B4;0.5)=0)"
With Range("B4").Validation
.Add xlValidateCustom, xlValidAlertStop, xlBetween, _
"=AND(SUM($B4:$D4)<=$B$2,OR(B4="""",ISNUMBER(B4)),MOD(B4,0.5)=0)"
.IgnoreBlank = True: .InCellDropdown = True
.InputTitle = "": .InputMessage = "": .ShowInput = True
.ErrorTitle = "": .ErrorMessage = "": .ShowError = True
End With
Bonsoir,Bonjour à tous,
Je suis resté près d'une demi-journée à me demander pourquoi en tentant de faire un range.validation.add, je me heurtais systématiquement à une erreur 1004 .
Pourtant, le code que j'exécutais avait été construit par l'enregistreur de macro , et ce code aboutissait également à une erreur 1004 .
Après moult consultations de différents forums, j'ai remarqué que les utilisateurs anglophones avaient rarement ce type d'erreur .VB:Exemple: .Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, _ Formula1:="=ET(SOMME($B4:$D4)<=$B$2;OU(B4="""";ESTNUM(B4));MOD(B4;0.5)=0)"
J'ai donc tenté de "traduire" la formule :
code qui provoquait toujours une erreur 1004 ...VB:.Add xlValidateCustom, xlValidAlertStop, xlBetween, _ "=AND(SUM($B4:$D4)<=$B$2;OR(B4="""";ISNUMBER(B4));MOD(B4;0.5)=0)"
puis je me suis souvenu qu'en Excel Anglophone, le caractère ";" n'était pas le délimiteur standard, mais le caractère "," (virgule)
VB:With Range("B4").Validation .Add xlValidateCustom, xlValidAlertStop, xlBetween, _ "=AND(SUM($B4:$D4)<=$B$2,OR(B4="""",ISNUMBER(B4)),MOD(B4,0.5)=0)" .IgnoreBlank = True: .InCellDropdown = True .InputTitle = "": .InputMessage = "": .ShowInput = True .ErrorTitle = "": .ErrorMessage = "": .ShowError = True End With
Code qui à ma plus grande satisfaction se déroule correctement ....
Que de temps perdu pour une particularité non indiquée dans les aides de Microsoft !!!!
With Range("B4").Validation
.Add xlValidateCustom, xlValidAlertStop, xlBetween, _
FormulaLocal:="=ET(SOMME($B4:$D4)<=$B$2;OU(B4="""";ESTNUM(B4));MOD(B4;0.5)=0)"
.IgnoreBlank = True: .InCellDropdown = True
.InputTitle = "": .InputMessage = "": .ShowInput = True
.ErrorTitle = "": .ErrorMessage = "": .ShowError = True
End With
Salut @Gégé-45550 , malheureusement ce n'est pas une option possible comme pour une cellule ...avez-vous testé le résultat obtenu en remplaçant Formula1 par FormulaLocal et en conservant le code en français ?
Bonjour à tous,Bonjour @fanch55 , @Gégé-45550 ,
@fanch55 : VBE est en Anglais, personnellement je lance l'enregistreur de macro, la formule est au préalable saisie dans une cellule en Français,
je sélectionne la cellule, puis sélectionne le texte de la formule dans la barre de formule,
je fais un Ctrl+C et Entrée.
J'arrête l'enregistreur, cela me donne la formule en Anglais à utiliser dans mon code VBA.
Bonne journée.
En tout cas pas sur Excel2010. Merci pour le partage.Bonjour à tous,
moi, j'utilise l'option de menu "Traducteur" pour le même résultat, mais je ne sais plus si cette option est dispo dans toutes les versions d'Excel.
Regarde la pièce jointe 1170872
Bonne journée à tous
Salut l'ami, un petit coucou avant d'aller au dodo.Bonjour,
Moi pour traduire une formule vers de l'english, j'utilise cette macro :
VB:Sub MaFormule() Debug.Print ActiveCell.Formula End Sub
Bonne nuit l'amiMerci Gégé, j'avais bien vu qu'avec ta proposition il fallait installer un truc en plus dans Excel, d'où ma proposition d'une simple ligne de code VBA qui me semble beaucoup plus simple.
Et puisqu'on a le choix entre trois solutions données ici, maintenantchacun fait c'qui lui plait plait plait
Bonne nuit l'ami, fais de beaux rêves !
Pas faux ... mais c'est une lacune apparemment unilatérale : essaye de traduire "=HYPERLINK(A6,"b")" de l'anglais vers le français et tu verras que ça marche.Un petit bémol à ce traducteur :
Toutes les fonctions ne sont pas traduites .
Il ne supporte pas la notation de table structurée dans les arguments d'une fonction .
Il ne me semble pas "fini" .... ( voir le message ci-dessous )
Regarde la pièce jointe 1171111
Le lien pour envoyer des commentaires ne fonctionne pas ou plus :
Regarde la pièce jointe 1171112