XL 2010 Modifier une macro

cbd13012

XLDnaute Nouveau
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.

Christophe
 

cbd13012

XLDnaute Nouveau
Du coup la macro est comme ça

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

End If
Next

End Sub
 

Rouge

XLDnaute Impliqué
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
 

cbd13012

XLDnaute Nouveau
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
 

Staple1600

XLDnaute Barbatruc
Re

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
 

cbd13012

XLDnaute Nouveau
Re

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
Merci pour l'information,, cela ne fonctionne toujours pas comme je veux ; Je laisse tomber pour aujourd'hui.
Bon weekend
 

Discussions similaires