Bug sur AddItem dans une ComboBox.

Bug sur AddItem dans une ComboBox. - VB/VBA/VBS - Programmation

Marsh Posté le 01-10-2006 à 11:33:29    

Quelqu'un(une) peut-il me venir en aide ?
 
J'ai une ListBox qui contient des familles (Exemple : Banque 01, Bricolage 02, Courses 03, etc... , lesquelles se terminent pas un code à 2 chiffres sur la partie droite. A la sortie de cette ListBox "LbFamille1_Exit", en fonction de la famille que j'ai choisie dans celle-ci et notamment du code, je fais repérer dans mon fichier Excel où j'ai extrait toutes les familles 2 par programmation Vba pour Excel 2003 [Filtre élaboré puis tri croissant] où se trouvent le premier code ainsi que le dernier qui correspondent à la famille1 sélectionnée. Exemple pour la déclinaison de la famille 1 : Banque 01 se décline dans la famille 2 par : PEL 0101, Prêts 0102, Retraits DAB 0103, etc...
 
Je veux que les informations sélectionnées et qui concernent la famille 2 concernées, c'est à dire uniquement les données qui commencent pas 01 (Code de la famille 1) soit automatiquement chargées dans une ComboBox que j'appelle "CbFamille2".
 
Mon problème est le suivant :
- Dans la liste d'extraction, le 1er code et le dernier code qui correspondent à la famille 1 sont repérés sans aucune difficulté, même lorsque je sélectionne une autre famille 1. Mais à la dernière ligne de code, alors que toutes les variables prennent les bonnes valeurs, je vais au débogage avec le message : "Erreur d'exécution '70' - Accès refusé". Je ne comprends donc pas car tout est bon.
 
Eléments d'informations complémentaires du code :
 
 
 
Sub LbFamille1_Exit ....
...
Dim q As integer       'Déclaration de la variable dont le code correspond à un entier.
.....
For m = q to t         'Pour votre info, dans le cas de ma sélection en cours : m = 20017, q = 20017 et t = 20040. La ComboBox doit donc se
                            'charger avec les écritures de la ligne 20017 à 20040.
                             
 
Me.CbFamille2.AddItem WorkSheets("ListeCodesBanque" ).Range("B" & m).Value      'C'est sur cette ligne de code que le débogage se positionne.
                                                                                                               'Pourtant l'adresse de Range("B" & m) correspond bien à B20017.
Next m
 
End Sub
 
 
Merci de votre aide, car je suis très près du but.
 
Cordialement.
 
 
Alain.

Reply

Marsh Posté le 01-10-2006 à 11:33:29   

Reply

Marsh Posté le 09-10-2006 à 13:53:38    

On ne peut employer ME.blablabla que dans la procédure du Userform concerné. En dehors (ce qui semble être ici le cas), il faut le nommer par son vrai nom.
 
Par ailleurs il faut éviter les apellation de cellules via leur nom excel... mieux vaut écrire :  
 
dim NomdeMaColonne as integer
NomdeMaColonne =2
 
for m=... to ...
 
... additem workSheets("ListeCodesBanque" ).cells(m,NomdeMaColonne)
 
next m

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed