XL 2010 Afficher_Masquer_Colonnes

CATPLUS

XLDnaute Junior
Bonjour à tous,

Dans le classeur, j'ai plusieurs feuilles avec la même macro
2 boutons
1 => Afficher colonnes AB
2 => Masquer colonnes AB

Ma requête:
Comment puis-je à l'ouverture du document Afficher les colonnes AB dans toutes les feuilles.

Cordialement
 

Pièces jointes

  • Afficher_Masquer_Colonne.xlsm
    19.9 KB · Affichages: 4
Solution
@CATPLUS, @Eric C, @Phil69970, @st007,

Pour ma part, une autre façon de voir les choses...

Ma requête:
Comment puis-je à l'ouverture du document afficher les colonnes AB dans toutes les feuilles ?

j'ai fait la requête de CATPLUS qui est selon ceci : « à l'ouverture du document » ➯ je n'ai même pas cherché à faire en sorte que l'action des 2 boutons soit sur toutes les feuilles au lieu d'une seule ; maintenant, si ça doit être le cas, voir le nouveau fichier joint, qui contient le code VBA situé en fin de ce post.


à mon ami Eric C : ça ne m'ennuie pas que tu aies repris mon code, mais tu peux voir que mon...​

soan

XLDnaute Barbatruc
Inactif
Bonjour CATPLUS, st007, Phil,

voici d'abord l'optimisation de ton code VBA :

VB:
Sub Bouton1_Cliquer()
  Columns("A:B").Hidden = 0
End Sub

Sub Bouton2_Cliquer()
  Columns("A:B").Hidden = -1
End Sub



Ma requête:
Comment puis-je à l'ouverture du document afficher les colonnes AB dans toutes les feuilles ?

code VBA du module ThisWorkbook :

VB:
Option Explicit

Private Sub Workbook_Open()
  Dim i%: Application.ScreenUpdating = 0
  For i = 1 To Worksheets.Count
    Worksheets(i).Columns("A:B").Hidden = 0
  Next i
End Sub

soan
 

Pièces jointes

  • Afficher_Masquer_Colonne.xlsm
    21.2 KB · Affichages: 2

Eric C

XLDnaute Barbatruc
Bonjour le forum
Bonjour @CATPLUS, st007, Philippe,

Pour ma part, une autre façon de voir les choses pour éviter les boutons sur toutes les feuilles (je me permets de reprendre les codes de notre ami soan) :

L'ouverture du fichier :
VB:
Option Explicit

Private Sub Workbook_Open()
  Dim i%: Application.ScreenUpdating = 0
  Feuil1.Activate
   For i = 1 To Worksheets.Count
    Worksheets(i).Columns("A:B").Hidden = 0
  Next i
End Sub

Les codes des boutons :
Code:
Sub Bouton1_Afficher()
   Dim i%: Application.ScreenUpdating = 0
  For i = 1 To Worksheets.Count
    Worksheets(i).Columns("A:B").Hidden = 0
  Next i
End Sub

Sub Bouton2_Masquer()
  Dim i%: Application.ScreenUpdating = 0
  For i = 1 To Worksheets.Count
    Worksheets(i).Columns("A:B").Hidden = -1
  Next i
 End Sub

Bonne fin de journée à toutes & à tous
@+ Eric c
 

Pièces jointes

  • Afficher_Masquer_Colonnes.xlsm
    21.8 KB · Affichages: 3

Phil69970

XLDnaute Barbatruc
Bonjour Eric

J'avais anticiper dans mon fichier la possibilité d'agir sur toutes les feuilles il suffit d'activer le code concerné en supprimant l'apostrophe de commentaire pour les 2 boutons;)
Extrait de mon code
VB:
'***Si tu veux démasquer toutes les feuilles en même temps
'Application.ScreenUpdating = False
'Dim Ws As Worksheet
'For Each Ws In Worksheets
'    Ws.Range("A:B").EntireColumn.Hidden = False
'Next

