Masquer des colonnes selon plusieurs critéres
Bonjour à tous,
Je me permets de vous solliciter aujourd'hui car je travail sur un document matrice pour faire le suivie de mes projets dans le cadre de mon travail.
Étant au tout début de la création de ce document, ce dernier se présente assez simplement pour le moment.
Il se compose des onglets suivant :
- 1/ data
- 2/ présence équipe (sous forme de planning)
- 3/ location de véhicules (sous forme de planning)
les autre viendront par la suite.
Idéalement les onglets 2 et 3 sont sur le type de calendrier qui va du 01 Janvier au 31 décembre.
Je cherche une solution pour masquer automatiquement les colonnes qui ne seront pas nécessaires en fonction des dates que j’inscris dans l'onglet data.
Par exemple si mon projet est du 20 Février au 15 Juillet, j'ai besoin de masquer les colonnes du 01 Janvier au 19 Février et le 16 Juillet au 31 décembre.
Existe-il une mise en forme conditionnel, une formule qui me permettrait de faire ça ou bien une macro.
Dans tous les cas j'ai besoin de vos lumières.
Vous trouverez en pièce ci-dessous mon fichier.
Merci pour votre aide.
Bonjour,
Code VBA pour masquer et démasquer les colonnes:
Sub Masquage_Colonne()
Dim f1 As Worksheet, f2 As Worksheet, f3 As Worksheet
Dim DerLig_f2 As Byte, DerLig_f3 As Byte
Dim i As Integer
Dim Date_Deb As Date, Date_Fin As Date
Application.ScreenUpdating = False
Set f1 = Sheets("Data")
Set f2 = Sheets("Présence équipe")
Set f3 = Sheets("Location véhicules")
DerLig_f2 = 22
DerLig_f3 = 22
DerCol_f2 = f2.Range("NZ5").End(xlToLeft).Column
DerCol_f3 = f3.Range("NZ5").End(xlToLeft).Column
Date_Deb = f1.Range("K8").Value
Date_Fin = f1.Range("K11").Value
For i = 14 To DerCol_f2
If f2.Cells(5, i) < Date_Deb Or f2.Cells(5, i) > Date_Fin Then
f2.Columns(i).EntireColumn.Hidden = True
Else
f2.Columns(i).EntireColumn.Hidden = False
End If
Next i
For i = 10 To DerCol_f3
If f3.Cells(5, i) < Date_Deb Or f3.Cells(5, i) > Date_Fin Then
f3.Columns(i).EntireColumn.Hidden = True
Else
f3.Columns(i).EntireColumn.Hidden = False
End If
Next i
End Sub
Sub Démasquage_Colonne()
Dim f2 As Worksheet, f3 As Worksheet
Application.ScreenUpdating = False
Set f2 = Sheets("Présence équipe")
Set f3 = Sheets("Location véhicules")
f2.Cells.EntireColumn.Hidden = False
f3.Cells.EntireColumn.Hidden = False
End SubCdlt
Bonjour,
Tout d'abord merci pour votre réponse.
Par contre vous m'avez complétement perdu (j'ai encore trop peu de connaissance sur excel).
Du coup j'ai copie simplement entièreté du code VBA. Résulta tous les tableaux et les données s’effacent du tableau.
Désole mais je sais pas comment mis prendre, si je peux profiter encore de vos lumières.
Merci beaucoup,
J'ai mis 2 boutons dans la feuille "Data"
Bonjour,
Merci beaucoup, c'est super ça fonction très bien.
Bon après, en bidouillant mon tableau pour comprendre votre code, j'ai réaliser les limites de mon tableau et de la façon dont j'ai abordé la création de ce document matrice.
En effet, ce document fonction pour les projets qui sur l'année en court (soit 80% de mes dossiers).
Par contre, si mon projet est sur plusieurs années mon dossier ne fonction plus.
Il faut que je repense la totalité du document pour intégrer la mise en forme du tableau, l’intégration des jours fériés, et qu'il puisse s’étaler sur plusieurs années si besoin.
Merci beaucoup pour votre temps,
Bonjour,
Je me permets de revenir vers vous car j'ai repensé les tableaux des deux premiers onglets mais je suis incapable de retranscrire votre code ainsi que les deux boutons pour masquer et afficher les colonnes.
Pourriez-vous m'aider ?
D'autre part, si vous avez quelques minutes, je veux bien quelques explications pour comprendre votre code. J'ai jamais fait de VBA et je suis loin de maitriser excel. Cependant, j'aimerai évité de revenir vers vous à chaque fois que j'ai un problème.
Si vous pouviez m'expliquer comment ajouter un autre onglet qui sera soumis à ce code, etc..
Encore merci pour votre aide.
Bonjour,
Vous donnez un fichier pratiquement vierge, donc j'ai fait comme j'ai pu.
Le code est largement commenté ( tout ce qui est en vert) pour que vous puissiez l'analyser. Pour le 3ème onglet, j'en ai ajouté un que j'ai nommé "Nouvel onglet" que vous renommerez selon vos besoins, cependant il vous faudra modifier dans le code, toute la partie qui le concerne (elle aussi en vert), en vous basant sur la première partie du code qui concerne les feuilles "Présence équipe" et "Location véhicules". Si vous ne vous en sortez pas, n'hésitez pas à le dire.
Pour Accéder au code, faire ALT + F11
Cdlt
Merci beaucoup pour votre aide.
Je vais étudier tout ça et si j'ai des questions je reviendrai vers vous.
Bien à vous,