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

Prb Liste deroulante

7 réponses
Avatar
Thierry
Bonjour,

J'ai une liste déroulante que je peux mettre à jour par macro. Lorsque je
mets a jour cette liste le remplissage de la zone tempon est bon car je
l'affiche à l'écran avant le remplissage ds un MsgBox. De plus j'ai le même
algorithme lors de la création de cette liste déroulante et cela se passe
très bien. La seule différence c'est que lors de la création je fais un
Clear de la colonne.

La mise à jour de la liste déroulante dans la céllule est :

MsgBox ("valeur ") & temp
For j = Plig + 2 To Dlig
Cells(j, (Pcol - 1)).Validation.Delete
Cells(j, (Pcol - 1)).Validation.Add xlValidateList,
Formula1:=Left(temp, Len(temp) - 1)
Next j

Y a t'il une erreur ?

Merci.





---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000745-2, 29/05/2007
Analyse le : 29/05/2007 13:58:24
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com

7 réponses

Avatar
FFO
Salut Thierry

Je suis étonné par ta méthode pour mettre à jour une liste déroulante
Lorsque je met en place une liste déroulante je lui donne un nom ainsi qu'un
ensemble de cellule auquel elle se rapporte exemple :

Insertion/Nom/Définir
Nom de ma liste dans Noms dans le classeur : Liste
Les cellules rattachées dans fait référence à : þuil3!$C$1:$C$1000

Puis dans les cellules où je souhaite réaliser la liste déroulante pour
chaque cellule:
Données/Validation
Dans validation des données
Autoriser : Liste
Source : Liste

J'ai ainsi ma liste déroulante pour ces cellules

Si je veux changer la liste j'agit directement dans les cellules sources
Feuil3!$C$1:$C$1000 programmées à la base (voir ci-dessus) que j'adapte en
modifiant chacune d'entre elle voir toutes
Ce qui a pour effet de modifier la liste déroulante des cellules qui l'utilise
Le seul cas où je dois intervenir dans une formule c'est pour étendre la
liste:
fait référence à : þuil3!$C$1:$C$1000 (Insertion/Nom/Définir)
devient pour 100 articles de plus
fait référence à : þuil3!$C$1:$C$1100

Pour éviter cet handicape il suffit de prendre un nombre de cellules
suffisamment important pour répondre à toute éventualité

Voilà ma methode

Peux tu t'en inspirer ???


Bonjour,

J'ai une liste déroulante que je peux mettre à jour par macro. Lorsque je
mets a jour cette liste le remplissage de la zone tempon est bon car je
l'affiche à l'écran avant le remplissage ds un MsgBox. De plus j'ai le même
algorithme lors de la création de cette liste déroulante et cela se passe
très bien. La seule différence c'est que lors de la création je fais un
Clear de la colonne.

La mise à jour de la liste déroulante dans la céllule est :

MsgBox ("valeur ") & temp
For j = Plig + 2 To Dlig
Cells(j, (Pcol - 1)).Validation.Delete
Cells(j, (Pcol - 1)).Validation.Add xlValidateList,
Formula1:=Left(temp, Len(temp) - 1)
Next j

Y a t'il une erreur ?

Merci.





---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000745-2, 29/05/2007
Analyse le : 29/05/2007 13:58:24
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com






Avatar
Jacky
Bonjour,
devient pour 100 articles de plus
Pour éviter cet handicape il suffit de prendre un nombre de cellules
suffisamment important pour répondre à toute éventualité
fait référence à : þuil3!$C$1:$C$1100


OU
fait référence à :
ÞCALER(Feuil3!$C$1;;;NBVAL(Feuil2!$C:$C))
Ceci pour le rendre les rajouts automatique
--
Salutations
JJ



"FFO" a écrit dans le message de news:

Salut Thierry

Je suis étonné par ta méthode pour mettre à jour une liste déroulante
Lorsque je met en place une liste déroulante je lui donne un nom ainsi
qu'un
ensemble de cellule auquel elle se rapporte exemple :

Insertion/Nom/Définir
Nom de ma liste dans Noms dans le classeur : Liste
Les cellules rattachées dans fait référence à : þuil3!$C$1:$C$1000

Puis dans les cellules où je souhaite réaliser la liste déroulante pour
chaque cellule:
Données/Validation
Dans validation des données
Autoriser : Liste
Source : Liste

J'ai ainsi ma liste déroulante pour ces cellules

Si je veux changer la liste j'agit directement dans les cellules sources
Feuil3!$C$1:$C$1000 programmées à la base (voir ci-dessus) que j'adapte en
modifiant chacune d'entre elle voir toutes
Ce qui a pour effet de modifier la liste déroulante des cellules qui
l'utilise
Le seul cas où je dois intervenir dans une formule c'est pour étendre la
liste:
fait référence à : þuil3!$C$1:$C$1000 (Insertion/Nom/Définir)
devient pour 100 articles de plus
fait référence à : þuil3!$C$1:$C$1100

