J'aurai aimé avoir un coup de main étant assez novice dans le domaine d'excel mais ayant quand même certaines bases,
pour pouvoir masquer les colonnes contenant les jours 29/30/31 en fonction du mois et de l'année en cours sur un planning, si certains ont l'envie de me trouver les solutions je vous partagerais le planning en question je vous en remercie énormément d'avance.
Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E1")) Is Nothing Then _
Sheets("février").Columns("BM:BN").Hidden = Day(DateSerial(Range("E1"), 3, 0)) < 29
End Sub
voilà une trame de mon planning à savoir je ne vous ai partagé que le mois de janvier normalement il y a 12 onglets pour les 12 mois, en changeant l'année ou bien le mois les jours se changent automatiquement .
Ah!Ah! Ne vous inquiétez pas pour ça je veux juste une réponse à mon problème pour le reste cela fonctionne très bien mais seulement les fonctions et les liaisons ne sont pas rattacher vu que que je vous ai donné une bride sinon vous auriez accès à des infos que je ne souhaite pas partager, il faut seulement s'occuper des colonnes BM à BR
Si vous voyez une solution
Merci
Ah!Ah! Ne vous inquiétez pas pour ça je veux juste une réponse à mon problème pour le reste cela fonctionne très bien mais seulement les fonctions et les liaisons ne sont pas rattacher vu que que je vous ai donné une bride sinon vous auriez accès à des infos que je ne souhaite pas partager, il faut seulement s'occuper des colonnes BM à BR
Si vous voyez une solution
Merci
Bonjour Efgé, Mom...
Un essai en PJ avec une macro qui se déclenche lors de la modification du mois en E3 :
VB:
Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E3")) Is Nothing Then
Application.ScreenUpdating = False
Range("BM:BR").EntireColumn.Hidden = False
If Not IsNumeric([BM7]) Then Range("BM:BR").EntireColumn.Hidden = True
If Not IsNumeric([BO7]) Then Range("BO:BR").EntireColumn.Hidden = True
If Not IsNumeric([BQ7]) Then Range("BQ:BR").EntireColumn.Hidden = True
End If
Application.ScreenUpdating = True
End Sub
Bonjour Efgé, Mom...
Un essai en PJ avec une macro qui se déclenche lors de la modification du mois en E3 :
VB:
Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E3")) Is Nothing Then
Application.ScreenUpdating = False
Range("BM:BR").EntireColumn.Hidden = False
If Not IsNumeric([BM7]) Then Range("BM:BR").EntireColumn.Hidden = True
If Not IsNumeric([BO7]) Then Range("BO:BR").EntireColumn.Hidden = True
If Not IsNumeric([BQ7]) Then Range("BQ:BR").EntireColumn.Hidden = True
End If
Application.ScreenUpdating = True
End Sub
Donc seul février pose question, les autres mois étant assez stables dans l'ensemble...
Il suffit de masquer les colonnes des 31 avril, juin septembre et novembre. Opération à effectuer une fois pour toute.
Pour l'onglet de février, on peux commencer par masquer les 30 et 31 qui ne seront que trèèèès peu utilisés.
Pour gérer la colonne du 29 février on peux mettre une ligne de macro dans la feuille concernée :
VB:
Private Sub Worksheet_Activate()
Columns("BM:BN").Hidden = Day(DateSerial(Range("E1"), 3, 0)) < Range("BM9")
End Sub
Donc seul février pose question, les autres mois étant assez stables dans l'ensemble...
Il suffit de masquer les colonnes des 31 avril, juin septembre et novembre. Opération à effectuer une fois pour toute.
Pour l'onglet de février, on peux commencer par masquer les 30 et 31 qui ne seront que trèèèès peu utilisés.
Pour gérer la colonne du 29 février on peux mettre une ligne de macro dans la feuille concernée :
VB:
Private Sub Worksheet_Activate()
Columns("BM:BN").Hidden = Day(DateSerial(Range("E1"), 3, 0)) < Range("BM9")
End Sub
Merci encore pour tout ça mais il reste un petit soucis, étant donné que j'ai un onglet pour chaque mois il me suffit juste de mettre l'ensemble du VBA que vous m'avez fait pour le mois de février, si je supprime les 31 pour les mois qui n'en ont pas !?
Et le petit soucis est que sur l'onglet de janvier je peux changer l'annéé pour mettre à jour les dates mais malheuresement pour 2024, février est censé avoir un 29 hors il ne s'affiche pas du fait du VBA je pense.
Pour vous synthétiser la chose ce planning en soit jaimerais pouvoir l'utiliser durant x année en ayant juste le besoin de changer l'année.
il reste un petit soucis, étant donné que j'ai un onglet pour chaque mois il me suffit juste de mettre l'ensemble du VBA que vous m'avez fait pour le mois de février,
Oui, uniquement dans l'onglet de février. La colonne s'affichera ou se masquera suivant les besoin dès l'activation de la feuille. (clic droit sur l'onglet Février / Visualiser le code. C'est là qu'il faut le mettre)
Oui, uniquement dans l'onglet de février. La colonne s'affichera ou se masquera suivant les besoin dès l'activation de la feuille. (clic droit sur l'onglet Février / Visualiser le code. C'est là qu'il faut le mettre)
Donc, cela prouve qu'un fichier exemple significatif est toujours utile.
Changez ma proposition avec
VB:
Private Sub Worksheet_Activate()
Columns("BM:BN").Hidden = Day(DateSerial(Range("E1"), 3, 0)) < Sheets("janvier").Range("BM9")
End Sub
Merci pour votre rapidité, mais malheureusement cela ne fonctionne toujours pas, à savoir tous les onglets sont identiques et l'année de février est rattaché à la cellule E1 de janvier, j'espère être assez clair dans mes propos désolé si ça ne l'est pas !