Bonjour à tous,
Je suis un pti nouveau sur le forum alors je ne sais pas si tout est OK, j'espere poster le message dans le bon forum!!!!!
Je suis un peu débutant en VBA et j'essaie de réaliser une ListeBox avec deux colonnes non contigues.
Je voudrais donc remplir ma ListeBox avec une colonne A et une colonne G non cotes à cotes, en sachant également que le nombre de ligne évolue au cours du temps puisque l'utilisateur va rajouter des données dans le tableau qui devront etre pris en compte dans la ListeBox.
Voici ce que je sais et ce que j'ai ecrit:
Jusqu'ici je pense que tout va bien, mais si j'ai deja rien compris dites le moi!!!!!!!!!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Private Sub UserForm_Initialize() ListBox1.ColumnCount = 2 ' cela sert à mettre 2 colonnes dans ma ListeBox ListBox1.ColumnWidths = "160; 3" ' ceci est le nombre de caractere possible pour chaques colonnes de la ListeBox ListBox1.RowSource = tableau2 ' ceci est le tableau qui rempli ma ListeBox End Sub
Ensuite je crée donc un module avec les fonctions ci-dessous:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Function tableau2() nomt = ("A3:A" & dernier2) 'cette valeur devrait prendre la colonne jusqu'à la derniere cellule non vide reft = ("G3:G" & dernier2) tableau2 = ("nomt,reft") ' je pensais créer un tableau avec deux colonnes non contigues End FunctionEt la ca beug!!!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Function dernier2() 'cette fonction me sert donc à trouver la dernière ligne de mon tableau dernier2 = Range("A2").End(xlDown).Row End Function
En fait j'ai pu constater que si je faisais ceci ca marcherait à la condition que les colonnes soient cotes à cotes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Function tableau2() tableau2 = ("A3:B" & dernier2) 'on peut aussi faire ("A3:G" & dernier2) mais de toute facon il choisi les 2 premieres!! End FunctionJ'ai également pu constater que l'utilisation de Range("A1:A56,G1:G56").Select
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Function dernier2() dernier2 = Range("A2").End(xlDown).Row End Function
marche tres bien si l'on veut selectionner des plages de cellules différentes mais malheureusement ca ne marche pas pour cette utilisation (j'ai essayé ceci, tableau2=Range("A1:A,G1:G" & dernier2)
mais bien evidement ca ne marche pas ...sniffff ca serait trop simple!!!)
Donc si quelqu'un aurait une petite solution/explication ca serait vraiment sympa!!!
Merci d'avance et à bientot
Vinch
Partager