Masquage conditionnel de colonne

iop81 -  
 iop81 -
Bonjour,

J'ai un petit soucis avec une macro excel qui devrait pas être difficile mais j'avoue être débutante en VBA.
J'ai un planning sur 2 ans (1 colonne=1jour).
Je souhaiterai créer une macro qui permette de n'afficher que les 6 prochains mois et une autre qui affiche les 2 ans pour pouvoir satisfaire les besoins de tous mes collègues.

En fait j'ai créé un champ référence "date du jour".
J'ai créé un champ qui évalue si les dates de mon planning sont comprises dans la fourchette (1 mois avant et 6 mois après la date du jour), si oui, cela renvoi 1, sinon 0.
Ensuite j'ai créé une macro qui va lire ces valeurs et le but est que si la valeur est à 0 la colonne soit masquée sinon elle apparaît. Voici ma macro rebelle ...:

Dim col As Range
Dim nb As Integer

nb = CInt(Worksheets![Feuil2].Range("G5:AWG5").Value)
col = Range("G5:AWG5")

For Each cell In Range(col)
If nb = 0 Then
Worksheets![Feuil2].Cells(5, col).EntireColumn.Hidden = True
Else: Worksheets![Feuil2].Cells(5, col).EntireColumn.Hidden = False
Next cell
End Sub

Merci de votre aide
A voir également:

2 réponses

gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 731
 
bonjour

et ainsi ?

If cell = 0 Then
0
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 715
 
Bonjour,

Un exemple de code.

Sub test()
Dim col As Range
Dim cell As Range

Application.ScreenUpdating = False
With Worksheets![Feuil2]
Set col = .Range("G5:AWG5")

For Each cell In col
If cell = 0 Then
.Cells(5, cell.Column).EntireColumn.Hidden = True
Else
.Cells(5, cell.Column).EntireColumn.Hidden = False
End If
Next cell
End With
Application.ScreenUpdating = True

End Sub

Bonne suite
0
iop81
 
Merci de votre aide et de votre réactivité, j'ai finalement trouvé la solution...
0