Liste de validation variable vba [Résolu]

Messages postés
24
Date d'inscription
lundi 12 avril 2010
Statut
Membre
Dernière intervention
20 juillet 2011
- - Dernière réponse : CarolineBouteloup
Messages postés
24
Date d'inscription
lundi 12 avril 2010
Statut
Membre
Dernière intervention
20 juillet 2011
- 11 juin 2010 à 16:48
Bonjour,

je souhaite créer une liste de validation de données mais la liste en question est variable tant du point de vue de la plage de cellules que de leur contenu.

Je ne sais donc pas quoi mettre dans la ligne en italique soulignée dans la fonction ci-dessous :

With Selection.validation
.Delete
.Add Type:= xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="= $AG$21:$AG$35"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With

si je mets une plage de cellules il ne comprend pas et je ne peux mettre une chaîne de caratère car vba ne comprend pas la syntaxe "chaîne de caractère" qui est redondante.

Caroline
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
303
Date d'inscription
mercredi 12 janvier 2005
Statut
Membre
Dernière intervention
3 octobre 2013
3
Merci
Bonjour
Voici un exemple :
Function Finance(feuille)
'dans ce cas feuille est un paramètre qui permet de changer de feuille au moment de l'appel de la fonction
With Sheets("service")
plage = "=indirect(""service!" & .Range("h1:h" & .Range("h65536").End(xlUp).Row).Address & """)"
'utilisation de INDIRECT car la liste de validation n'est pas dans la feuille des cellules à valider
' la liste de validation est en colonne h à partir de la ligne 1
' range ("h65536 etc permet de prendre en compte le nombre de lignes qui devient donc variable
' le . adresse
End With
With Worksheets(feuille)
.Activate
Range("e:e").Select
' la liste de validation s'applique à toutes les cellules de la colonne e
With Selection.Validation
.Delete 'suppression de l'ancienne plage de validation puis création d'une nouvelle avec les dernieres valeurs
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=plage
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "Financement"
.InputMessage = ""
.ErrorMessage = "Vous devez choisir dans la liste"
.ShowInput = True
.ShowError = True
End With
End With
End Function

bonne journée

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 197 internautes nous ont dit merci ce mois-ci

Commenter la réponse de c148270
Messages postés
24
Date d'inscription
lundi 12 avril 2010
Statut
Membre
Dernière intervention
20 juillet 2011
0
Merci
Super merci !

Caroline
Commenter la réponse de CarolineBouteloup