Masquage conditionnel de colonne
iop81
-
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
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:
- Masquage conditionnel de colonne
- Déplacer colonne excel - Guide
- Trier colonne excel - Guide
- Colonne word - Guide
- Mise en forme conditionnel - Guide
- Formule somme excel colonne - Guide
2 réponses
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
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