Bonjour
J'ai récupéré cette macro sur le net pour l'adapter à ma situation , elle doit masquer des lignes suivant le mois de l'année
sauf que mon tableau n'est pas dans le même sens que celui proposé dans l'exercice :
Sub Masquer_Jour()
Dim Num_Col As Long
For Num_Col = 30 To 32 ' Boucle sur les cellules des jours 29, 30 et 31
If Month(Cells(6, Num_Col)) >= Cells(1, 1) Then
Columns(Num_Col).Hidden = True
Else
Columns(Num_Col).Hidden = False
End If
Next
Range("B6:AF13").ClearContents 'Supprime le contenu dans les cellules
End Sub
j'ai essayé de la modifier comme ça avec les infos trouvées sur le net sauf qu'au lieu de masquer les lignes cela efface juste le contenu des cellules A33 à A35
Sub Masquer_Jour()
Dim Num_ligne As Long
For Num_ligne = 33 To 35 ' Boucle sur les cellules des jours 29, 30 et 31
If Month(Cells(1, 33)(1, 34)(1, 35)) >= Cells(1, 7) Then
Columns(Num_ligne).Hidden = True
Else
Columns(Num_ligne).Hidden = False
End If
Next
Range("A33:A35").ClearContents 'Supprime le contenu dans les cellules
End Sub
Si quelqu'un peut m'aiguiller vers la solution je l'en remercie d'avance.
Sub Masquer_Jour()
Dim Num_ligne As Long
For Num_ligne = 33 To 35 ' Boucle sur les cellules des jours 29, 30 et 31
If Month(Cells(1, 33)(1, 34)(1, 35)) >= Cells(1, 7) Then
Rows(Num_ligne).Hidden = True
Else
Rows(Num_ligne).Hidden = False
Il suffit de démasquer toutes les lignes au début de la macro.
VB:
Sub Masquer_Jour()
Dim Num_ligne As Long
Cells.Rows.Hidden = False
For Num_ligne = 33 To 35 ' Boucle sur les cellules des jours 29, 30 et 31
If Month(Cells(1, 33)(1, 34)(1, 35)) >= Cells(1, 7) Then Rows(Num_ligne).Hidden = True
Next
End Sub
Il suffit de démasquer toutes les lignes au début de la macro.
VB:
Sub Masquer_Jour()
Dim Num_ligne As Long
Cells.Rows.Hidden = False
For Num_ligne = 33 To 35 ' Boucle sur les cellules des jours 29, 30 et 31
If Month(Cells(1, 33)(1, 34)(1, 35)) >= Cells(1, 7) Then Rows(Num_ligne).Hidden = True
Next
End Sub
Merci pour ce retour mais visiblement le masquage des lignes est prioritaire sur afficher,
les lignes apparaissent et disparaissent immédiatement quelque soit le mois .
ci joint une copie du tableau. je me demande si je n'ai pas fait une erreur au niveau de la construction du tableau . Merci d'avance pour votre aide
La bonne syntaxe c'est
Cells(Numéro de ligne, Numéro de colonne)
Donc pour A1 par exemple, on écrira: Cells(1,1) ou Cells(1,"A")
Donc pour A33: Cells(33,1) ou Cells(33,"A")
Et si tu veux faire référence a A33,A34,A35
il faut écrire
VB:
Sub test_ii()
MsgBox Range(Cells(33, 1), Cells(35, 1)).Address
'ou
MsgBox Range("A33:A35").Address
End Sub
La bonne syntaxe c'est
Cells(Numéro de ligne, Numéro de colonne)
Donc pour A1 par exemple, on écrira: Cells(1,1) ou Cells(1,"A")
Donc pour A33: Cells(33,1) ou Cells(33,"A")
Et si tu veux faire référence a A33,A34,A35
il faut écrire
VB:
Sub test_ii()
MsgBox Range(Cells(33, 1), Cells(35, 1)).Address
'ou
MsgBox Range("A33:A35").Address
End Sub