Après le demandeur choisira entre toutes les versions celle qui lui convient le mieux encore faut il qu'il se manifeste. o_O

@Phil69970
 

soan

XLDnaute Barbatruc
Inactif
@CATPLUS, @Eric C, @Phil69970, @st007,

Pour ma part, une autre façon de voir les choses...

Ma requête:
Comment puis-je à l'ouverture du document afficher les colonnes AB dans toutes les feuilles ?

j'ai fait la requête de CATPLUS qui est selon ceci : « à l'ouverture du document » ➯ je n'ai même pas cherché à faire en sorte que l'action des 2 boutons soit sur toutes les feuilles au lieu d'une seule ; maintenant, si ça doit être le cas, voir le nouveau fichier joint, qui contient le code VBA situé en fin de ce post.


à mon ami Eric C : ça ne m'ennuie pas que tu aies repris mon code, mais tu peux voir que mon nouveau code VBA est beaucoup plus court que le tien, car je l'ai organisé de telle façon que la boucle For i .. Next i n'est présente qu'une seule fois, ce qui évite de la répéter plusieurs fois ! qu'en penses-tu ? n'est-ce pas que c'est plus optimisé ? (donc c'est mieux !)

cela dit en toute objectivité et en toute modestie, sans vouloir me vanter ! 😜



code VBA de Module1 :

VB:
Option Explicit

Sub Job(k%)
  Dim i%: Application.ScreenUpdating = 0
  For i = 1 To Worksheets.Count
    Worksheets(i).Columns("A:B").Hidden = k
  Next i
End Sub

Sub Bouton1_Cliquer()
  Job 0  'Afficher AB
End Sub

Sub Bouton2_Cliquer()
  Job -1 'Masquer AB
End Sub



code VBA de ThisWorkbook :

VB:
Private Sub Workbook_Open()
  Job 0 'Afficher AB
End Sub

soan
 

Pièces jointes

  • Afficher_Masquer_Colonne.xlsm
    21.4 KB · Affichages: 2

Eric C

XLDnaute Barbatruc
Re le fil

@CATPLUS : tu t'es "approprié" la solution qui revient à soan ???? Tu dois pour rectifier le tir, décocher la soluce du post #8 pour cocher la soluce du post #7.....

@ Phil69970 : ;)

@ soan : Tu vois, à force de lire les posts depuis 2002 (et de m'être inscrit en 2005), il m'arrive de percevoir l'horizon de certaines demandes mal formulées. Ce que je pense de ton code et de son optimisation : 😍😍👍👍👍👍 : du condensé pur et dur. Pour ma part, et je le répète depuis des années, je ne suis pas de la partie "programmeur". J'ai quelques vagues notions mais mon point fort est de conserver des codes qui fonctionnent pour certains cas de figure et que je conserve pour adapter aux besoins des demandeurs. Par contre, je me fais une joie de vous lire, vous les grands de ce forums (et d'autres forums) et de copier, lorsque le besoin s'en fait sentir, vos codes dont je n'attribue plus (vous êtes trop nombreux) la paternité lors de la restitution :mad:.
Bonne fin d'après-midi à vous toutes & tous
@+ Eric c
 

CATPLUS

XLDnaute Junior
Bonsoir,
Désolé, je me suis approprié RIEN du tout, j'ai remercié.
Il m'a été notifié via mon adresse @ de cliquer sur la droite pour donner le nom de la personne qui avait répondu à ma requête
NB: dans de précédente demande cette option n'était pas signifiée.

Je ne suis pas ICI pour créer quelques polémiques que se soit.
Si c'est pour me faire eng...........ler. Que l'administrateur bloque mon compte.

@eric je vous prie d'accepter mes excuses.
Bonne soirée
 

Phil69970

XLDnaute Barbatruc
Bonjour le fil

@CATPLUS
1) Le fait de valider une réponse indique à la communauté qu'une réponse correspondant à ton problème a été trouvée ET que tu l'as choisi.

2) Et aussi cela permet si une autre personne qui a le même problème que toi de voir qu'elle est la réponse que tu as validé sans avoir à chercher parmi toutes les réponses.


