Sélectionner une liste de colonnes via une listbox

lionelfzs

XLDnaute Nouveau
Bonjour à tous,

J'ai une feuille de calcul d'une soixantaine de colonnes, et je souhaite que ne soient affichées que celles que je veux...et dont l'en-tête figurerait dans une listbox (ou qqch du mêem style).

Pour le moment, j'ai mis en en-tête de chaque colonne une checkbox, et associé une macro qui fait que si la checkbox est cochée, la colonne correspondante reste affichée sinon elle est masquée.

Mon code est le suivant :

Private Sub BoutonMasque_Click()
Dim Obj As OLEObject
Dim Col1 As Integer
Col1 = 2
For Each Obj In Sheets("Feuil1").OLEObjects
If TypeOf Obj.Object Is MSForms.CheckBox Then
If Obj.Object.Value = False Then
Obj.Object.Locked = False
'Obj.Object.Visible = False
N = Val(Right(Obj.Name, 2)) + Col1 - 1
Columns(N).Hidden = True
End If
End If
Next Obj
End Sub

J'ai aussi écrit une macro pour rétablir les colonnes masquées...jusqu'ici, tout va bien :)

Le problème est que ça implique de balayer tout le tableau colonne par colonne pour cocher la case et lancer ensuite la macro, voila pourquoi j'ai pensé à la listbox (ou qqch d'approchant).
Dans celle-ci, je mettrai les en-têtes de chaque colonne récupérées sur la feuille (ou rentrées manuellement si ce n'est pas faisable), et ensuite, je coche les lignes qui m'intéressent...et ce qui est coché alimente les checkbox en tête de chaque colonne (je ne sais pas si je suis bien clair).

Voila, si quelqu'un a une solution à me proposer, ça me sauverait !

Merci
 

lionelfzs

XLDnaute Nouveau
Re : Sélectionner une liste de colonnes via une listbox

Lionel,

Une proposition avec une listbox qui contient des cases à cocher.


A+

Bonjour Hasco et merci pour ta rapidité.

C'est ce qu'il me fallait, mais en fait, c'est le contraire que je voulais : ce qui est coché est visible, et ce qui ne l'est pas est masqué....

J'ai essayé de remplacer "hidden" par "visible" mais ça ne plait pas à mr VB :eek:

Aurais-tu une idée stp ?

Merci
 
G

Guest

Guest
Re : Sélectionner une liste de colonnes via une listbox

Re Lionel,

C'est .Hidden = False.

Donc dans ton cas se sera : Not ListBox1.Selected(i)

Où ListBox1.Selected(i) dit si l'option est sélectionné (True ou False) et où Not inverse cette valeur.

quand tu as ce genre de problème, essaie d'utiliser l'enregistreur de macro.

Par exemple ici en masquant une colonne, en faisant une sélection ailleurs et en démasquant la colonne. Il te donnera les valeurs correctes.

Ou en appuyant sur F1 lorsque le curseur est sur le mot dont tu ne connais pas l'utilisation (Hidden)

A bientôt
 
Dernière modification par un modérateur:

lionelfzs

XLDnaute Nouveau
Re : Sélectionner une liste de colonnes via une listbox

Re Lionel,

C'est .Hidden = False.

Donc dans ton cas se sera : Not ListBox1.Selected(i)

Où ListBox1.Selected(i) dit si l'option est sélectionné (True ou False) et où Not inverse cette valeur.

A bientôt

Tout baigne !

Par contre je vais abuser : comment mettre la listbox sur feuil1 et le tableau sur feuil2 dans le même classeur et faire la liaison proprement ?

Encore merci à toi
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16