Problème avec un combobox

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

3 réponses

m@rina Messages postés 23911 Date d'inscription   Statut Contributeur Dernière intervention   11 465
 
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
0
Max
 
Bonjour et merci d'avoir répondu

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
0
Max
 
en fait j'ai mis clas1 dans List fill range
et je n'ai pas trouvé Rowsource dans les propriétés ?
puis-je avoir des infos supplémentaires

merci d'avance Max
0
Max
 
pour plus d'explications, j'ai :
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
0
m@rina Messages postés 23911 Date d'inscription   Statut Contributeur Dernière intervention   11 465
 
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
0
Max
 
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
0
m@rina Messages postés 23911 Date d'inscription   Statut Contributeur Dernière intervention   11 465
 
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
0
Max
 
Ok merci de tous ces renseignements !
si je n'ai pas d'autres solutions j'ai bien peur de devoir laisser tomber mon projet
je ne pourrais pas me débrouiller seul : je suis nul dans ce domaine

Max
0