Pour éviter cet handicape il suffit de prendre un nombre de cellules
suffisamment important pour répondre à toute éventualité

Voilà ma methode

Peux tu t'en inspirer ???


Bonjour,

J'ai une liste déroulante que je peux mettre à jour par macro. Lorsque je
mets a jour cette liste le remplissage de la zone tempon est bon car je
l'affiche à l'écran avant le remplissage ds un MsgBox. De plus j'ai le
même
algorithme lors de la création de cette liste déroulante et cela se passe
très bien. La seule différence c'est que lors de la création je fais un
Clear de la colonne.

La mise à jour de la liste déroulante dans la céllule est :

MsgBox ("valeur ") & temp
For j = Plig + 2 To Dlig
Cells(j, (Pcol - 1)).Validation.Delete
Cells(j, (Pcol - 1)).Validation.Add xlValidateList,
Formula1:=Left(temp, Len(temp) - 1)
Next j

Y a t'il une erreur ?

Merci.





---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000745-2, 29/05/2007
Analyse le : 29/05/2007 13:58:24
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com








Avatar
Thierry
est il possible de rentrer ces formule par macro vba et si oui comment ?
imaginon que le contenu de ma liste se trouve feuille paramètres colonne i
et que je veux entrer

la formule feuille janvier colonne a1 ?


"Jacky" a écrit dans le message de news:
Omx%
Bonjour,
devient pour 100 articles de plus
Pour éviter cet handicape il suffit de prendre un nombre de cellules
suffisamment important pour répondre à toute éventualité
fait référence à : þuil3!$C$1:$C$1100


OU
fait référence à :
ÞCALER(Feuil3!$C$1;;;NBVAL(Feuil2!$C:$C))
Ceci pour le rendre les rajouts automatique
--
Salutations
JJ



"FFO" a écrit dans le message de news:

Salut Thierry

Je suis étonné par ta méthode pour mettre à jour une liste déroulante
Lorsque je met en place une liste déroulante je lui donne un nom ainsi
qu'un
ensemble de cellule auquel elle se rapporte exemple :

Insertion/Nom/Définir
Nom de ma liste dans Noms dans le classeur : Liste
Les cellules rattachées dans fait référence à : þuil3!$C$1:$C$1000

Puis dans les cellules où je souhaite réaliser la liste déroulante pour
chaque cellule:
Données/Validation
Dans validation des données
Autoriser : Liste
Source : Liste

J'ai ainsi ma liste déroulante pour ces cellules

Si je veux changer la liste j'agit directement dans les cellules sources
Feuil3!$C$1:$C$1000 programmées à la base (voir ci-dessus) que j'adapte
en
modifiant chacune d'entre elle voir toutes
Ce qui a pour effet de modifier la liste déroulante des cellules qui
l'utilise
Le seul cas où je dois intervenir dans une formule c'est pour étendre la
liste:
fait référence à : þuil3!$C$1:$C$1000 (Insertion/Nom/Définir)
devient pour 100 articles de plus
fait référence à : þuil3!$C$1:$C$1100

Pour éviter cet handicape il suffit de prendre un nombre de cellules
suffisamment important pour répondre à toute éventualité

Voilà ma methode

Peux tu t'en inspirer ???


Bonjour,

J'ai une liste déroulante que je peux mettre à jour par macro. Lorsque
je
mets a jour cette liste le remplissage de la zone tempon est bon car je
l'affiche à l'écran avant le remplissage ds un MsgBox. De plus j'ai le
même
algorithme lors de la création de cette liste déroulante et cela se
passe
très bien. La seule différence c'est que lors de la création je fais un
Clear de la colonne.

La mise à jour de la liste déroulante dans la céllule est :

MsgBox ("valeur ") & temp
For j = Plig + 2 To Dlig
Cells(j, (Pcol - 1)).Validation.Delete
Cells(j, (Pcol - 1)).Validation.Add xlValidateList,
Formula1:=Left(temp, Len(temp) - 1)
Next j

Y a t'il une erreur ?

Merci.





---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000745-2, 29/05/2007
Analyse le : 29/05/2007 13:58:24
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com










---
Antivirus avast! : message Entrant sain.
Base de donnees virale (VPS) : 000745-2, 29/05/2007
Analyse le : 29/05/2007 17:17:15
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com








---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000745-2, 29/05/2007
Analyse le : 29/05/2007 17:21:43
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com



