masque ligne si date dans la cellule différente du mois courant
2 réponses
J
Bonjour à tous
j'ai une macro qui me masque bien des lignes dont la cellule B est vide,
mais comment masquer ces lignes si la date (format jj/mm/aaaa) qu'elle
contient montre que cette date n'est pas du mois en cours??
Sub MasqueLignesSiDateAncienneB()
Range("B7:B300").Select
For Each ligne In ActiveSheet.UsedRange.Rows
If ligne.Cells(1, 2).Value = 0 Then
' si la date dans la cellule de la colonne B n'est pas de ce mois
' la ligne est masquée
ligne.EntireRow.Hidden = True
End If
Next
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Clément Marcotte
Bonjour,
J'ai testé sur 4 lignes au lieu au lieu de 294. mais cela marche chez moi comme cela. Chez moi ton UsedRange me ramène des valeurs de date à 0
Sub MasqueLignesSiDateAncienneB() Dim ligne As Range, i As Integer 'cela ne marche pas chez moi 'For Each ligne In ActiveSheet.UsedRange.Rows 'Cela marche chez moi For i = 7 To 10 'Tu pourras mettre 300 au besoin If Month(CDate(Cells(i, 2).Value)) <> Month(Date) Then ' si la date dans la cellule de la colonne B n'est pas de ce mois ' la ligne est masquée Rows(i).EntireRow.Hidden = True End If Next
End Sub
"J@@" a écrit dans le message de news:
Bonjour à tous j'ai une macro qui me masque bien des lignes dont la cellule B est vide,
mais comment masquer ces lignes si la date (format jj/mm/aaaa) qu'elle
contient montre que cette date n'est pas du mois en cours??
Sub MasqueLignesSiDateAncienneB() Range("B7:B300").Select For Each ligne In ActiveSheet.UsedRange.Rows If ligne.Cells(1, 2).Value = 0 Then ' si la date dans la cellule de la colonne B n'est pas de ce mois ' la ligne est masquée ligne.EntireRow.Hidden = True End If Next End Sub
Bonjour,
J'ai testé sur 4 lignes au lieu au lieu de 294. mais cela marche chez
moi comme cela. Chez moi ton UsedRange me ramène des valeurs de date à
0
Sub MasqueLignesSiDateAncienneB()
Dim ligne As Range, i As Integer
'cela ne marche pas chez moi
'For Each ligne In ActiveSheet.UsedRange.Rows
'Cela marche chez moi
For i = 7 To 10 'Tu pourras mettre 300 au besoin
If Month(CDate(Cells(i, 2).Value)) <> Month(Date) Then
' si la date dans la cellule de la colonne B n'est pas de ce mois
' la ligne est masquée
Rows(i).EntireRow.Hidden = True
End If
Next
End Sub
"J@@" <jipivert@-ifrance.com> a écrit dans le message de
news:Oc4gMbxNFHA.2144@TK2MSFTNGP09.phx.gbl...
Bonjour à tous
j'ai une macro qui me masque bien des lignes dont la cellule B est
vide,
mais comment masquer ces lignes si la date (format jj/mm/aaaa)
qu'elle
contient montre que cette date n'est pas du mois en cours??
Sub MasqueLignesSiDateAncienneB()
Range("B7:B300").Select
For Each ligne In ActiveSheet.UsedRange.Rows
If ligne.Cells(1, 2).Value = 0 Then
' si la date dans la cellule de la colonne B n'est pas de ce mois
' la ligne est masquée
ligne.EntireRow.Hidden = True
End If
Next
End Sub
J'ai testé sur 4 lignes au lieu au lieu de 294. mais cela marche chez moi comme cela. Chez moi ton UsedRange me ramène des valeurs de date à 0
Sub MasqueLignesSiDateAncienneB() Dim ligne As Range, i As Integer 'cela ne marche pas chez moi 'For Each ligne In ActiveSheet.UsedRange.Rows 'Cela marche chez moi For i = 7 To 10 'Tu pourras mettre 300 au besoin If Month(CDate(Cells(i, 2).Value)) <> Month(Date) Then ' si la date dans la cellule de la colonne B n'est pas de ce mois ' la ligne est masquée Rows(i).EntireRow.Hidden = True End If Next
End Sub
"J@@" a écrit dans le message de news:
Bonjour à tous j'ai une macro qui me masque bien des lignes dont la cellule B est vide,
mais comment masquer ces lignes si la date (format jj/mm/aaaa) qu'elle
contient montre que cette date n'est pas du mois en cours??
Sub MasqueLignesSiDateAncienneB() Range("B7:B300").Select For Each ligne In ActiveSheet.UsedRange.Rows If ligne.Cells(1, 2).Value = 0 Then ' si la date dans la cellule de la colonne B n'est pas de ce mois ' la ligne est masquée ligne.EntireRow.Hidden = True End If Next End Sub
J
Bonjour Clément et merci j'ai adapté ton code (en fait j'ai une feuille qui compile automatiquement pleins de lignes avec dates en B, et début de mois, je cherche à tirer un état de tout ce qui se réfère au mois précédent. je n'avais pas pensé que le test sur le mois seul ne me filtrait pas les dates de l'année passée. Ce code a l'air de bien fonctionner (j'espère que je n'y ai pas introduit d'erreur). Encore merci, @+ J@@ (qui t'envoie un peu de chaud soleil à Amos :-)
Sub MasqueLignesSiDateAncienneB() Dim ligne As Range, i As Integer For i = 7 To 30 'Tu pourras mettre 300 au besoin If Year(CDate(Cells(i, 2).Value)) < Year(Date) Or _ Month(CDate(Cells(i, 2).Value)) < Month(Date) - 1 Or _ Month(CDate(Cells(i, 2).Value)) = Month(Date) Then ' si la date dans la cellule de la colonne B n'est pas du mois dernier ' ou est de l'année dernière ' la ligne est masquée Rows(i).EntireRow.Hidden = True End If Next End Sub
"Clément Marcotte"
J'ai testé sur 4 lignes au lieu au lieu de 294. mais cela marche chez moi comme cela. Chez moi ton UsedRange me ramène des valeurs de date à 0
Sub MasqueLignesSiDateAncienneB() Dim ligne As Range, i As Integer 'cela ne marche pas chez moi 'For Each ligne In ActiveSheet.UsedRange.Rows 'Cela marche chez moi For i = 7 To 10 'Tu pourras mettre 300 au besoin If Month(CDate(Cells(i, 2).Value)) <> Month(Date) Then ' si la date dans la cellule de la colonne B n'est pas de ce mois ' la ligne est masquée Rows(i).EntireRow.Hidden = True End If Next
End Sub
"J@@" <
j'ai une macro qui me masque bien des lignes dont la cellule B est vide, mais comment masquer ces lignes si la date (format jj/mm/aaaa) qu'elle contient montre que cette date n'est pas du mois en cours??
Sub MasqueLignesSiDateAncienneB() Range("B7:B300").Select For Each ligne In ActiveSheet.UsedRange.Rows If ligne.Cells(1, 2).Value = 0 Then ' si la date dans la cellule de la colonne B n'est pas de ce mois ' la ligne est masquée ligne.EntireRow.Hidden = True End If Next End Sub
Bonjour Clément et merci
j'ai adapté ton code (en fait j'ai une feuille qui compile automatiquement
pleins de lignes avec dates en B, et début de mois, je cherche à tirer un
état de tout ce qui se réfère au mois précédent.
je n'avais pas pensé que le test sur le mois seul ne me filtrait pas les
dates de l'année passée.
Ce code a l'air de bien fonctionner (j'espère que je n'y ai pas introduit
d'erreur).
Encore merci,
@+
J@@ (qui t'envoie un peu de chaud soleil à Amos :-)
Sub MasqueLignesSiDateAncienneB()
Dim ligne As Range, i As Integer
For i = 7 To 30 'Tu pourras mettre 300 au besoin
If Year(CDate(Cells(i, 2).Value)) < Year(Date) Or _
Month(CDate(Cells(i, 2).Value)) < Month(Date) - 1 Or _
Month(CDate(Cells(i, 2).Value)) = Month(Date) Then
' si la date dans la cellule de la colonne B n'est pas du mois dernier
' ou est de l'année dernière
' la ligne est masquée
Rows(i).EntireRow.Hidden = True
End If
Next
End Sub
"Clément Marcotte"
J'ai testé sur 4 lignes au lieu au lieu de 294. mais cela marche chez
moi comme cela. Chez moi ton UsedRange me ramène des valeurs de date à
0
Sub MasqueLignesSiDateAncienneB()
Dim ligne As Range, i As Integer
'cela ne marche pas chez moi
'For Each ligne In ActiveSheet.UsedRange.Rows
'Cela marche chez moi
For i = 7 To 10 'Tu pourras mettre 300 au besoin
If Month(CDate(Cells(i, 2).Value)) <> Month(Date) Then
' si la date dans la cellule de la colonne B n'est pas de ce mois
' la ligne est masquée
Rows(i).EntireRow.Hidden = True
End If
Next
End Sub
"J@@" <
j'ai une macro qui me masque bien des lignes dont la cellule B est vide,
mais comment masquer ces lignes si la date (format jj/mm/aaaa) qu'elle
contient montre que cette date n'est pas du mois en cours??
Sub MasqueLignesSiDateAncienneB()
Range("B7:B300").Select
For Each ligne In ActiveSheet.UsedRange.Rows
If ligne.Cells(1, 2).Value = 0 Then
' si la date dans la cellule de la colonne B n'est pas de ce mois
' la ligne est masquée
ligne.EntireRow.Hidden = True
End If
Next
End Sub
Bonjour Clément et merci j'ai adapté ton code (en fait j'ai une feuille qui compile automatiquement pleins de lignes avec dates en B, et début de mois, je cherche à tirer un état de tout ce qui se réfère au mois précédent. je n'avais pas pensé que le test sur le mois seul ne me filtrait pas les dates de l'année passée. Ce code a l'air de bien fonctionner (j'espère que je n'y ai pas introduit d'erreur). Encore merci, @+ J@@ (qui t'envoie un peu de chaud soleil à Amos :-)
Sub MasqueLignesSiDateAncienneB() Dim ligne As Range, i As Integer For i = 7 To 30 'Tu pourras mettre 300 au besoin If Year(CDate(Cells(i, 2).Value)) < Year(Date) Or _ Month(CDate(Cells(i, 2).Value)) < Month(Date) - 1 Or _ Month(CDate(Cells(i, 2).Value)) = Month(Date) Then ' si la date dans la cellule de la colonne B n'est pas du mois dernier ' ou est de l'année dernière ' la ligne est masquée Rows(i).EntireRow.Hidden = True End If Next End Sub
"Clément Marcotte"
J'ai testé sur 4 lignes au lieu au lieu de 294. mais cela marche chez moi comme cela. Chez moi ton UsedRange me ramène des valeurs de date à 0
Sub MasqueLignesSiDateAncienneB() Dim ligne As Range, i As Integer 'cela ne marche pas chez moi 'For Each ligne In ActiveSheet.UsedRange.Rows 'Cela marche chez moi For i = 7 To 10 'Tu pourras mettre 300 au besoin If Month(CDate(Cells(i, 2).Value)) <> Month(Date) Then ' si la date dans la cellule de la colonne B n'est pas de ce mois ' la ligne est masquée Rows(i).EntireRow.Hidden = True End If Next
End Sub
"J@@" <
j'ai une macro qui me masque bien des lignes dont la cellule B est vide, mais comment masquer ces lignes si la date (format jj/mm/aaaa) qu'elle contient montre que cette date n'est pas du mois en cours??
Sub MasqueLignesSiDateAncienneB() Range("B7:B300").Select For Each ligne In ActiveSheet.UsedRange.Rows If ligne.Cells(1, 2).Value = 0 Then ' si la date dans la cellule de la colonne B n'est pas de ce mois ' la ligne est masquée ligne.EntireRow.Hidden = True End If Next End Sub