Bonsoir,
j'ai cr=E9er un tableau avec des menus d=E9roulant afin=20
d'=E9viter une erreur de saisie (validation liste)pour 15000=20
cellules.
Est-il possible de cr=E9er une macro pour alleger la=20
naviguation entre les cellules (ca rame)
Exemple : Il faudrait que je puisse cliquer dans une=20
cellules qui me propose une liste de possibilit=E9es, (j'ai=20
143 possibilit=E9s), ce qui =E9viterais une erreur de saisie.
Merci pour la r=E9ponse=20
Cordialement
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
AV
Pour alléger, tu pourrais ne créer la liste de validation qu'à la sélection de la cellule et la supprimer à la "désélection" Exemple pour la plage A2:A1500 - "laListe" est une plage nommée Dans le module de la feuille :
Private mém$
Private Sub Worksheet_SelectionChange(ByVal zz As Range) If Intersect(zz, [A2:A1500]) Is Nothing Then Exit Sub With zz.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=laListe" End With On Error Resume Next Range(mém).Validation.Delete mém = zz.Address End Sub
AV
Pour alléger, tu pourrais ne créer la liste de validation qu'à la sélection de
la cellule et la supprimer à la "désélection"
Exemple pour la plage A2:A1500 - "laListe" est une plage nommée
Dans le module de la feuille :
Private mém$
Private Sub Worksheet_SelectionChange(ByVal zz As Range)
If Intersect(zz, [A2:A1500]) Is Nothing Then Exit Sub
With zz.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=laListe"
End With
On Error Resume Next
Range(mém).Validation.Delete
mém = zz.Address
End Sub
Pour alléger, tu pourrais ne créer la liste de validation qu'à la sélection de la cellule et la supprimer à la "désélection" Exemple pour la plage A2:A1500 - "laListe" est une plage nommée Dans le module de la feuille :
Private mém$
Private Sub Worksheet_SelectionChange(ByVal zz As Range) If Intersect(zz, [A2:A1500]) Is Nothing Then Exit Sub With zz.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=laListe" End With On Error Resume Next Range(mém).Validation.Delete mém = zz.Address End Sub
AV
Denis Michon
Bonjour AV,
Compte tenu de l'étendue de la plage, il me semble qu'un contrôle combobox dans une barre d'outil aurait pu être une avenue intéressante... mais à cette heure, la paresse est bien installée ! ;-)
Salutations!
"AV" a écrit dans le message de news:bmvo1b$sqk$ Pour alléger, tu pourrais ne créer la liste de validation qu'à la sélection de la cellule et la supprimer à la "désélection" Exemple pour la plage A2:A1500 - "laListe" est une plage nommée Dans le module de la feuille :
Private mém$
Private Sub Worksheet_SelectionChange(ByVal zz As Range) If Intersect(zz, [A2:A1500]) Is Nothing Then Exit Sub With zz.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=laListe" End With On Error Resume Next Range(mém).Validation.Delete mém = zz.Address End Sub
AV
Bonjour AV,
Compte tenu de l'étendue de la plage, il me semble qu'un contrôle combobox dans une barre d'outil aurait pu être une
avenue intéressante... mais à cette heure, la paresse est bien installée ! ;-)
Salutations!
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message de news:bmvo1b$sqk$1@news-reader1.wanadoo.fr...
Pour alléger, tu pourrais ne créer la liste de validation qu'à la sélection de
la cellule et la supprimer à la "désélection"
Exemple pour la plage A2:A1500 - "laListe" est une plage nommée
Dans le module de la feuille :
Private mém$
Private Sub Worksheet_SelectionChange(ByVal zz As Range)
If Intersect(zz, [A2:A1500]) Is Nothing Then Exit Sub
With zz.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=laListe"
End With
On Error Resume Next
Range(mém).Validation.Delete
mém = zz.Address
End Sub
Compte tenu de l'étendue de la plage, il me semble qu'un contrôle combobox dans une barre d'outil aurait pu être une avenue intéressante... mais à cette heure, la paresse est bien installée ! ;-)
Salutations!
"AV" a écrit dans le message de news:bmvo1b$sqk$ Pour alléger, tu pourrais ne créer la liste de validation qu'à la sélection de la cellule et la supprimer à la "désélection" Exemple pour la plage A2:A1500 - "laListe" est une plage nommée Dans le module de la feuille :
Private mém$
Private Sub Worksheet_SelectionChange(ByVal zz As Range) If Intersect(zz, [A2:A1500]) Is Nothing Then Exit Sub With zz.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=laListe" End With On Error Resume Next Range(mém).Validation.Delete mém = zz.Address End Sub
AV
bonjour merci pour la réponse mais ca ne fonctionne pas peut etre que je fais une fausse manipulation merci de jeter un oeil sur votre macro coldialement
-----Message d'origine----- Pour alléger, tu pourrais ne créer la liste de validation qu'à la sélection de
la cellule et la supprimer à la "désélection" Exemple pour la plage A2:A1500 - "laListe" est une plage nommée
Dans le module de la feuille :
Private mém$
Private Sub Worksheet_SelectionChange(ByVal zz As Range) If Intersect(zz, [A2:A1500]) Is Nothing Then Exit Sub With zz.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=laListe" End With On Error Resume Next Range(mém).Validation.Delete mém = zz.Address End Sub
AV
.
bonjour merci pour la réponse mais ca ne fonctionne pas
peut etre que je fais une fausse manipulation
merci de jeter un oeil sur votre macro
coldialement
-----Message d'origine-----
Pour alléger, tu pourrais ne créer la liste de validation
qu'à la sélection de
la cellule et la supprimer à la "désélection"
Exemple pour la plage A2:A1500 - "laListe" est une plage
nommée
Dans le module de la feuille :
Private mém$
Private Sub Worksheet_SelectionChange(ByVal zz As Range)
If Intersect(zz, [A2:A1500]) Is Nothing Then Exit Sub
With zz.Validation
.Delete
.Add Type:=xlValidateList,
AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=laListe"
End With
On Error Resume Next
Range(mém).Validation.Delete
mém = zz.Address
End Sub
bonjour merci pour la réponse mais ca ne fonctionne pas peut etre que je fais une fausse manipulation merci de jeter un oeil sur votre macro coldialement
-----Message d'origine----- Pour alléger, tu pourrais ne créer la liste de validation qu'à la sélection de
la cellule et la supprimer à la "désélection" Exemple pour la plage A2:A1500 - "laListe" est une plage nommée
Dans le module de la feuille :
Private mém$
Private Sub Worksheet_SelectionChange(ByVal zz As Range) If Intersect(zz, [A2:A1500]) Is Nothing Then Exit Sub With zz.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=laListe" End With On Error Resume Next Range(mém).Validation.Delete mém = zz.Address End Sub
AV
.
Philippe.R
Bonsoir, Je viens de tester le code d'AV ; ça tourne impeccablement à condition d'avoir préalablement créé quelque part dans la feuille la liste des données autorisées et d'avoir nommé la plage qui la contient : laListe En sus, le code est à coller dans le module de la feuille (clic droit sur l'onglet / visualiser le code / coller dans la fenêtre qui vient de s'ouvrir). -- Amicales Salutations
Retirer A_S_ pour répondre. XL97 / XL2002 Pour suivre le forum : news://msnews.microsoft.com/microsoft.public.fr.excel (Voulez-vous vous abonner ? -> Oui)
a écrit dans le message de news:073e01c396f8$d7a0eed0$ bonjour merci pour la réponse mais ca ne fonctionne pas peut etre que je fais une fausse manipulation merci de jeter un oeil sur votre macro coldialement
-----Message d'origine----- Pour alléger, tu pourrais ne créer la liste de validation qu'à la sélection de
la cellule et la supprimer à la "désélection" Exemple pour la plage A2:A1500 - "laListe" est une plage nommée
Dans le module de la feuille :
Private mém$
Private Sub Worksheet_SelectionChange(ByVal zz As Range) If Intersect(zz, [A2:A1500]) Is Nothing Then Exit Sub With zz.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=laListe" End With On Error Resume Next Range(mém).Validation.Delete mém = zz.Address End Sub
AV
.
Bonsoir,
Je viens de tester le code d'AV ; ça tourne impeccablement à condition d'avoir préalablement créé
quelque part dans la feuille la liste des données autorisées et d'avoir nommé la plage qui la contient :
laListe
En sus, le code est à coller dans le module de la feuille (clic droit sur l'onglet / visualiser le code
/ coller dans la fenêtre qui vient de s'ouvrir).
--
Amicales Salutations
A_S_rauphil@wanadoo.fr
Retirer A_S_ pour répondre.
XL97 / XL2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)
<anonymous@discussions.microsoft.com> a écrit dans le message de
news:073e01c396f8$d7a0eed0$a501280a@phx.gbl...
bonjour merci pour la réponse mais ca ne fonctionne pas
peut etre que je fais une fausse manipulation
merci de jeter un oeil sur votre macro
coldialement
-----Message d'origine-----
Pour alléger, tu pourrais ne créer la liste de validation
qu'à la sélection de
la cellule et la supprimer à la "désélection"
Exemple pour la plage A2:A1500 - "laListe" est une plage
nommée
Dans le module de la feuille :
Private mém$
Private Sub Worksheet_SelectionChange(ByVal zz As Range)
If Intersect(zz, [A2:A1500]) Is Nothing Then Exit Sub
With zz.Validation
.Delete
.Add Type:=xlValidateList,
AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=laListe"
End With
On Error Resume Next
Range(mém).Validation.Delete
mém = zz.Address
End Sub
Bonsoir, Je viens de tester le code d'AV ; ça tourne impeccablement à condition d'avoir préalablement créé quelque part dans la feuille la liste des données autorisées et d'avoir nommé la plage qui la contient : laListe En sus, le code est à coller dans le module de la feuille (clic droit sur l'onglet / visualiser le code / coller dans la fenêtre qui vient de s'ouvrir). -- Amicales Salutations
Retirer A_S_ pour répondre. XL97 / XL2002 Pour suivre le forum : news://msnews.microsoft.com/microsoft.public.fr.excel (Voulez-vous vous abonner ? -> Oui)
a écrit dans le message de news:073e01c396f8$d7a0eed0$ bonjour merci pour la réponse mais ca ne fonctionne pas peut etre que je fais une fausse manipulation merci de jeter un oeil sur votre macro coldialement
-----Message d'origine----- Pour alléger, tu pourrais ne créer la liste de validation qu'à la sélection de
la cellule et la supprimer à la "désélection" Exemple pour la plage A2:A1500 - "laListe" est une plage nommée
Dans le module de la feuille :
Private mém$
Private Sub Worksheet_SelectionChange(ByVal zz As Range) If Intersect(zz, [A2:A1500]) Is Nothing Then Exit Sub With zz.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=laListe" End With On Error Resume Next Range(mém).Validation.Delete mém = zz.Address End Sub
AV
.
Le Lillois
Bonjour, Je viens de tester le code d'AV Je fais un copier coller du code mais la ligne 1-2-4-6-7 deviens rouge, donc je suppose qu'il y a un problème quelque part, bien que je ne doute pas du bon fonctionnement du code, j'arrive pas à le faire fonctionner et j'ai vraiment besoin de ce code Merci d'apporter une solution Cordialement
-----Message d'origine----- Bonsoir, Je viens de tester le code d'AV ; ça tourne impeccablement à condition d'avoir préalablement créé
quelque part dans la feuille la liste des données autorisées et d'avoir nommé la plage qui la contient :
laListe En sus, le code est à coller dans le module de la feuille (clic droit sur l'onglet / visualiser le code
/ coller dans la fenêtre qui vient de s'ouvrir). -- Amicales Salutations
Retirer A_S_ pour répondre. XL97 / XL2002 Pour suivre le forum : news://msnews.microsoft.com/microsoft.public.fr.excel (Voulez-vous vous abonner ? -> Oui)
a écrit dans le message de
news:073e01c396f8$d7a0eed0$ bonjour merci pour la réponse mais ca ne fonctionne pas peut etre que je fais une fausse manipulation merci de jeter un oeil sur votre macro coldialement
-----Message d'origine----- Pour alléger, tu pourrais ne créer la liste de validation qu'à la sélection de
la cellule et la supprimer à la "désélection" Exemple pour la plage A2:A1500 - "laListe" est une plage nommée
Dans le module de la feuille :
Private mém$
Private Sub Worksheet_SelectionChange(ByVal zz As Range) If Intersect(zz, [A2:A1500]) Is Nothing Then Exit Sub With zz.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=laListe" End With On Error Resume Next Range(mém).Validation.Delete mém = zz.Address End Sub
AV
.
.
Bonjour,
Je viens de tester le code d'AV
Je fais un copier coller du code mais la ligne 1-2-4-6-7
deviens rouge, donc je suppose qu'il y a un problème
quelque part, bien que je ne doute pas du bon
fonctionnement du code, j'arrive pas à le faire
fonctionner et j'ai vraiment besoin de ce code
Merci d'apporter une solution
Cordialement
-----Message d'origine-----
Bonsoir,
Je viens de tester le code d'AV ; ça tourne
impeccablement à condition d'avoir préalablement créé
quelque part dans la feuille la liste des données
autorisées et d'avoir nommé la plage qui la contient :
laListe
En sus, le code est à coller dans le module de la feuille
(clic droit sur l'onglet / visualiser le code
/ coller dans la fenêtre qui vient de s'ouvrir).
--
Amicales Salutations
A_S_rauphil@wanadoo.fr
Retirer A_S_ pour répondre.
XL97 / XL2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)
<anonymous@discussions.microsoft.com> a écrit dans le
message de
news:073e01c396f8$d7a0eed0$a501280a@phx.gbl...
bonjour merci pour la réponse mais ca ne fonctionne pas
peut etre que je fais une fausse manipulation
merci de jeter un oeil sur votre macro
coldialement
-----Message d'origine-----
Pour alléger, tu pourrais ne créer la liste de validation
qu'à la sélection de
la cellule et la supprimer à la "désélection"
Exemple pour la plage A2:A1500 - "laListe" est une plage
nommée
Dans le module de la feuille :
Private mém$
Private Sub Worksheet_SelectionChange(ByVal zz As Range)
If Intersect(zz, [A2:A1500]) Is Nothing Then Exit Sub
With zz.Validation
.Delete
.Add Type:=xlValidateList,
AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=laListe"
End With
On Error Resume Next
Range(mém).Validation.Delete
mém = zz.Address
End Sub
Bonjour, Je viens de tester le code d'AV Je fais un copier coller du code mais la ligne 1-2-4-6-7 deviens rouge, donc je suppose qu'il y a un problème quelque part, bien que je ne doute pas du bon fonctionnement du code, j'arrive pas à le faire fonctionner et j'ai vraiment besoin de ce code Merci d'apporter une solution Cordialement
-----Message d'origine----- Bonsoir, Je viens de tester le code d'AV ; ça tourne impeccablement à condition d'avoir préalablement créé
quelque part dans la feuille la liste des données autorisées et d'avoir nommé la plage qui la contient :
laListe En sus, le code est à coller dans le module de la feuille (clic droit sur l'onglet / visualiser le code
/ coller dans la fenêtre qui vient de s'ouvrir). -- Amicales Salutations
Retirer A_S_ pour répondre. XL97 / XL2002 Pour suivre le forum : news://msnews.microsoft.com/microsoft.public.fr.excel (Voulez-vous vous abonner ? -> Oui)
a écrit dans le message de
news:073e01c396f8$d7a0eed0$ bonjour merci pour la réponse mais ca ne fonctionne pas peut etre que je fais une fausse manipulation merci de jeter un oeil sur votre macro coldialement
-----Message d'origine----- Pour alléger, tu pourrais ne créer la liste de validation qu'à la sélection de
la cellule et la supprimer à la "désélection" Exemple pour la plage A2:A1500 - "laListe" est une plage nommée
Dans le module de la feuille :
Private mém$
Private Sub Worksheet_SelectionChange(ByVal zz As Range) If Intersect(zz, [A2:A1500]) Is Nothing Then Exit Sub With zz.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=laListe" End With On Error Resume Next Range(mém).Validation.Delete mém = zz.Address End Sub
AV
.
.
AV
Merci d'apporter une solution
Si tu as une adresse valide (à me tranmettre en bal perso), je peux t'envoyer un exemple
AV
Merci d'apporter une solution
Si tu as une adresse valide (à me tranmettre en bal perso), je peux t'envoyer un
exemple