Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

nommer une plage avec DECALER

4 réponses
Avatar
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

4 réponses

Avatar
isabelle
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

Avatar
MichD
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
Avatar
isabelle
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
Avatar
MichD
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
'---------------------------------------------------