Liste de validation variable vba [Résolu]

CarolineBouteloup 24 Messages postés lundi 12 avril 2010Date d'inscription 20 juillet 2011 Dernière intervention - 10 juin 2010 à 18:53 - Dernière réponse : CarolineBouteloup 24 Messages postés lundi 12 avril 2010Date d'inscription 20 juillet 2011 Dernière intervention
- 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 

Votre réponse

2 réponses

Meilleure réponse
c148270 303 Messages postés mercredi 12 janvier 2005Date d'inscription 3 octobre 2013 Dernière intervention - 11 juin 2010 à 07:49
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

Merci c148270 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 85 internautes ce mois-ci

Commenter la réponse de c148270
CarolineBouteloup 24 Messages postés lundi 12 avril 2010Date d'inscription 20 juillet 2011 Dernière intervention - 11 juin 2010 à 16:48
0
Merci
Super merci !

Caroline
Commenter la réponse de CarolineBouteloup

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.