Liste à choix multiple
clulu34
Messages postés
15
Date d'inscription
Statut
Membre
Dernière intervention
-
Le Pingou Messages postés 12249 Date d'inscription Statut Contributeur Dernière intervention -
Le Pingou Messages postés 12249 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je viens vous soumettre un problème que j'ai dans un long tableau avec ma colonne à "liste à choix multiple". Voilà :
Dans un fichier excel 2007, où j'ai déjà beaucoup de lignes (3044) et qui va être ré-alimenté régulièrement (4 ou 5 fois par mois), j'ai une colonne dans laquelle je dois avoir le choix de sélectionner plusieurs options dans une liste déroulante à choix multiple. J'ai suivi les instructions données par pijaku sur un autre post (ici = https://forums.commentcamarche.net/forum/affich-19616792-liste-deroulante-a-choix-multiple-excel-2007 mais ça ne fonctionne pas correctement : quand je double-clique sur une cellule de la colonne en question, ça m'ouvre bien ma liste à choix multiple sur laquelle je peux sélectionner mes différents choix, mais quand je clique sur valider, au lieu de mettre mes choix sélectionnés dans la cellule où j'ai double-cliqué, ça me ramène à la dernière cellule que j'ai indiqué dans mes codes VBA, à savoir O10000 (lettre O suivi de 10000) sans rajouter mes choix sélectionnés dans aucune des 2 cellules (ni dans celle où j'ai double-cliqué, ni dans la O10000).
(J'ai limité à 10000, mais en réalité, je veux pouvoir avoir la liste de choix utilisable dans chaque cellule de la colonne O (à part la 1° qui correspond au titre de ma colonne. Je ne connais pas vraiment le langage VBA, j'ai juste utilisé les infos du post indiqué ci-dessus)
Voici ce que j'ai mis :
Dans « userForm1 » =
-------------------------------------------------------------------------
Option Explicit
Private Sub CommandButton1_Click()
Dim i As Byte
Dim ValeurARetourner As String
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
ValeurARetourner = ValeurARetourner & ListBox1.List(i) & " & "
End If
Next i
With Sheets("Listing affaires")
.Range("O2") = Left(ValeurARetourner, Len(ValeurARetourner) - 3)
.Range("O10000").Activate
End With
UserForm1.Hide
Unload UserForm1
End Sub
Private Sub ListBox1_Click()
End Sub
Private Sub UserForm_Initialize()
Dim i As Integer, Derlig As Integer
ListBox1.Clear
Derlig = Sheets("Listing affaires").Cells(65536, 27).End(xlUp).Row
For i = 1 To Derlig
ListBox1.AddItem Cells(i, 27).Value
Next i
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
ListBox1.Selected(i) = False
End If
Next i
End Sub
-------------------------------------------------------------------------
Et dans worksheet
-------------------------------------------------------------------------
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("O2:O10000")) Is Nothing Then
Exit Sub
Else: Target.Value = ""
Load UserForm1
UserForm1.Show
End If
End Sub
-------------------------------------------------------------------------
Je ne sais pas si je suis très claire, aussi, n'hésitez pas à me poser des questions.
1/ Est-ce que je me trompe en pensant que mes infos range ne sont pas correctes ?
2/ j'ai l'impression qu'il me manque des codes dans le worksheet au niveau du « End If » (avant ou après) ??
Précision = j'ai créé ma liste de choix dans une colonne (AA) éloignée des autres, mais sur la même feuille que là où doivent s'afficher mes choix (colonne O)
==> ce qui me fait penser que c'est peut-être pas une bonne idée si un jour on supprime ou rajoute une colonne dans le tableau
PS : Chez moi, j'ai excel 2013 mais au bureau, c'est excel 2007. Je sais que normalement, ça ne devrait pas être un souci (du moins j'espère) mais je préfère le préciser !!
Désolée d'être aussi longue, mais je suppose que c'est nécessaire pour que vous ayez le max d'info.
Et un grand merci d'avance pour votre aide ! ;-D
Je viens vous soumettre un problème que j'ai dans un long tableau avec ma colonne à "liste à choix multiple". Voilà :
Dans un fichier excel 2007, où j'ai déjà beaucoup de lignes (3044) et qui va être ré-alimenté régulièrement (4 ou 5 fois par mois), j'ai une colonne dans laquelle je dois avoir le choix de sélectionner plusieurs options dans une liste déroulante à choix multiple. J'ai suivi les instructions données par pijaku sur un autre post (ici = https://forums.commentcamarche.net/forum/affich-19616792-liste-deroulante-a-choix-multiple-excel-2007 mais ça ne fonctionne pas correctement : quand je double-clique sur une cellule de la colonne en question, ça m'ouvre bien ma liste à choix multiple sur laquelle je peux sélectionner mes différents choix, mais quand je clique sur valider, au lieu de mettre mes choix sélectionnés dans la cellule où j'ai double-cliqué, ça me ramène à la dernière cellule que j'ai indiqué dans mes codes VBA, à savoir O10000 (lettre O suivi de 10000) sans rajouter mes choix sélectionnés dans aucune des 2 cellules (ni dans celle où j'ai double-cliqué, ni dans la O10000).
(J'ai limité à 10000, mais en réalité, je veux pouvoir avoir la liste de choix utilisable dans chaque cellule de la colonne O (à part la 1° qui correspond au titre de ma colonne. Je ne connais pas vraiment le langage VBA, j'ai juste utilisé les infos du post indiqué ci-dessus)
Voici ce que j'ai mis :
Dans « userForm1 » =
-------------------------------------------------------------------------
Option Explicit
Private Sub CommandButton1_Click()
Dim i As Byte
Dim ValeurARetourner As String
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
ValeurARetourner = ValeurARetourner & ListBox1.List(i) & " & "
End If
Next i
With Sheets("Listing affaires")
.Range("O2") = Left(ValeurARetourner, Len(ValeurARetourner) - 3)
.Range("O10000").Activate
End With
UserForm1.Hide
Unload UserForm1
End Sub
Private Sub ListBox1_Click()
End Sub
Private Sub UserForm_Initialize()
Dim i As Integer, Derlig As Integer
ListBox1.Clear
Derlig = Sheets("Listing affaires").Cells(65536, 27).End(xlUp).Row
For i = 1 To Derlig
ListBox1.AddItem Cells(i, 27).Value
Next i
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
ListBox1.Selected(i) = False
End If
Next i
End Sub
-------------------------------------------------------------------------
Et dans worksheet
-------------------------------------------------------------------------
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("O2:O10000")) Is Nothing Then
Exit Sub
Else: Target.Value = ""
Load UserForm1
UserForm1.Show
End If
End Sub
-------------------------------------------------------------------------
Je ne sais pas si je suis très claire, aussi, n'hésitez pas à me poser des questions.
1/ Est-ce que je me trompe en pensant que mes infos range ne sont pas correctes ?
2/ j'ai l'impression qu'il me manque des codes dans le worksheet au niveau du « End If » (avant ou après) ??
Précision = j'ai créé ma liste de choix dans une colonne (AA) éloignée des autres, mais sur la même feuille que là où doivent s'afficher mes choix (colonne O)
==> ce qui me fait penser que c'est peut-être pas une bonne idée si un jour on supprime ou rajoute une colonne dans le tableau
PS : Chez moi, j'ai excel 2013 mais au bureau, c'est excel 2007. Je sais que normalement, ça ne devrait pas être un souci (du moins j'espère) mais je préfère le préciser !!
Désolée d'être aussi longue, mais je suppose que c'est nécessaire pour que vous ayez le max d'info.
Et un grand merci d'avance pour votre aide ! ;-D
A voir également:
- Liste à choix multiple
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste code ascii - Guide
- Ecran multiple pc - Guide
- Site dangereux liste - Guide
20 réponses
Bonjour,
Bon, j'ai essayé de changer des codes, notamment, remplacer "range" par "colomn ("o") dans Worsheet, et idem dans le UserForm1, mais ça ne marchait plus. J'ai donc remis comme avant, mais maintenant j'ai la 1° ligne qui est surligné en fluo jaune dans worksheet quand je teste ???
Personne n'a une idée pour m'aider à avancer ?
Merci
Bon, j'ai essayé de changer des codes, notamment, remplacer "range" par "colomn ("o") dans Worsheet, et idem dans le UserForm1, mais ça ne marchait plus. J'ai donc remis comme avant, mais maintenant j'ai la 1° ligne qui est surligné en fluo jaune dans worksheet quand je teste ???
Personne n'a une idée pour m'aider à avancer ?
Merci
Bonjour,
Etant donné que c'est le code qui fait problème, alors sans ce dernier ce n'est pas possible.
Pour l'envoi du classeur, faite comme suit : créer une copie puis sur la feuille vous effacez les données confidentielles.... !
Etant donné que c'est le code qui fait problème, alors sans ce dernier ce n'est pas possible.
Pour l'envoi du classeur, faite comme suit : créer une copie puis sur la feuille vous effacez les données confidentielles.... !
Bonsoir,
Voici le fichier original avec les codes VBA que j'ai créés. La liste de choix s'ouvre bien, mais quand je sélectionne les infos voulues, elles n'apparaissent pas dans la cellule où j'ai double-cliqué, ni dans celle où j'atterri quand je valide ??? Je pense que mes références de cellules sont incorrectes, et d'ailleurs, je voudrais que ça marche dans toute la colonne, et non pas que dans celles que j'avais mise (O2 à O1000).
https://www.cjoint.com/c/EGjsC5sNOkz
Pour info, je ne sais pas si c'est important, mais c'est un fichier qui sera partagé entre plusieurs personnes sur un réseau !
Et enfin, j'imagine que si quelqu'un modifie la structure du fichier (rajoute ou supprime une colonne, une feuille, etc...) ça va créer un bug ?
Bonne soirée et merci de votre aide.
Voici le fichier original avec les codes VBA que j'ai créés. La liste de choix s'ouvre bien, mais quand je sélectionne les infos voulues, elles n'apparaissent pas dans la cellule où j'ai double-cliqué, ni dans celle où j'atterri quand je valide ??? Je pense que mes références de cellules sont incorrectes, et d'ailleurs, je voudrais que ça marche dans toute la colonne, et non pas que dans celles que j'avais mise (O2 à O1000).
https://www.cjoint.com/c/EGjsC5sNOkz
Pour info, je ne sais pas si c'est important, mais c'est un fichier qui sera partagé entre plusieurs personnes sur un réseau !
Et enfin, j'imagine que si quelqu'un modifie la structure du fichier (rajoute ou supprime une colonne, une feuille, etc...) ça va créer un bug ?
Bonne soirée et merci de votre aide.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci Maurice,
Pourriez-vous me donner quelques explications. Je ne suis pas contre le nouvel onglet pour la liste des choix, mais est-ce une obligation ??
D'autre part, la liste de choix s'ouvre bien, mais même si je sélectionne plusieurs éléments dans la dite liste à choix multiple, seulement le dernier choix cliqué est pris en compte, ce qui n'est donc pas correct selon moi. Je dois pouvoir avoir plusieurs choix possibles et qui s'affiche dans la cellule.
Merci pour les modifs, mais surtout merci de m'expliquer afin que je puisse comprendre et progresser en VBA.
Pourriez-vous me donner quelques explications. Je ne suis pas contre le nouvel onglet pour la liste des choix, mais est-ce une obligation ??
D'autre part, la liste de choix s'ouvre bien, mais même si je sélectionne plusieurs éléments dans la dite liste à choix multiple, seulement le dernier choix cliqué est pris en compte, ce qui n'est donc pas correct selon moi. Je dois pouvoir avoir plusieurs choix possibles et qui s'affiche dans la cellule.
Merci pour les modifs, mais surtout merci de m'expliquer afin que je puisse comprendre et progresser en VBA.
Bonjour,
Y'aurait-il quelqu'un qui puisse m'aider, Maurice n'ayant fait qu'un passage éclair sur ce forum et n'ayant pas répondu à mes diverses questions. Je vous en remercie d'avance. Donc je récapitule les questions :
1/ Je pense que mes références de cellules sont incorrectes, et d'ailleurs, je voudrais que ça marche dans toute la colonne, et non pas que dans celles que j'avais mise (O2 à O1000), mais je ne sais pas comment / quel code VBA pour que ça marche dans chaque cellule de la colonne O ???
2/Pour info, je ne sais pas si c'est important, mais c'est un fichier qui sera partagé entre plusieurs personnes sur un réseau !
3/ j'imagine que si quelqu'un modifie la structure du fichier (rajoute ou supprime une colonne, une feuille, etc...) ça va créer un bug ?
4/ Suite aux modifs de Maurice :
Je ne suis pas contre le nouvel onglet pour la liste des choix, mais est-ce une obligation (mais si cela doit simplifier le problème, pas de souci) ??
Je vous en remercie d'avance.
Bon WE
Y'aurait-il quelqu'un qui puisse m'aider, Maurice n'ayant fait qu'un passage éclair sur ce forum et n'ayant pas répondu à mes diverses questions. Je vous en remercie d'avance. Donc je récapitule les questions :
1/ Je pense que mes références de cellules sont incorrectes, et d'ailleurs, je voudrais que ça marche dans toute la colonne, et non pas que dans celles que j'avais mise (O2 à O1000), mais je ne sais pas comment / quel code VBA pour que ça marche dans chaque cellule de la colonne O ???
2/Pour info, je ne sais pas si c'est important, mais c'est un fichier qui sera partagé entre plusieurs personnes sur un réseau !
3/ j'imagine que si quelqu'un modifie la structure du fichier (rajoute ou supprime une colonne, une feuille, etc...) ça va créer un bug ?
4/ Suite aux modifs de Maurice :
Je ne suis pas contre le nouvel onglet pour la liste des choix, mais est-ce une obligation (mais si cela doit simplifier le problème, pas de souci) ??
Je vous en remercie d'avance.
Bon WE
Bonjour
Voila les modifes demander
http://www.cjoint.com/c/EGls4VFQFzk
sinon if faut que tu cherche un peux
A+
Maurice
Voila les modifes demander
http://www.cjoint.com/c/EGls4VFQFzk
sinon if faut que tu cherche un peux
A+
Maurice
Bonjour Maurice
Merci pour les modifs, c'est nickel MAIS, si je demande des explications c'est justement pour chercher, comprendre et pouvoir faire moi-même. D'ailleurs, j'ai bien fait le fichier de base en suivant des instructions que j'ai essayé d'adapter à mon cas.
Je le répète, je suis complètement novice en VBA.
Dans cette nouvelle version que je viens de récupérer, je ne trouve pas l'endroit où se trouve la liste des choix de base. Hors, je dois y avoir accès pour pouvoir modifier/rajouter des choix. Mais ici, il n'y a pas d'onglet caché (ou alors vraiment très bien caché !! ;-) ) alors que sur la version précédente, j'avais trouvé le nouvel onglet avec la liste.
Merci de m'en dire un minimum pour que je comprenne !!
Je pensais que le but du forum était justement d'avoir des explications et de l'aide pour pouvoir faire soi-même... Visiblement, je me suis trompée. Désolée.
Bon dimanche, et encore merci.
Je pars décortiquer comme je peux cette nouvelle version ;-)
Merci pour les modifs, c'est nickel MAIS, si je demande des explications c'est justement pour chercher, comprendre et pouvoir faire moi-même. D'ailleurs, j'ai bien fait le fichier de base en suivant des instructions que j'ai essayé d'adapter à mon cas.
Je le répète, je suis complètement novice en VBA.
Dans cette nouvelle version que je viens de récupérer, je ne trouve pas l'endroit où se trouve la liste des choix de base. Hors, je dois y avoir accès pour pouvoir modifier/rajouter des choix. Mais ici, il n'y a pas d'onglet caché (ou alors vraiment très bien caché !! ;-) ) alors que sur la version précédente, j'avais trouvé le nouvel onglet avec la liste.
Merci de m'en dire un minimum pour que je comprenne !!
Je pensais que le but du forum était justement d'avoir des explications et de l'aide pour pouvoir faire soi-même... Visiblement, je me suis trompée. Désolée.
Bon dimanche, et encore merci.
Je pars décortiquer comme je peux cette nouvelle version ;-)
Bonjour clulu34,
Excusez l'intrusion, c'est effectivement désolant ce manque de réponse et de plus il m'est impossible d'accéder au fichier ... c'est dur de cette manière...
Excusez l'intrusion, c'est effectivement désolant ce manque de réponse et de plus il m'est impossible d'accéder au fichier ... c'est dur de cette manière...
Bonjour Pingou,
Pas de souci, il n'y a pas d'intrusion, je cherche effectivement de l'aide.
Pour accéder au fichier que Maurice transmet, il faut sélectionner la ligne d'adresse qu'il indique et avec un clic droit, on accède à la page pour pouvoir récupérer le fichier (ou faire un copier/coller dans la barre d'adresse.
http://www.cjoint.com/c/EGls4VFQFzk
Mais dans le fichier joint, il n'y a aucune explication sur les modifs apportées par rapport à mon fichier d'origine. J'avais créée des codes VBA qui ont été supprimés (alors que j'avais suivi des instructions données sur un autre post comme indiqué au début). Je suppose qu'ils étaient inutiles, puisque ça marche bien dans cette nouvelle version, mais j'aurai bien aimé comprendre pourquoi afin de ne pas reproduire ce genre d'erreur. Sauf que sans explications, c'est compliqué. Tout comme l'onglet "disparu" avec la liste des choix... j'essaye de chercher des infos sur divers sites expliquant le VBA, mais je dois pas chercher correctement, car je ne trouve pas... C'est dommage, car du coup, je ne vais pas pouvoir utiliser ce fichier puisque je ne peux pas modifier la liste de choix.
Si quelqu'un peut me donner quelques explications/pistes, ce serait sympa.
Pas de souci, il n'y a pas d'intrusion, je cherche effectivement de l'aide.
Pour accéder au fichier que Maurice transmet, il faut sélectionner la ligne d'adresse qu'il indique et avec un clic droit, on accède à la page pour pouvoir récupérer le fichier (ou faire un copier/coller dans la barre d'adresse.
http://www.cjoint.com/c/EGls4VFQFzk
Mais dans le fichier joint, il n'y a aucune explication sur les modifs apportées par rapport à mon fichier d'origine. J'avais créée des codes VBA qui ont été supprimés (alors que j'avais suivi des instructions données sur un autre post comme indiqué au début). Je suppose qu'ils étaient inutiles, puisque ça marche bien dans cette nouvelle version, mais j'aurai bien aimé comprendre pourquoi afin de ne pas reproduire ce genre d'erreur. Sauf que sans explications, c'est compliqué. Tout comme l'onglet "disparu" avec la liste des choix... j'essaye de chercher des infos sur divers sites expliquant le VBA, mais je dois pas chercher correctement, car je ne trouve pas... C'est dommage, car du coup, je ne vais pas pouvoir utiliser ce fichier puisque je ne peux pas modifier la liste de choix.
Si quelqu'un peut me donner quelques explications/pistes, ce serait sympa.
Bonsoir,
A force de chercher, chercher, et... chercher encore, j'ai fini par retrouver l'onglet correspondant à la liste de choix. (Alors que quelques mots d'explications m'auraient permis de gagner des heures et des heures...)
Bref, pour ceux que ça pourrait intéresser :
En fait, dans les propriétés correspondant à la l'onglet "Liste" (Feuil2) Maurice avait sélectionné "2 - xSheetVeryHidden" dans la partie "visible".
Pas bien compliqué quand on sait ce qu'on cherche, n'est-ce pas... ;-D
A force de chercher, chercher, et... chercher encore, j'ai fini par retrouver l'onglet correspondant à la liste de choix. (Alors que quelques mots d'explications m'auraient permis de gagner des heures et des heures...)
Bref, pour ceux que ça pourrait intéresser :
En fait, dans les propriétés correspondant à la l'onglet "Liste" (Feuil2) Maurice avait sélectionné "2 - xSheetVeryHidden" dans la partie "visible".
Pas bien compliqué quand on sait ce qu'on cherche, n'est-ce pas... ;-D
Bonjour,
Je vais consulter les 3 classeurs en tenant compte de votre demande et vous renseignerez demain en fin de journée.
Je vais consulter les 3 classeurs en tenant compte de votre demande et vous renseignerez demain en fin de journée.
Bonsoir Clulu34,
En consultant votre classeur d'origine j'ai trouvez que votre code était bon sauf petite modification.
Je l'ai corrigé (voir petite note directement dans la procédure) et il semble que tout est OK
Votre classeur : http://www.cjoint.com/c/EGmvTQzTxgY
Au cas où vor le faite savoir.
Salutations.
Le Pingou
En consultant votre classeur d'origine j'ai trouvez que votre code était bon sauf petite modification.
Je l'ai corrigé (voir petite note directement dans la procédure) et il semble que tout est OK
Votre classeur : http://www.cjoint.com/c/EGmvTQzTxgY
Au cas où vor le faite savoir.
Salutations.
Le Pingou
Bonjour
voila une modife
Faire Ctrl+k pour voir la liste et la modifier
http://www.cjoint.com/c/EGnlVj2v7EM
A+
Maurice
voila une modife
Faire Ctrl+k pour voir la liste et la modifier
http://www.cjoint.com/c/EGnlVj2v7EM
A+
Maurice
Bonjour Maurice,
Inutile de continuer à envoyer des fichiers avec des modifs sans me donner aucune explication. Visiblement, vous n'avez pas compris que le but d'un forum est d'expliquer les choses, pas de les faire vous-même. Je vous remercie pour vos fichiers, mais ne pouvant les exploiter moi-même, je préfère continuer avec des personnes qui m'expliqueront mes interrogations.
Je vous remercie également pour vos efforts, mais comprenez que je n'ai pas le temps de décortiquer vos fichiers ligne par ligne et chercher ensuite les infos pour comprendre...
PS : votre réponse "Faire Ctrl+k pour voir la liste et la modifier " ne fonctionne pas. De plus, j'avais trouvé la solution à ce problème (voir mon post du 12 juil. 2015 à 22:29).
Cordialement.
Lulu
Inutile de continuer à envoyer des fichiers avec des modifs sans me donner aucune explication. Visiblement, vous n'avez pas compris que le but d'un forum est d'expliquer les choses, pas de les faire vous-même. Je vous remercie pour vos fichiers, mais ne pouvant les exploiter moi-même, je préfère continuer avec des personnes qui m'expliqueront mes interrogations.
Je vous remercie également pour vos efforts, mais comprenez que je n'ai pas le temps de décortiquer vos fichiers ligne par ligne et chercher ensuite les infos pour comprendre...
PS : votre réponse "Faire Ctrl+k pour voir la liste et la modifier " ne fonctionne pas. De plus, j'avais trouvé la solution à ce problème (voir mon post du 12 juil. 2015 à 22:29).
Cordialement.
Lulu
Bonjour,
J'ose espérer que vous avez constaté que votre classeur de départ et son code fonctionne avec les petites modifications.
Concernant la liste de choix c'est bon sur la même feuille mais toujours préférable, pour le gestion/confort d'utilisation, de séparer les listes de la feuille qui contient le tableau principale.
Désolé pour le désagrément.
Salutations.
Le Pingou
J'ose espérer que vous avez constaté que votre classeur de départ et son code fonctionne avec les petites modifications.
Concernant la liste de choix c'est bon sur la même feuille mais toujours préférable, pour le gestion/confort d'utilisation, de séparer les listes de la feuille qui contient le tableau principale.
Désolé pour le désagrément.
Salutations.
Le Pingou
Bonsoir Le Pingou,
Merci pour vos infos. J'ai fait la modif pour le choix multiple et ça marche impec ! ;-D
D'autre part, je pense qu'effectivement faire la liste de choix multiple sur une 2° feuille, ce sera + pratique en effet, surtout si on doit rajouter ou modifier des choix. Je vais essayer de le faire.
Concernant les désagréments, vous n'y êtes pour rien et finalement, les fichiers que Maurice a fait sont intéressants, mais ce qui est pénible, c'est de devoir passer du temps à chercher où il a apporté des modifs et ensuite de chercher à comprendre pourquoi. Il semble être très doué pour le VBA, mais ferait un très mauvais professeur à moins d'avoir le temps de chercher...
Je reviens avec quelques questions concernant des codes...
Merci
clulu
Merci pour vos infos. J'ai fait la modif pour le choix multiple et ça marche impec ! ;-D
D'autre part, je pense qu'effectivement faire la liste de choix multiple sur une 2° feuille, ce sera + pratique en effet, surtout si on doit rajouter ou modifier des choix. Je vais essayer de le faire.
Concernant les désagréments, vous n'y êtes pour rien et finalement, les fichiers que Maurice a fait sont intéressants, mais ce qui est pénible, c'est de devoir passer du temps à chercher où il a apporté des modifs et ensuite de chercher à comprendre pourquoi. Il semble être très doué pour le VBA, mais ferait un très mauvais professeur à moins d'avoir le temps de chercher...
Je reviens avec quelques questions concernant des codes...
Merci
clulu
Re-
Comme dit ci-dessus, j'ai essayé de transférer ma liste de choix multiple dans une 2° feuille que j'ai nommé Categorie. Ma liste se trouve dans la 1° colonne à partir de la 2° cellule.
Voici les codes que j'ai repris pour le UserForm =
------------------------------------------------------
Option Explicit
Dim Lig As Long
Dim Col As Long
Private Sub CommandButton1_Click()
Dim i As Long, adr
Dim ValeurARetourner As String
' *** récupérer l'adresse de la cellule active
adr = ActiveCell.Address
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
ValeurARetourner = ValeurARetourner & ListBox1.List(i) & " & "
End If
Next i
With Sheets("Listing affaires")
' *** insérer le choix dans la cellule concernée/active
Range(adr) = Left(ValeurARetourner, Len(ValeurARetourner) - 3)
End With
UserForm1.Hide
Unload UserForm1
End Sub
Private Sub ListBox1_Click()
End Sub
Private Sub UserForm_Initialize()
Dim i As Integer, Derlig As Integer
ListBox1.Clear
Derlig = Sheets("Categories").Cells(65536, 1).End(xlUp).Row
For i = 1 To Derlig
ListBox1.AddItem Cells(i, 1).Value
Next i
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
ListBox1.Selected(i) = False
End If
Next i
End Sub
------------------------------------------------------
Quand je teste, ça m'ouvre la liste box mais sans ma liste de choix (avec Nbre en tête de liste et rien dessous ???) et me renvoi une erreur "code 5" et dans le débogage, ça me surligne la partie en gras soulignée ci-dessus.
D'autre part, mais ça, c'est juste pour une question de lisibilité, j'ai essayé de remplacer les & qui se mettent entre 2 choix par / , mais ça ne marche pas. Est-ce possible ? Si c'est possible, tant mieux, mais je crains que non ? Me trompe-je ?
Comme dit ci-dessus, j'ai essayé de transférer ma liste de choix multiple dans une 2° feuille que j'ai nommé Categorie. Ma liste se trouve dans la 1° colonne à partir de la 2° cellule.
Voici les codes que j'ai repris pour le UserForm =
------------------------------------------------------
Option Explicit
Dim Lig As Long
Dim Col As Long
Private Sub CommandButton1_Click()
Dim i As Long, adr
Dim ValeurARetourner As String
' *** récupérer l'adresse de la cellule active
adr = ActiveCell.Address
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
ValeurARetourner = ValeurARetourner & ListBox1.List(i) & " & "
End If
Next i
With Sheets("Listing affaires")
' *** insérer le choix dans la cellule concernée/active
Range(adr) = Left(ValeurARetourner, Len(ValeurARetourner) - 3)
End With
UserForm1.Hide
Unload UserForm1
End Sub
Private Sub ListBox1_Click()
End Sub
Private Sub UserForm_Initialize()
Dim i As Integer, Derlig As Integer
ListBox1.Clear
Derlig = Sheets("Categories").Cells(65536, 1).End(xlUp).Row
For i = 1 To Derlig
ListBox1.AddItem Cells(i, 1).Value
Next i
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
ListBox1.Selected(i) = False
End If
Next i
End Sub
------------------------------------------------------
Quand je teste, ça m'ouvre la liste box mais sans ma liste de choix (avec Nbre en tête de liste et rien dessous ???) et me renvoi une erreur "code 5" et dans le débogage, ça me surligne la partie en gras soulignée ci-dessus.
D'autre part, mais ça, c'est juste pour une question de lisibilité, j'ai essayé de remplacer les & qui se mettent entre 2 choix par / , mais ça ne marche pas. Est-ce possible ? Si c'est possible, tant mieux, mais je crains que non ? Me trompe-je ?
Bonsoir,
Vite avant le petit sommeil.
Votre code corrigé, je pense que c'est le nom de la feuille qui est faux (note dans le code)
Bonne nuit.
Vite avant le petit sommeil.
Votre code corrigé, je pense que c'est le nom de la feuille qui est faux (note dans le code)
Private Sub UserForm_Initialize() Dim i As Integer, Derlig As Integer ListBox1.Clear ' nom de la feuille est Categorie ...sans le S Derlig = Sheets("Categorie").Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To Derlig ' il faut faire référence à la bonne feuille ListBox1.AddItem Sheets("Categorie").Cells(i, 1).Value Next i For i = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(i) = True Then ListBox1.Selected(i) = False End If Next i End Sub.
Bonne nuit.
Sur le mien
https://www.cjoint.com/c/EGowkRp7b0z
Pas de souci. Réponse quand vous pouvez. Merci
-------------------------------------
Par contre, je reviens sur des questions précédentes :
2/Pour info, je ne sais pas si c'est important, mais c'est un fichier qui sera partagé entre plusieurs personnes sur un réseau, est-ce un souci ? ==> je pense que non, mais à confirmer ?
3/ j'imagine que si quelqu'un modifie la structure du fichier (rajoute ou supprime une colonne, une feuille, etc...) ça va créer un bug ? ==> Je répond moi-même : oui, si on rajoute une colonne avant celle où était destiné la liste de choix multiple, elle se décale vers la droite. Donc, il faut donc réajuster dans VBA. A moins qu'il y ait une autre solution sans repasser par VBA ???
cLulu
https://www.cjoint.com/c/EGowkRp7b0z
Pas de souci. Réponse quand vous pouvez. Merci
-------------------------------------
Par contre, je reviens sur des questions précédentes :
2/Pour info, je ne sais pas si c'est important, mais c'est un fichier qui sera partagé entre plusieurs personnes sur un réseau, est-ce un souci ? ==> je pense que non, mais à confirmer ?
3/ j'imagine que si quelqu'un modifie la structure du fichier (rajoute ou supprime une colonne, une feuille, etc...) ça va créer un bug ? ==> Je répond moi-même : oui, si on rajoute une colonne avant celle où était destiné la liste de choix multiple, elle se décale vers la droite. Donc, il faut donc réajuster dans VBA. A moins qu'il y ait une autre solution sans repasser par VBA ???
cLulu
Bonjour,
2/Pour info, ..... pense que non, mais à confirmer ?
Réponse: en principe pas de souci. Contrôler qui peut modifier la liste [Catégorie] et s'il y a lieu de la protégée
3/ j'imagine que si quelqu'un modifie la structure .............. autre solution sans repasser par VBA ???
Réponse : il faut adapter la procédure en travaillant par exemple avec le titre de la colonne ou mieux avec une plage nommée. Si vraiment nécessaire alors protéger la structure de la feuille... !
Mon message 26 se rapporte à votre fichier d'origine.
2/Pour info, ..... pense que non, mais à confirmer ?
Réponse: en principe pas de souci. Contrôler qui peut modifier la liste [Catégorie] et s'il y a lieu de la protégée
3/ j'imagine que si quelqu'un modifie la structure .............. autre solution sans repasser par VBA ???
Réponse : il faut adapter la procédure en travaillant par exemple avec le titre de la colonne ou mieux avec une plage nommée. Si vraiment nécessaire alors protéger la structure de la feuille... !
Mon message 26 se rapporte à votre fichier d'origine.
Bonjour,
Je viens d'ouvrir votre dernier lien pour voir la version.
Dans le la procédure du poste 26 il faut mettre le [s] à Catégorie car j'avais pris en compte le nom mentionné dans le début de votre message.
Je viens d'ouvrir votre dernier lien pour voir la version.
Dans le la procédure du poste 26 il faut mettre le [s] à Catégorie car j'avais pris en compte le nom mentionné dans le début de votre message.
Bonjour,
Pour prendre en compte un éventuel changement de la position de la colonne [Catégorie], utilisez cette procédure (la votre modifier)
Pour prendre en compte un éventuel changement de la position de la colonne [Catégorie], utilisez cette procédure (la votre modifier)
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) ' trouver le numéro de la colonne avec titre Catégorie nuco = WorksheetFunction.Match("catégorie", Rows(1), 0) ' code modifier pour tenir compte du n° de la colonne If Intersect(Target, Range(Cells(2, nuco), Cells(Rows.Count, nuco))) Is Nothing Then Exit Sub Else: Target.Value = "" Load UserForm1 UserForm1.Show End If End Sub
Bonsoir Le Pingou,
Désolée, reprise du boulot aujourd'hui. Un imprévu ce soir ne m'a pas permis de regarder vos commentaires et codes. Et demain, je rentrerai relativement tard, donc ce sera pour vendredi.
Pour le code erroné avec le nom de la feuille "categorie", j'avais essayé mais ça n'avait pas marché sauf que je crois avoir oublié le "s" du pluriel. Je recommence le test dès que possible et vous tiens au courant...
Merci pour tout.
Bonne fin de semaine.
cLulu
Désolée, reprise du boulot aujourd'hui. Un imprévu ce soir ne m'a pas permis de regarder vos commentaires et codes. Et demain, je rentrerai relativement tard, donc ce sera pour vendredi.
Pour le code erroné avec le nom de la feuille "categorie", j'avais essayé mais ça n'avait pas marché sauf que je crois avoir oublié le "s" du pluriel. Je recommence le test dès que possible et vous tiens au courant...
Merci pour tout.
Bonne fin de semaine.
cLulu
Je viens de mettre un extrait du tableau vide ici :
https://www.cjoint.com/c/EGiv3cKXy7z
Ce n'est pas le tableau original qui est verrouillé par mot de passe et qui serait bien trop lourds je crois. Il n'y a donc pas les codes VBA dans celui-ci, et je me rends compte que je n'ai pas nommé l'onglet comme dans mon vrai fichier (indiqué dans les codes VBA que j'ai mis sur le forum).
Merci pour votre aide