|
|
|
|
JsJulieta, le jeudi 19 octobre 2006 à 12:04:06J'aimerais bien t'aider mais je comprends pas exactement ton problème...
Quel est le résultat obtenu, quelles différence avec celui que tu veux, en quoi c'est genant etc |
en fait si tu as en premiere colonne le mot X et puis 3 cellules suivantes sur la meme ligne contenant des infos sur X, je veux creer dans une autre feuille une cellule avec X dedans et a cote une cellule avec liste deroulante comprenant le contenu des 3 cellules precedentes.
pour cela je cree sous vba une liste avec les 3 cellules et je leur attribue un nom, a savoir celui contenu dans la premiere colonne (par exemple X) : a = Cells(i, 1).Value ActiveWorkbook.Names.Add Name:=a, RefersToR1C1:= _ "=result!R2C2:R2C4" je veux creer une liste deroulante pour chacune des premieres cellules, donc creer pour chaque ligne une liste sous vba avec comme nom le contenu de la premiere cellule (le nom de cette liste variera donc pour chaque ligne). Le probleme est que si la variable a = le contenu de chaque premiere cellule, et qu ensuite la liste doit prendre le nom contenu dans a, eh bien ca bug Name:=a VBA comprend pas et j arrive pas a trouver la bonne syntaxe aurai tu une idee? |
J'avoue que là je vois pas trop le problème...
Met un point d'arret juste avant ta ligne name:=a, et avec la fenetre d'execution VB (affichage fenetre d'execution) regarde ce que contient a en tapant : " ? a" et entrée. essaye aussi en déclarant ta variable au tout début de ton code dim a as string |
autre chose...
il semble que t'oublies d'incrémenter les valeurs des listes à ce niveau RefersToR1C1:= _ "=result!R2C2:R2C256" |
quand je met le point d arret, a contient "X" (avec les guillemets, normal c est une chaine de caractere) ce qui en theorie est normalement reconnu par la commande Name, enfin c est ce que je croyais!
en fait niveau syntaxe ca devrait etre marque comme ca: Name:="X" Mais comme le nom varie a chaque fois, je suis obligee de preciser que le nom est egal a la variable a et donc de retirer les guillemets. et si je les mets, il croit que le nom de la liste est a chaque fois le mot "a" en ce qui concerne la variable, pas de souci elle est bien definie au debut comme une chaine de caractere. pour: "il semble que t'oublies d'incrémenter les valeurs des listes à ce niveau RefersToR1C1:= _ "=result!R2C2:R2C256" il y a en effet une erreur. je croi q les chiffres qui font reference a l emplacement des cellules sont une reference fixe (designe l'emplacement dans la feuille) et pas relative (emplacement par rapport a la cellule selectionnee). du coup ca me fai un probleme supplementaire, car mes chiffres doivent varier en meme temps que je passe a la ligne suivante... |
Il semblerait que le problème se situe bien au niveau des guillemets...
Je suppose que si tu mets le nom de la liste en dur ca marche... A ce moment là il faut essayer de bidouiller sur ca. Pour créer ta macro tu as utilisé l'enregistreur? Sinon pour ton 2ème problème, tu peux passer utiliser l'autre syntaxe 'un truc genre R[2]C[2] qui veut dire la ligne courante + 2, la colonne courante +2 (un truc du genre, ca fait 2 ans que j'ai pas fait de VB excel) ou alors tu te sert de ton i... A mon avis les 2 doivent marcher. Je regarderai demain pour otn nom de variable Bonne soirée et bon courage |
ok ca marche pour les references de liste je vai utiliser ce que tu m a conseille
pour creer le programme, je me suis efectivement base sur l enregistrement de la macro, mais bon ca a pas toujours du bon.. si tu veu modifier un truc, eh ben ca marche plus! en tou k merci pour ton aide, je vai continuer a m arracher les cheveux sur le probleme encore un peu pour aujourd hui. Bonne soiree a toi aussi, tiens moi au courant si tu as du nouveau merci |
Re bonjour!
J'ai un peu regardé chez moi vite fait et j'ai pas eu le meme problème que toi. Avec le meme code (à peu près)... J'ai bien réussi à créer 2 listes. Le contenu était le meme mais ca c'est normal car j'ai laissé les références fixes comme toi. La seule chose qui change par rapport à toi c'est ma déclaration de variables faite avec dim, et la ligne avec workbook machin que j'ai pas. Sinon ta ligne rows(i).select est inutile je pense... Préviens moi si jamais ca marche Bon courage |
Bonjour,
sans trop approfondir ton pb (au passage, un fichier joint aurait facilité la compréhension!), je pense que la solution repose sur l'utilisation de la fonction INDIRECT() que tu positionnes dans la définition de ta liste de validation. donc a priori pas besoin de code pour cela. voici un exemple : http://cjoint.com/?kukZuvllyr A+ |
merci pour ces reponses, je vai essayer de suite! |
merci pour ces reponses, je vai essayer de suite! |
merci pour ces reponses, je vai essayer de suite! |
Bonsoir,
une solution plus complète et sans macro : tu définis un nom disons "test" avec : test=DECALER(Feuil1!$A$1;EQUIV(Feuil1!$B$4;Feuil1!$A$1:$A$1000;0)-1;1;1;NBVAL(INDEX(Feuil1!$1:$1000;EQUIV(Feuil1!$B$4;Feuil1!$A$1:$A$1000;0);0))-1) où B4 contient une première liste de validation pour choisir le premier niveau de nom. tu mets en C4 une validation liste =test et le tour est joué. si tu veux un fichier, regarde http://cjoint.com/?kAcoesVkze cordialement |
| 04/01 09h47 | Listes déoulantes simples | Excel |
| 12/11 01h11 | [excel] | Excel |
| 07/12 23h48 | Liste déroulante avec saisie semi automatique pour EXCEL | Excel |
| 26/06 11h30 | Sauvegarde du registre | Windows |
| 10/01 11h18 | Supprimer un compte MSN Messenger | MSN Messenger |
| 05/09 15h09 | [VBA-Excel]-Liste déroulante | 17 |
| 30/05 09h44 | Formule VBA sur excel liste déroulante | 25 |
| 05/07 11h11 | [Excel] Liste déroulante de longueur variable | 12 |
| 16/07 12h15 | Excel - liste deroulante - autre valeur ! | 2 |
![]() | Ma Liste d'Achats - Faire les courses est une tâche bien compliquée pour les non initiés. Ma liste d'achats est comme son nom l'indique, un... | Catégorie: Environnement de travail Licence: Freeware/gratuit |
![]() | SpaceTime - Pour plus de fluidité et d'ergonomie dans vos recherches sur le web, en mode interactif, c'est encore mieux. Space Time est... | Catégorie: Internet Licence: Freeware/gratuit |
![]() | Excel Viewer - Avec Microsoft Office Excel Viewer 2003, vous pouvez ouvrir, afficher et imprimer des classeurs Excel (fichiers XLS ), même... | Catégorie: Tableur Licence: Freeware/gratuit |
![]() | MOREFUNC (Macro complémentaire EXCEL) - Morefunc est une macro complémentaire proposant 67 nouvelles fonctions de feuille de calcul pour Excel. Ces fonctions sont... | Catégorie: Tableur Licence: Freeware/gratuit |
![]() | Listo WBC-464 Webcam | Catégorie: Webcam | 9.89 € Webdistrib |
![]() | Listo MCH 785 | Catégorie: Chaîne Hi-Fi | 48.90 € Webdistrib |
![]() | Sony Micro Vault Excellence | Catégorie: Carte Mémoire / Clé USB | 72.51 € Amazon.fr |
![]() | Sony Micro Vault Excellence | Catégorie: Carte Mémoire / Clé USB | 16.74 € Misco FR |