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

liste deroulante et macro

5 réponses
Avatar
jerem2309
Bonjour,


Ayant cherché, je n'ai pas trouvé de post correspondants.
Je suis confronté à un problème : j'ai créé une liste déroulante avec le nom de sociétés clientes qui apparaît sur les factures que j'étables. Cependant lorsque sur ma feuille clients, je rajoute un client, ma liste déroulante ne le prends pas en compte... Je sais qu'il serait possible de crér une liste déroulante basée sur une colonne infini (dans ce cas la, dans la liste apparaitrait des "blancs") Je voudrais savoir si la prise en compte d'un nouveau client peut se faire a partir d'une macro ? Quelle en serait alors la formule ?

Cordialement,

Jerem2309.

5 réponses

Avatar
MichD
Bonjour,

Supposons que tu as une liste de clients dans la plage A1:A10

Pour créer une liste de validation dans une cellule, tu peux d'abord
créer une plage nommée au nom de "LISTE" et tu utilises cette formule
dans "Fait référence à" pour ce nom "liste"
ÞCALER(Feuil3!$A$1;;;NBVAL(Feuil3!$A:$A);)

Au fur et à mesure que tu vas ajouter des nouveaux clients, la liste de validation va se mettre à jour automatiquement.

Si A1 contient une étiquette de colonne, utilise plutôt cette formule:
ÞCALER(Feuil3!$A$1;1;;NBVAL(Feuil3!$A:$A);)

Évidemment, il faudra adapter le nom de la feuille. La liste dans la colonne A1:Ax ne doit pas avoir de lignes vides.



MichD
------------------------------------------
"jerem2309" a écrit dans le message de groupe de discussion :

Bonjour,


Ayant cherché, je n'ai pas trouvé de post correspondants.
Je suis confronté à un problème : j'ai créé une liste déroulante avec le nom de
sociétés clientes qui apparaît sur les factures que j'étables. Cependant lorsque
sur ma feuille clients, je rajoute un client, ma liste déroulante ne le prends
pas en compte... Je sais qu'il serait possible de crér une liste déroulante
basée sur une colonne infini (dans ce cas la, dans la liste apparaitrait des
"blancs") Je voudrais savoir si la prise en compte d'un nouveau client peut se
faire a partir d'une macro ? Quelle en serait alors la formule ?

Cordialement,

Jerem2309.
Avatar
jerem2309
MichD a écrit le 02/11/2011 à 18h17 :
Bonjour,

Supposons que tu as une liste de clients dans la plage A1:A10

Pour créer une liste de validation dans une cellule, tu peux d'abord
créer une plage nommée au nom de "LISTE" et tu utilises
cette formule
dans "Fait référence à" pour ce nom
"liste"
ÞCALER(Feuil3!$A$1;;;NBVAL(Feuil3!$A:$A);)

Au fur et à mesure que tu vas ajouter des nouveaux clients, la liste de
validation va se mettre à jour automatiquement.

Si A1 contient une étiquette de colonne, utilise plutôt cette
formule:
ÞCALER(Feuil3!$A$1;1;;NBVAL(Feuil3!$A:$A);)

Évidemment, il faudra adapter le nom de la feuille. La liste dans la
colonne A1:Ax ne doit pas avoir de lignes vides.



MichD
------------------------------------------
"jerem2309" a écrit dans le message de groupe de discussion :


Bonjour,


Ayant cherché, je n'ai pas trouvé de post correspondants.
Je suis confronté à un problème : j'ai créé
une liste déroulante avec le nom de
sociétés clientes qui apparaît sur les factures que
j'étables. Cependant lorsque
sur ma feuille clients, je rajoute un client, ma liste déroulante ne le
prends
pas en compte... Je sais qu'il serait possible de crér une liste
déroulante
basée sur une colonne infini (dans ce cas la, dans la liste apparaitrait
des
"blancs") Je voudrais savoir si la prise en compte d'un nouveau
client peut se
faire a partir d'une macro ? Quelle en serait alors la formule ?

Cordialement,

Jerem2309.