Avatar
Jacky
Bonjour,
Ceci peut-être:
Prend compte que la liste qui sera nommée "liste" commence à la cellule I1
de la feuille paramètre, si elle devait commencer en I2, il faudra
remplacer:
RefersToR1C1:="=OFFSET(paramètre!R1C9,,,COUNTA(paramètre!C9))"
par
RefersToR1C1:="=OFFSET(paramètre!R2C9,,,COUNTA(paramètre!C9)-1)"
'-----------
Sub jj()
With Sheets("paramètre").Range("i1:i" & [i65536].End(3).Row)
ActiveWorkbook.Names.Add Name:="Liste",
RefersToR1C1:="=OFFSET(paramètre!R1C9,,,COUNTA(paramètre!C9))"
End With
With Sheets("janvier").[a1].Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,
Operator:=xlBetween, Formula1:="=Liste"
End With
End Sub
'----------

N'oublie pas, que l'enregistreur de macro fait cela très bien ;o)
Attention aux coupures de lignes

--
Salutations
JJ



"Thierry" a écrit dans le message de news:
ew%
est il possible de rentrer ces formule par macro vba et si oui comment ?
imaginon que le contenu de ma liste se trouve feuille paramètres colonne i
et que je veux entrer

la formule feuille janvier colonne a1 ?




Avatar
Jacky
Re...
Un peu plus épurer
'----------
Sub jj()
With Sheets("paramètre")
ActiveWorkbook.Names.Add Name:="Liste",
RefersTo:="=OFFSET(paramètre!$i$1,,,COUNTA(paramètre!$i:$i))"
End With
With Sheets("janvier").[a1].Validation
.Delete
.Add Type:=xlValidateList, Formula1:="=Liste"
End With
End Sub
'---------

--
Salutations
JJ



"Thierry" a écrit dans le message de news:
ew%
est il possible de rentrer ces formule par macro vba et si oui comment ?
imaginon que le contenu de ma liste se trouve feuille paramètres colonne i
et que je veux entrer

la formule feuille janvier colonne a1 ?



Avatar
Thierry
Je viens de trouver Désolé pour bug

En effet la variable Dlig n'était pas initialisée.......

Mille excuses
"Thierry" a écrit dans le message de news:

Bonjour,

J'ai une liste déroulante que je peux mettre à jour par macro. Lorsque je
mets a jour cette liste le remplissage de la zone tempon est bon car je
l'affiche à l'écran avant le remplissage ds un MsgBox. De plus j'ai le
même
algorithme lors de la création de cette liste déroulante et cela se passe
très bien. La seule différence c'est que lors de la création je fais un
Clear de la colonne.

La mise à jour de la liste déroulante dans la céllule est :

MsgBox ("valeur ") & temp
For j = Plig + 2 To Dlig
Cells(j, (Pcol - 1)).Validation.Delete
Cells(j, (Pcol - 1)).Validation.Add xlValidateList,
Formula1:=Left(temp, Len(temp) - 1)
Next j

Y a t'il une erreur ?

Merci.





---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000745-2, 29/05/2007
Analyse le : 29/05/2007 13:58:24
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com





---
Antivirus avast! : message Entrant sain.
Base de donnees virale (VPS) : 000745-2, 29/05/2007
Analyse le : 29/05/2007 15:39:37
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com








---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000746-0, 30/05/2007
Analyse le : 30/05/2007 17:54:19
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com

Avatar
Thierry
Merci pour l'info
Voilà j'ai utiliser ton info comme cela :

ActiveWorkbook.Names.Add Name:="Liste" & j,
RefersTo:="=offset(choix2,1,match(Cells(" & j & ", " & k &
"),choix1,0)-1,counta(offset(choix2,,match(Cells(" & j & ", " & k &
"),choix1,0)-1))-1)"

et cela me donne entre autre cette forme :

ÞCALER(choix2;1;EQUIV(Cells(12;
3);choix1;0)-1;NBVAL(DECALER(choix2;;EQUIV(Cells(12; 3);choix1;0)-1))-1)

toutes les virgules sont des points virgules est ce que c'est pour cela que
mon add plante ?

"Jacky" a écrit dans le message de news:

Re...
Un peu plus épurer
'----------
Sub jj()
With Sheets("paramètre")
ActiveWorkbook.Names.Add Name:="Liste",
RefersTo:="=OFFSET(paramètre!$i$1,,,COUNTA(paramètre!$i:$i))"
End With
With Sheets("janvier").[a1].Validation
.Delete
.Add Type:=xlValidateList, Formula1:="=Liste"
End With
End Sub
'---------

--
Salutations
JJ



"Thierry" a écrit dans le message de news:
ew%
est il possible de rentrer ces formule par macro vba et si oui comment ?
imaginon que le contenu de ma liste se trouve feuille paramètres colonne
i et que je veux entrer

la formule feuille janvier colonne a1 ?






---
Antivirus avast! : message Entrant sain.
Base de donnees virale (VPS) : 000745-2, 29/05/2007
Analyse le : 30/05/2007 06:49:04
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com








---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000746-1, 31/05/2007
Analyse le : 01/06/2007 11:39:24
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com