OVH Cloud OVH Cloud

Changement de validation par macro

7 réponses
Avatar
Caro
Bonjour,

J’essaie de changer la validation d’une plage par macro. N’étant pas
experte, j’ai utilisé l’enregistreur de macro et j’ai modifié le code. Sur
exécution, j’obtiens erreur 1004. Les cellules ne sont pas verrouillées.
Quelqu’un peut-il m’aider ?
Voici le code:
SuppProtection
Range("GH10:HI84").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween,
Formula1:="=DECALER($DU$10:$DU$300;0;0;NBVAL($DU$10:$DU$300))"

End With

Merci infiniment

Caro

7 réponses

Avatar
Daniel
Bonsoir.
L'enregistreur pris en faute ?
Remplace :
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween,
Formula1:="ÞCALER($DU$10:$DU$300;0;0;NBVAL($DU$10:$DU$300))"
par :
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=OFFSET($DU$10,,,COUNTA($DU$10:$DU$300),1)"
Cordialement.
Daniel

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

Bonjour,

J'essaie de changer la validation d'une plage par macro. N'étant pas
experte, j'ai utilisé l'enregistreur de macro et j'ai modifié le code.
Sur
exécution, j'obtiens erreur 1004. Les cellules ne sont pas verrouillées.
Quelqu'un peut-il m'aider ?
Voici le code:
SuppProtection
Range("GH10:HI84").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=
_
xlBetween,
Formula1:="ÞCALER($DU$10:$DU$300;0;0;NBVAL($DU$10:$DU$300))"

End With

Merci infiniment

Caro



Avatar
Caro
Bonsoir,

Merci de bien vouloir m'aider. Malheureusement, même résultat... même erreur.

Caro

Bonsoir.
L'enregistreur pris en faute ?
Remplace :
..Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween,
Formula1:="ÞCALER($DU$10:$DU$300;0;0;NBVAL($DU$10:$DU$300))"
par :
..Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=OFFSET($DU$10,,,COUNTA($DU$10:$DU$300),1)"
Cordialement.
Daniel

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

Bonjour,

J'essaie de changer la validation d'une plage par macro. N'étant pas
experte, j'ai utilisé l'enregistreur de macro et j'ai modifié le code.
Sur
exécution, j'obtiens erreur 1004. Les cellules ne sont pas verrouillées.
Quelqu'un peut-il m'aider ?
Voici le code:
SuppProtection
Range("GH10:HI84").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=
_
xlBetween,
Formula1:="ÞCALER($DU$10:$DU$300;0;0;NBVAL($DU$10:$DU$300))"

End With

Merci infiniment

Caro








Avatar
Daniel
Es-tu sure d'avoir rempli au moins la cellule DU10 ?
Daniel
"Caro" a écrit dans le message de news:

Bonsoir,

Merci de bien vouloir m'aider. Malheureusement, même résultat... même
erreur.

Caro

Bonsoir.
L'enregistreur pris en faute ?
Remplace :
..Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween,
Formula1:="ÞCALER($DU$10:$DU$300;0;0;NBVAL($DU$10:$DU$300))"
par :
..Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=OFFSET($DU$10,,,COUNTA($DU$10:$DU$300),1)"
Cordialement.
Daniel

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

Bonjour,

J'essaie de changer la validation d'une plage par macro. N'étant pas
experte, j'ai utilisé l'enregistreur de macro et j'ai modifié le code.
Sur
exécution, j'obtiens erreur 1004. Les cellules ne sont pas
verrouillées.
Quelqu'un peut-il m'aider ?
Voici le code:
SuppProtection
Range("GH10:HI84").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,
Operator: >> > _
xlBetween,
Formula1:="ÞCALER($DU$10:$DU$300;0;0;NBVAL($DU$10:$DU$300))"

End With

Merci infiniment

Caro










Avatar
Caro
Re Bonsoir

J'avais fait une erreur en entrant le code. Je n'obtiens pas d'erreur. Dans
la boîte de validation sous source, la formule est changée pour:

ÞCALER($DO$10;;;NBVAL($DO$10:$DU$300);1)

Mais le but est de ne pas avoir de blanc dans ma liste, mais cela ne
fonctionne pas.

Merci encore.

Caro



Bonsoir.
L'enregistreur pris en faute ?
Remplace :
..Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween,
Formula1:="ÞCALER($DU$10:$DU$300;0;0;NBVAL($DU$10:$DU$300))"
par :
..Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=OFFSET($DU$10,,,COUNTA($DU$10:$DU$300),1)"
Cordialement.
Daniel

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

Bonjour,

J'essaie de changer la validation d'une plage par macro. N'étant pas
experte, j'ai utilisé l'enregistreur de macro et j'ai modifié le code.
Sur
exécution, j'obtiens erreur 1004. Les cellules ne sont pas verrouillées.
Quelqu'un peut-il m'aider ?
Voici le code:
SuppProtection
Range("GH10:HI84").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=
_
xlBetween,
Formula1:="ÞCALER($DU$10:$DU$300;0;0;NBVAL($DU$10:$DU$300))"

End With

Merci infiniment

Caro








Avatar
Caro
Bonsoir Daniel,

Décidément il est temps que ma journée achève,

Ta formule marche parfaitement... j'avais encore fait une erreur.

Merci beaucoup de ta précieuse aide.


Es-tu sure d'avoir rempli au moins la cellule DU10 ?
Daniel
"Caro" a écrit dans le message de news:

Bonsoir,

Merci de bien vouloir m'aider. Malheureusement, même résultat... même
erreur.

Caro

Bonsoir.
L'enregistreur pris en faute ?
Remplace :
..Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween,
Formula1:="ÞCALER($DU$10:$DU$300;0;0;NBVAL($DU$10:$DU$300))"
par :
..Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=OFFSET($DU$10,,,COUNTA($DU$10:$DU$300),1)"
Cordialement.
Daniel

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

Bonjour,

J'essaie de changer la validation d'une plage par macro. N'étant pas
experte, j'ai utilisé l'enregistreur de macro et j'ai modifié le code.
Sur
exécution, j'obtiens erreur 1004. Les cellules ne sont pas
verrouillées.
Quelqu'un peut-il m'aider ?
Voici le code:
SuppProtection
Range("GH10:HI84").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,
Operator: > >> > _
xlBetween,
Formula1:="ÞCALER($DU$10:$DU$300;0;0;NBVAL($DU$10:$DU$300))"

End With

Merci infiniment

Caro















Avatar
Garette
Bonsoir,

Il est possible de ne pas avoir de trou dans la liste en triant cette
derniere :

Sub Solution1()
Range("DU10:DU" & Range("DU65536").End(3).Row).Sort
Key1:=Range("$DU$10")

With Range("GH10:HI84").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=
_
xlBetween, Formula1:="=OFFSET($DU$10,,,COUNTA($DU:$DU),1)"
End With
End Sub
Avatar
Caro
Bonsoir,

Merci pour l'idée du tri, je vais l'inclure avant ma commande de changement
de validation tel que tu me l'as mentionné, que j'ai déjà essayé grâce aux
conseils de Daniel. Cela semble si facile quand on s'y connaît... Merci ton
aide.

Caro


Bonsoir,

Il est possible de ne pas avoir de trou dans la liste en triant cette
derniere :

Sub Solution1()
Range("DU10:DU" & Range("DU65536").End(3).Row).Sort
Key1:=Range("$DU$10")

With Range("GH10:HI84").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=
_
xlBetween, Formula1:="=OFFSET($DU$10,,,COUNTA($DU:$DU),1)"
End With
End Sub