Donc si on regarde la réponse que tu as choisi on tombe sur ton post N° 8 qui est le tien et qui ne donne aucunement la solution d’où la remarque d'Eric.

Tu devrais valider soit le post 4 ou 7 de Soan puisque tu as dit que c'était la solution que tu as retenue.

C'est simple non, tu valides la réponse du post qui correspond à ce que tu as mis dans ton fichier en n'oubliant pas que l'on ne peut valider qu'une seule réponse.
Bien souvent il existe plusieurs réponses pour aboutir au même résultat cela prouve la richesse d'excel

@Phil69970
 

Eric C

XLDnaute Barbatruc
Le fil
Oupsss - Le temps d'une réponse et notre ami Philippe avait déjà fait le nécessaire ;)

@CATPLUS : Tu n'as pas à t'excuser, tu t'es trompé et l'erreur est humaine. Tu as (et c'est déjà bien contrairement à de nombreux demandeurs qui passent et même repassent (les courants d'air) sans remercier par écrit et encore moins via le clic à droite quand la réponse est la leur) voulu remercier notre ami soan et c'est tout à ton honneur. Je n'ai pas voulu te froisser par mes propos mais simplement te dire que la coche n'était pas au bon endroit.

Bonne soirée à toutes & à tous

@+ Eric c "le petit" qui désire jouer dans la cour des grand :cool:😂😂:cool:
 

soan

XLDnaute Barbatruc
Inactif
@CATPLUS, le fil,

Il m'a été notifié via mon adresse @ de cliquer sur la droite pour donner le nom de la personne qui avait répondu à ma requête

en fait, ça signifie qu'il faut marquer comme solution non pas ton propre post #8 (vu que ce n'est pas toi qui a fourni une solution), mais mon propre post #7 (car c'est bien dans ce post qu'il y a une solution : ton fichier Excel modifié + mon code VBA) ; si je t'en parle, c'est moins pour moi que pour tous les membres du site XLD qui sont intéressés par cette conversation ; en effet, ils se disent : la solution est dans le post dont le bord droit est vert, donc actuellement c'est ton post #8 ; ces membres vont alors directement sur ton post #8 pour y lire la solution, et manque de pot, elle ne s'y trouve pas ! tu les a involontairement induit en erreur ! 😢

c'est pour ça que je te demande de bien vouloir marquer mon post #7 comme solution au lieu du tien, pas pour moi mais pour les membres qui cherchent une solution pour l'exo de cette conversation ; d'ailleurs, si tu regardes mon compteur de solutions, il est actuellement à 180 tout rond ; c'est déjà pas mal, alors 1 solution de plus ou de moins, ça ne fait pas une grande différence. 😜 (donc ma demande est bien juste pour éviter que les membres soient induits en erreur)



