Problème avec un combobox
Max
-
Max -
Max -
Bonjour,
voilà mon problème !
j'ai un code pour une combobox qui doit permettre de copier les données les unes en dessous des autres dans une colonne et qui efface le nom pour que au fur et à mesure la liste de la combo diminue (ce système permet d'éviter de rentrer 2 fois le même nom).
seulement il y a une ligne du code qui ne passe pas et qui bloque.
en fait le nom est bien copié mais il ne disparait pas dela liste et une boite de dialogue me signale l'erreur/
voiçi le code:
Private Sub clas1_Change()
Range("A2").Select
If Range("A3").Value = "" Then
Range("A3").Value = clas1.Value
Else
Range("A2").End(xlDown).Offset(1, 0).Select
ActiveCell.Value = clas1.Value
End If
If clas1.ListIndex <> -1 Then
clas1.RemoveItem clas1.ListIndex (ça coince içi !)
ActiveCell.ClearContents
End If
End Sub
quelqu'un peut-il m'aider à résoudre le problème car j'ai un travail urgent à faire !
merci à une bonne âme charitable !
Max
voilà mon problème !
j'ai un code pour une combobox qui doit permettre de copier les données les unes en dessous des autres dans une colonne et qui efface le nom pour que au fur et à mesure la liste de la combo diminue (ce système permet d'éviter de rentrer 2 fois le même nom).
seulement il y a une ligne du code qui ne passe pas et qui bloque.
en fait le nom est bien copié mais il ne disparait pas dela liste et une boite de dialogue me signale l'erreur/
voiçi le code:
Private Sub clas1_Change()
Range("A2").Select
If Range("A3").Value = "" Then
Range("A3").Value = clas1.Value
Else
Range("A2").End(xlDown).Offset(1, 0).Select
ActiveCell.Value = clas1.Value
End If
If clas1.ListIndex <> -1 Then
clas1.RemoveItem clas1.ListIndex (ça coince içi !)
ActiveCell.ClearContents
End If
End Sub
quelqu'un peut-il m'aider à résoudre le problème car j'ai un travail urgent à faire !
merci à une bonne âme charitable !
Max
A voir également:
- Problème avec un combobox
- Remplir combobox vba ✓ - Forum Excel
- Propriétés combobox vba ✓ - Forum VB / VBA
- Combobox vba liste déroulante dynamique ✓ - Forum Excel
- Vba combobox listindex ✓ - Forum VB / VBA
- Javascript combobox - Forum Javascript
3 réponses
Bonjour
Ton code paraît bon, mais il faudrait savoir comment est alimenté ta combobox ? Est ce une combobox dans une Userform ou bien directement dans la feuille ? A-t-elle une RowSource ?
m@rina
Ton code paraît bon, mais il faudrait savoir comment est alimenté ta combobox ? Est ce une combobox dans une Userform ou bien directement dans la feuille ? A-t-elle une RowSource ?
m@rina
Bonjour,
Désolée de n'avoir pas répondu plus tôt, mais je ne suis pas toujours derrière mon écran ! ;)
La propriété RowSource fonctionne avec une Userform.
Toujours est-il que RemoveItem ne fonctionne ni avec RowSource ni avec ListFillRange, c'est incompatible.
Ce qui paraît plutôt logique : tu ne peux pas retirer un item alors que, par ailleurs, la propriété impose une liste d'items qui contient celui que tu veux supprimer !
La macro devrait plutôt supprimer la ligne déjà utilisée dans ta feuille où se trouvent les données de la liste.
m@rina
Désolée de n'avoir pas répondu plus tôt, mais je ne suis pas toujours derrière mon écran ! ;)
La propriété RowSource fonctionne avec une Userform.
Toujours est-il que RemoveItem ne fonctionne ni avec RowSource ni avec ListFillRange, c'est incompatible.
Ce qui paraît plutôt logique : tu ne peux pas retirer un item alors que, par ailleurs, la propriété impose une liste d'items qui contient celui que tu veux supprimer !
La macro devrait plutôt supprimer la ligne déjà utilisée dans ta feuille où se trouvent les données de la liste.
m@rina
bonjour et merci de me donner ses infos
reste que j'ai déjà une application qui a été faite conjointement avec un internaute de ce forum et qui me permet de retirer les noms de la liste de la combo au fur et à mesure.
donc j'ai essayé de l'adapter et cela ne fonctionne pas.
toutes vos explications sont interressantes...........mais si je peux me permettre j'aimerais bien une solution plus fiable.
même avec ce que vous me dites, je ne vois pas la solution !
Max
reste que j'ai déjà une application qui a été faite conjointement avec un internaute de ce forum et qui me permet de retirer les noms de la liste de la combo au fur et à mesure.
donc j'ai essayé de l'adapter et cela ne fonctionne pas.
toutes vos explications sont interressantes...........mais si je peux me permettre j'aimerais bien une solution plus fiable.
même avec ce que vous me dites, je ne vois pas la solution !
Max
En fait pour le ListFillRange, il faut donner un nom avec une formule Décaler, de façon à ce que le nom soit dynamique.
A la fin de la macro, il faudra ajouter un code qui recherche le texte choisi et le supprime de la liste.
Ou bien il faudrait redéfinir la propriété ListFillRange à l'intérieur de la macro.
Mais bon, je ne connais pas le but de ton appli... Ca risque de devenir une usine à gaz si l'on fait des corrections. Si tu veux supprimer un item de la feuille 1, il faudra réintégrer cet item dans la combobox.
m@rina
A la fin de la macro, il faudra ajouter un code qui recherche le texte choisi et le supprime de la liste.
Ou bien il faudrait redéfinir la propriété ListFillRange à l'intérieur de la macro.
Mais bon, je ne connais pas le but de ton appli... Ca risque de devenir une usine à gaz si l'on fait des corrections. Si tu veux supprimer un item de la feuille 1, il faudra réintégrer cet item dans la combobox.
m@rina
c'est une combo directement dans la feuille excel et j'ai paramétré la Rowsource = clas1;
j'ai essayé avec la référence de la feuille concernée et de la plage de donnée mais le résultat est toujours le même.
la ligne concernée est toujours en surbrillance jaune
avez-vous une idée
merci
Max
et je n'ai pas trouvé Rowsource dans les propriétés ?
puis-je avoir des infos supplémentaires
merci d'avance Max
la colonne A qui contiendra la liste des noms choisis dans la combobox
en A1 = la combo avec la liste des noms (elle n'apparait pas à l'impression)
en A2 = noms (une cellule nommée pour l'impression du document)
de A3 à A40 = la liste qui sera constituée par les noms choisis
et la liste d'origine des noms qui se situe dans une autre feuille en A2:A35
voilà pour vous guider
merci encore
PS : je suis à la bourre !!!:)
Max