nommer une plage avec DECALER

Le
isabelle
Bonjour,

j'ai besoin de vos lumières avec la fonction DECALER

ID Nom
1 a
1 b
2 c
2 d
2 e
3 f

pour une Validation de données
je voudrais nommer une plage: liste
qui ferait référence à différente plage selon le numéro d'ID

par exemple:
si ID = 3 liste serait = f
si ID = 2 liste serait =c, d, e
si ID = 3 liste serait = a, b, c

merci! pour votre
isabelle
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #26391242
j'ai trouvé cette formule

ÞCALER(base!$A$1:$A$2000;EQUIV(ID;base!$A:$A;0)-1;1;NB.SI(base!$A:$A;ID);1)

elle donne le bon résultat,
mais je me demande si cela serait possible d'ajouter une valeur vide "" en début
de liste

par exemple:
si ID = 3 liste serait = "", f
si ID = 2 liste serait = "", c, d, e
si ID = 3 liste serait = "", a, b, c

merci pour votre aide
isabelle

Le 2016-03-01 15:39, isabelle a écrit :
Bonjour,

j'ai besoin de vos lumières avec la fonction DECALER

ID Nom
1 a
1 b
2 c
2 d
2 e
3 f

pour une Validation de données
je voudrais nommer une plage: liste
qui ferait référence à différente plage selon le numéro d'ID

par exemple:
si ID = 3 liste serait = f
si ID = 2 liste serait =c, d, e
si ID = 3 liste serait = a, b, c

merci! pour votre
isabelle

MichD
Le #26391244
Dans ta plage de cellules, tu ne peux pas ajouter une cellule vide au
début de la plage de cellule servant de plage nommée?

MichD
isabelle
Le #26391264
merci! Denis
mais la base est sous cette forme et c'est un extration (requete),

ID Nom
1 a
1 b
2 c
2 d
2 e
3 f

dommage...
isabelle




Le 2016-03-01 17:28, MichD a écrit :

Dans ta plage de cellules, tu ne peux pas ajouter une cellule vide au début de
la plage de cellule servant de plage nommée?

MichD
MichD
Le #26391308
Une manière de fonctionner par une petite procédure.
La chaîne de caractères d'une liste de validation a
un nombre de caractères limites. Est-ce plus que 256?
Je n'ai pas ce chiffre...


'---------------------------------------------------
Sub test()
Dim X As String, Rg As Range

'Déterminer où sont les valeurs de la liste de validation
With Feuil1
Set Rg = .Range("E1:E5")
End With

'Suppression des listes de validation dans la plage de cellules.
Rg.Validation.Delete

'Pour insérer un espace comme premier élément d'une liste de validation
'On doit utiliser le caractère 160, cela ne fonctionne pas avec 32
X = Chr(160) & ","

'J'ai supposé que le résultat de la requête se trouvait dans la plage
'D1:D5

With Feuil1
For a = 1 To 5
X = X & Range("D" & a).Value & ","
Next
End With
'enlever la virgule à la fin de la chaîne de caractères X
X = Left(X, Len(X) - 1)

'Créer la liste de validation, le reste des propriétés à définir...
With Rg.Validation
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="" & X & ""
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With

End Sub
'---------------------------------------------------
Publicité
Poster une réponse
Anonyme