Bouton Macro afficher/masquer lignes et colonnes sous condition

RonRon

XLDnaute Nouveau
Bonjour,

J'aimerais créer un tableau avec macro mais n'ai pas les connaissances nécessaires en VBA :(
Peut-être que certains pourrons me dire si mon idée est possible et me guider/aider !

C'est un tableau de suivi de formation et des entretiens professionnels donc un peu long en colonnes et en lignes. J'aimerais ajouter 2 boutons pour masquer/afficher certaines lignes et certaines colonnes.
Au niveau des lignes, il y a le matricule de chaque personne une fois et les lignes en dessous de son matricule mais avec F"année" car la premier ligne sera pour les entretiens et les lignes suivantes pour les formations.

Exemple :

MatriculeNomPrenomIntitulé formationDate FormationE.I 2017E.P 2017E.I 2018E.P 2018E.I 2019E.P 2019Action menéeObjectif
650001aaaattvidevideDateDateDateDateDateDateCIF ...;igzgizj
F2017-650001aaaatteheheheDatevidevidevidevidevidevidevidevide
F2018-650001aaaatteqheqhqhDatevidevidevidevidevidevidevidevide
F2018-650001aaaatteqhehhDatevidevidevidevidevidevidevidevide
F2019-650001aaaatteqheqhqehDatevidevide
vide
videvidevidevidevide
F2019-650001aaaattqehjehqhqDatevidevidevidevidevidevidevidevide
650220bbbbkkvidevidegzgDateDateDateDateDateDatezZGZZ
F2014-650220bbbbkkehjeheqDatevidevidevidevidevidevidevidevide
F2017-650220bbbbkkeqhjehjeqDatevidevidevidevidevidevidevidevide
F2018-650220bbbbkkejhehjeDatevidevidevidevidevidevidevidevide

L'objectif du bouton 1 :
Masquer/Afficher toutes les lignes Matricule qui ne sont donc pas que des nombres (F"année"-...) et les colonnes liées à la formation (dans mon tableau il y en aura bien plus mais ici c'est donc D et E).
De cette façon je pourrais passer d'un tableau où je ne vois que les données des entretiens à un tableau où je vois tout.

Objectif bouton 2 :
Masquer/Afficher toutes les lignes Matricules avec F"année" dont l'année n'est pas celle en cours (donc F2014 à F2018 en l'occurrence pour 2019). Pas besoin de masquer de colonnes.




J'ai bien vu les différents sujets avec les Rows.Hidden = True / False mais ici il y a des conditions particulières et pas uniquement des lignes ou des colonnes mais les deux. Puis de toute façon je n'ai pas le savoir pour bidouiller à ce niveau par moi-même ^^

Merci à toutes personnes ayant l’extrême gentillesse de bien vouloir m'aider <3
ou de me dire que c'est pas possible xD

ps : je me doute que je peux utiliser des filtres mais ça serait un peu long et moins classes !



RonRon
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, RonRon

RonRon [Bienvenue sur le forum]
Je peux te dire ce qui est possible ;)
C'est que le demandeur (tu te seras reconnu;)) prenne le temps de concocter un fichier Excel exemple (anonymisé) puis qu'il édite le premier message de sa discussion en y joignant ce fichier exemple.

Ce qui permettra à nous les répondeurs (je pourrai en être maybe...) d'utiliser le temps gagné à ne pas récréer un fichier qui existe déjà sur le HD sur du demandeur, pour résoudre la problématique de la discussion.

NB:
Accessoirement si le demandeur avait pris le temps de lire la charte du forum je ne serai pas en train de boire un café tiédasse...
Bah oui, le temps d'écrire ce conseil (qui est déjà dans la charte), vlan, ça y est maintenant il est froid mon kawa
;)
 
Dernière édition:

RonRon

XLDnaute Nouveau
Bonjour Staple1600,

Je te remercie pour ta réponse inutile et sans intérêt. Effectivement j'aurais pu mettre un fichier Excel, au lieu de cela j'ai copié le tableau du nouveau fichier anonymisé et je l'ai intégré dans mon message. Ce qui revient quasiment à la même chose, sauf pour les quelques personnes qui aiment râler pour pas grand chose (tu te sentiras peut être concerné, qui sait ;)). Certains diront même que de cette façon je consomme moins de place...

Au final, ma demande qui est d'être guidé, conseillé et non pas que l'on fasse tout le boulot à ma place, car je n'apprendrais rien de cette façon, et bien je dirais, peut être n'as tu pas lu ma demande entièrement comme je n'ai pas entièrement lu la charte. C'est juste une supposition bien sûr.

Enfin bon, si la mentalité du forum est globalement la même que la tienne, je me passerais volontiers de votre aide. Quand je vois que vous réclamez de chacun une présentation mais que personne ne daigne juste souhaiter la bienvenue dans les postes de présentation, niveau respect, c'est très bas.

Puis s'il te faut 15min (le temps pour un kawa de refroidir) pour écrire un conseil inutile de ce style, effectivement j'ai pas spécialement envie de recevoir ton aide, même si nul doute tes compétences sont bien supérieure aux miennes dans ce domaine. Ouais la pédagogie, c'est important.

Allez, je retourne au boulot, Tchao !
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil,

RonRon
Tu connais le second degré? (censé être identifié par l'emploi d’émoticône)
Sinon pour la bienvenue, je te l'ai souhaité non?
RonRon [Bienvenue sur le forum]
Désolé si mon message t'as heurté, mais il avait juste pour vocation à faciliter la résolution de ta question
(cf l'ajout d'une PJ)

En tout cas, ton message date déjà de vendredi, je suis le seul à t'avoir répondu.

Tu préfères ne pas mettre de PJ.

Nous sommes mercredi, et (malgré presque 100 affichages de ta discussion), je suis toujours le seul à répondre dans ton fil...

Tu penses toujours qu'une PJ ne servirait à rien?

PS: Je ne suis pas le seul membre du forum à conseiller l'ajout d'une PJ par le demandeur.
Il est fort possible que ma prose puisse parfois être source de quiproquos.
Mais les quiproquos sont faits pour être levés, non , ;)
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonsoir le fil,

RonRon
A défaut de fichier, et pour commencer à soumettre un début de piste
(Après avoir copier ton tableau sur une feuille)
Je te propose cette macro pour masquer/afficher les lignes
VB:
Sub Piste_A_Creuser()
Range("N2:N11") = "=IF(LEFT(RC[-13])=""F"",1,""$$"")"
Range("N2:N11").Font.ThemeColor = xlThemeColorDark1
'La première exécution masque les lignes, la seconde les affiche
With Range("N2:N11")
.SpecialCells(xlCellTypeFormulas, 1).EntireRow.Hidden = Not .SpecialCells(xlCellTypeFormulas, 1).EntireRow.Hidden
End With
End Sub
PS: Cela fonctionne sur la copie du tableau de ton message#1.
Mais franchement un fichier Excel (au plus proche de la structure réelle de ton fichier) permettrait d'aller plus loin.

A toi de voir.

Si jamais tu testes cette macro, merci d'en faire un retour.

Sinon, bah, peut-être servira-t-elle à d'autres qui passeront dans ce fil. ;)
 

Staple1600

XLDnaute Barbatruc
Re

Dans la même veine que l'autre macro (ici pour afficher Afficher/Masquer selon l'année)
VB:
Sub MasquerAfficher_ANNEE_EN_COURS()
Range("O2:O11") = "=SEARCH(YEAR(TODAY()),RC[-14])"
Range("O2:O11").Font.ThemeColor = xlThemeColorDark1
With Range("O2:O11")
.SpecialCells(xlCellTypeFormulas, 16).EntireRow.Hidden = Not .SpecialCells(xlCellTypeFormulas, 16).EntireRow.Hidden
End With
End Sub
PS: Tout comme l'autre fonctionne sur la base du tableau du message#1.
 
Haut Bas