Merci de votre réponse. Cependant je n'ai pas bien compris... Je nomme la plage "LISTE" et lorsque je fait validation des données, je dois indiquer "ÞCALER(Feuil3!$A$1;;;NBVAL(Feuil3!$A:$A);)" ?
Y'a t-il un moyen de passer par une macro autrement ?

Cordialement,

Jerem2309.
Avatar
MichD
| "LISTE" et lorsque je fait validation des données, je dois indiquer
| "ÞCALER(Feuil3!$A$1;;;NBVAL(Feuil3!$A:$A);)" ?
| Y'a t-il un moyen de passer par une macro autrement ?

A ) Tu crées un nom (Insertion / nom / définir si tu es sous une version précédente à Excel 2007)
Pour la version Excel 2007, 2010, Barre des menus / Formules / Section : Noms définis / Définir un nom

B ) dans la fenêtre qui s'ouvre, tu donnes un nom "Liste" (à titre d'exemple)
Dans le bas de la fenêtre : Fait référence à : Tu entres la formule : ÞCALER(Feuil3!$A$1;;;NBVAL(Feuil3!$A:$A);)
Dans mon exemple, la liste est dans la colonne A:A de A1:Ax

C ) Lorsque tu crées dans la cellule, la liste de validation, tu entres simplement = Liste


Si tu préfères en VBA, dans la feuille module de la feuille où est la liste, tu copies le code suivant :
Pour ce faire, un clic droit sur l'onglet de la feuille, commande : visualiser le code, et tu copies dans
la feuille blanche qui s'ouvre ceci : (j'ai supposé que la liste était en colonne A:A, adapte la colonne
selon celle de ton application.

'----------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = Range("A:A").Column Then
Range("A1:A" & Range("A65536").End(xlUp).Row).Name = "Liste"
End If
End Sub
'----------------------------------

Et quand tu crées ta liste déroulante dans les cellules de la feuille, tu inscris : =Liste


MichD
------------------------------------------
Avatar
jerem2309
MichD a écrit le 03/11/2011 à 03h15 :
| "LISTE" et lorsque je fait validation des données, je dois
indiquer
| "ÞCALER(Feuil3!$A$1;;;NBVAL(Feuil3!$A:$A);)" ?
| Y'a t-il un moyen de passer par une macro autrement ?

A ) Tu crées un nom (Insertion / nom / définir si tu es sous une
version précédente à Excel 2007)
Pour la version Excel 2007, 2010, Barre des menus / Formules / Section : Noms
définis / Définir un nom

B ) dans la fenêtre qui s'ouvre, tu donnes un nom "Liste"
(à titre d'exemple)
Dans le bas de la fenêtre : Fait référence à : Tu
entres la formule : ÞCALER(Feuil3!$A$1;;;NBVAL(Feuil3!$A:$A);)
Dans mon exemple, la liste est dans la colonne A:A de A1:Ax

C ) Lorsque tu crées dans la cellule, la liste de validation, tu entres
simplement = Liste


Si tu préfères en VBA, dans la feuille module de la feuille
où est la liste, tu copies le code suivant :
Pour ce faire, un clic droit sur l'onglet de la feuille, commande : visualiser
le code, et tu copies dans
la feuille blanche qui s'ouvre ceci : (j'ai supposé que la liste
était en colonne A:A, adapte la colonne
selon celle de ton application.

'----------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = Range("A:A").Column Then
Range("A1:A" & Range("A65536").End(xlUp).Row).Name =
"Liste"
End If
End Sub
'----------------------------------

Et quand tu crées ta liste déroulante dans les cellules de la
feuille, tu inscris : =Liste


MichD
------------------------------------------


Bonjour,

En terme de macro, ca donne quoi ?
Avatar
MichD
Le message précédent contient déjà la macro pour créer le nom "Liste" et le mettre à jour à chaque fois que tu ajoutes une
nouvelle donnée.
La seule chose qui reste à faire est de créer la liste de validation et tu utilises =Liste


Code à mettre dans le module feuille où est la liste...
'---------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = Range("A:A").Column Then
Range("A1:A" & Range("A65536").End(xlUp).Row).Name = "Liste"
End If
End Sub
'---------------------------------


MichD
------------------------------------------