remarque 1 : au début, le "système XLD" faisait qu'il était possible à un demandeur de marquer plusieurs posts comme solution, lorsque justement plusieurs posts apportaient une solution (différente selon les contributeurs) ; c'était bien mieux comme ça, et je sais que beaucoup d'autres contributeurs que moi regrettent que ça ne soit plus possible ! car hélas, suite à une refonte du site XLD, il n'y a qu'un seul post par conversation qui peut être marqué comme solution ! 😢 l'Administrateur David Aubert (salut) n'en n'est pas responsable ; c'est à cause du système sur lequel est basé le site : la plateforme XenForo ; c'est eux qui modifient à leur guise leur code de gestion de site (et bien sûr, ils en ont tout à fait le droit puisque c'est eux qui en détiennent les droits de copyright !) ; comme leur logiciel est le même pour toutes les plateformes (= sites ou forums) qu'ils gèrent, c'est bien sûr tous les sites gérés par XenForo qui sont impactés, pas seulement le site XLD ! j'espère que David ne sera pas gêné par les infos que je mets ici : il me semble bien que ce ne sont pas des informations confidentielles ! si David préfère supprimer ces infos, libre à lui puisqu'en tant qu'Administrateur de ce site, c'est bien évidemment lui qui décide en dernier recours ! 🙂



remarque 2 : à cause du fait qu'un seul post peut être marqué comme solution, ça arrive souvent que si plusieurs solutions sont fournies dans une même conversation, le demandeur n'ose plus marquer un post comme solution afin de ne pas gêner les différents contributeurs qui l'ont aidé : ce serait privilégier ou favoriser un contributeur par rapport à un autre ; parfois aussi, et toujours à cause de ce problème et à cause de ce dilemme, le demandeur marque son propre post comme solution ! non pas pour s'attribuer une des solutions fournies, mais seulement pour éviter de faire une injustice en marquant comme solution un post plutôt qu'un autre parmi les différentes solutions proposées ! je m'étonne vraiment beaucoup que ceux de la société XenForo n'aient pas pensé à tout ça ! 😲



dernier point : vu la remarque 2 ci-dessus, je comprendrai si CATPLUS préfère laisser son propre post #8 comme solution ; il l'a peut-être fait pour ne pas me privilégier par rapport aux autres contributeurs qui ont eux aussi fourni une solution (notamment Phil et Eric C) ; c'est pourquoi j'ai écrit en haut de ce post à CATPLUS « je te demande de bien vouloir marquer... » et non pas « je te demande de marquer... » : libre à lui de choisir s'il veut le faire ou non ; et s'il avait été possible, comme au début, de marquer plusieurs posts comme solution dans une même conversation, c'est fort possible (et même très probable) que CATPLUS aurait marqué tous les posts de solutions au lieu du sien ! par rapport à ce que je viens d'écrire, je pense que Phil peut enlever le smiley "en colère" du post #8, car ce n'est pas la faute de CATPLUS si XenForo a malencontreusement dégradé les possibilités antérieures du site XLD ! 😭



ajout pour David : j'ai remarqué que le système d'édition des posts déraille beaucoup ! 😭 exemple : si je change des mises en forme comme du gras ou du souligné, ça modifie en même temps quelque chose d'autre qui n'a rien à voir : car l'alignement justifié que j'avais mis pour un paragraphe disparaît vu que ça remet un alignement à gauche ; et bien sûr, ça m'oblige à remettre l'alignement justifié que je voulais pour le paragraphe ! avant, ça ne faisait pas ce problème et c'était plus fiable ! je ne sais pas si tu vas arriver à reproduire ce phénomène ; et si oui, je ne sais pas si tu vas réussir à l'arranger, ou à le faire arranger par ceux de XenForo.​



@Eric C et @Phil69970 : merci pour vos posts et vos soutiens ! 😊 ajout pour Eric : je suis vraiment ravi que tu aies apprécié mon code VBA et son optimisation ! 😊

soan
 

CATPLUS

XLDnaute Junior
Re,
J'ai relu avec attention toutes vos remarques, désolé mais je n'avais pas compris.
J'ai rectifié en espérant avoir respecté la demande.
Je vous prie une nouvelle fois d'accepter mes excuses.
Je souhaite que cette imbroglio serve à d'autre personne.

Cordialement
Bonne soirée

Pour ma défense mon âge avancé "70" a quelque fois des lacunes ;)
 

soan

XLDnaute Barbatruc
Inactif
@CATPLUS

merci pour ta rectification qui fait que mon post #7 est marqué comme solution ; ça aidera donc les lecteurs de cette conversation à trouver la réponse adéquate. 😊

pour ce qui est de ton âge avancé, je te souhaite bon courage ! 🍀 ça nous arrivera à tous, personne n'y échappe ! c'est la Loi de la Nature ; ainsi va le Monde... 🌍

soan​
 
Dernière édition:

Discussions similaires

Réponses
5
Affichages
183
Réponses
2
Affichages
288
Réponses
7
Affichages
349

Statistiques des forums

Discussions
312 207
Messages
2 086 252
Membres
103 166
dernier inscrit
ZAHRAA