Macro Afficher/masquer des colonnes

  • Initiateur de la discussion Initiateur de la discussion Freddy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Freddy

XLDnaute Junior
Bonjour,


J'ai trouvé une macro sur le site qui est particulièrement efficace... but j aimerais la modifier ... pour que si par exemple on trouve 2x "zaza" sur la meme ligne, Zaza n'apparaisse qu'une seule fois dans la boite de dialogue et que toutes les colonnes affichant ZAZA disparaissent... cela parait il jouable ?

le lien de référence
Lien supprimé

Si des fois quelqun à une idée ... je suis un peu largué la ! 😱)

Fred

nb : la piece jointe ci après est une erreure ... Malheuresement, je ne parvient pas à la supprimer ... n'en tenez pa compte ... merci 😉
 

Pièces jointes

Dernière édition:
Re : Macro Afficher/masquer des colonnes

Bonjour Freddy,

Je viens de m'apercevoir que tu avais édité ton message.
Ma réponse n'en tient pas compte.

Ma solution :
Pour masquer 2011, tu fais un double clic sur un cellule contenant 2011 en ligne 2, pour masquer 2010, même principe.
Pour réafficher 2011, tu fais un clic droit sur une cellule contenant 2010, etc...

@+
 

Pièces jointes

Re : Macro Afficher/masquer des colonnes

oui j ai effectivment ré édité depuis ...je m'en excuse, mais la solution que j avais vu par ailleurs me semblait bien user friendly ... Ceci étant merci pour ta solution vraiment interressante ... et originale 😉 😱) bon si tu as une idée

peut etre à tu une idée quand à ce que je cherche à faire .... je souhaiterais que dans le fichier en lien, je puisse selectionner toutes les colonnes ZAZA ( equivalent à mon 2007) et afficher masquer toutes les colonnes qui renvoient la valeure ZAZA ... a partir du menu déja créé... si des fois tu avais une idée 😱

Merci

Fred
 
Re : Macro Afficher/masquer des colonnes

Par contre j ai du mal à comprendre la macro ... (oui je sais j suis aps une fleche en VBA non plus 😉 lool )

je souhaiterais elargir mon tableau, et j ai un peu de mal à trouver ou tu défini la colonne à laquelle s'arrete le tri 😕

en fait, j 'aimerais d'ailleurs aussi l'utiliser pour faire la meme chose mais par rapport au nom des villes...et mettre le tout dans la meme boite de dialogue ...suffit il de changer les "2" en 1 ? 🙂 oui la je sais la question fait peur ...surtout formulée ainsi ...

Encore une fois Merci bcp !
 
Re : Macro Afficher/masquer des colonnes

En fait, je modifie :

'mDF : ici on se sert de l'index du listbox pour déterminer le numéro de la colonne à traiter
ActiveSheet.Range("B2:AX2")((.ListIndex + 1) + ((C - 1) * 6)).EntireColumn.Hidden = Not OnOff

et

For Each cell In ActiveSheet.Range("B2:AX2")
If cell.Value < cell.Offset(0, -1).Value Then GoTo Fin
.AddItem (cell.Value)
.List(.ListCount - 1, 1) = IIf(cell.EntireColumn.Hidden, Mask, "")
Next cell

mais il ne prends malgré tout pas en compte la suite ! :'(

autre point, si je ne selectionne aucune valeure dans la boite de dialogue, le débogueur se met en route 😕

si tu as une idée ...enfin quelques idées ... 😱)
 
Re : Macro Afficher/masquer des colonnes

Merci BCP sergio, c'est exactement ce qu'il me fallait...

Reste simplement un élément

j'aimerais pouvoir élargir le tableau ... et ainsi rajouter une ville si besoin est ... voir Deux ou trois villes...

Le souci, c'est que bien qu'ayant modifié le code comme suit, rien n'y fait... les villes sont bien prise en compte, mais les années correspondant aux villes supplémentaires ne sont elles, pas prises en compte ...

revoici le code modifié ...je ne comprends pas ! 😕


Option Explicit
' Lister les feuilles
' VériTi Juillet 2004
' Ce lien n'existe plus

Const Mask = "Masquée"

Private Sub MasqueAffiche(OnOff As Boolean)
Dim C As Integer
With ListboxF
For C = 1 To 6
'mDF : ici on se sert de l'index du listbox pour déterminer le numéro de la colonne à traiter
ActiveSheet.Range("B2:IV2")((.ListIndex + 1) + ((C - 1) * 6)).EntireColumn.Hidden = Not OnOff
.List(.ListIndex, 1) = IIf(OnOff, "", Mask)
Next C
End With
ListBoxF_Click
ActiveWindow.ScrollColumn = 1
End Sub

Private Sub BoutonOnOff_Click()
MasqueAffiche ListboxF.Value <> ""
End Sub

Private Sub BoutQuitte_Click()
'VeriTi
Unload Me
End Sub

Private Sub ListBoxF_Click()
BoutonOnOff.Caption = IIf(ListboxF.Value = "", "Masquer", "Afficher")
End Sub

Private Sub ListBoxF_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
BoutonOnOff_Click
End Sub

Private Sub UserForm_Initialize()
Dim cell As Range
With ListboxF
.Clear
For Each cell In ActiveSheet.Range("B2:ax2")
If cell.Value = "" Then GoTo Fin
' If cell.Value < cell.Offset(0, -1).Value Then GoTo Fin
.AddItem (cell.Value)
.List(.ListCount - 1, 1) = IIf(cell.EntireColumn.Hidden, Mask, "")
Next cell
Fin:
'En prédéterminant le "BoundColumn" à 2, on obtiendra la valeur de la 2ème colonne
'du ListBox sur un simple appel de ListBox.value (ce qui remplace avantageusement
'les "ListBoxF.list(LisboxF.listIndex,1)" dans le code)
.BoundColumn = 2
End With
End Sub


une autre question aussi, si je souhaitais remplacer le tri des villes par un tri en colonne sur les "sexe" ? 😕 😱

merci tu m'aides vraiment bcp ... et après c promis j 'arrete 😉

si tu as une idée ...merci encore
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour