CarolineBouteloup
Messages postés24Date d'inscriptionlundi 12 avril 2010StatutMembreDernière intervention20 juillet 2011
-
10 juin 2010 à 18:53
CarolineBouteloup
Messages postés24Date d'inscriptionlundi 12 avril 2010StatutMembreDernière intervention20 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 :
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.
c148270
Messages postés303Date d'inscriptionmercredi 12 janvier 2005StatutMembreDernière intervention 3 octobre 20131 11 juin 2010 à 07:49
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