Macro masquer lignes selon date
Résolu/Fermé
Sebast16
Messages postés
6
Date d'inscription
mardi 1 novembre 2016
Statut
Membre
Dernière intervention
2 novembre 2016
-
1 nov. 2016 à 09:30
Sebast16 Messages postés 6 Date d'inscription mardi 1 novembre 2016 Statut Membre Dernière intervention 2 novembre 2016 - 2 nov. 2016 à 18:49
Sebast16 Messages postés 6 Date d'inscription mardi 1 novembre 2016 Statut Membre Dernière intervention 2 novembre 2016 - 2 nov. 2016 à 18:49
A voir également:
- Macro masquer lignes selon date
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Masquer conversation whatsapp - Guide
- Comment masquer les amis sur facebook - Guide
11 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
1 nov. 2016 à 10:33
1 nov. 2016 à 10:33
Bojour,
sans voir le classeur et sans boule de cristal...
<code>Mettre le classeur sans données confidentielles en pièce jointe sur « mon-partage.fr »
et faire un clic droit-coller le raccourci dans votre message
Dans l’attente
sans voir le classeur et sans boule de cristal...
<code>Mettre le classeur sans données confidentielles en pièce jointe sur « mon-partage.fr »
et faire un clic droit-coller le raccourci dans votre message
Dans l’attente
Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
524
1 nov. 2016 à 10:43
1 nov. 2016 à 10:43
Bonjour,
Bien que je partage l'avis de michel_m (que je salue), j'ai sorti ma boule de cristal et j'ai créé un fichier de test avec la macro suivante :
Le code est à placer dans le module ThisWorkbook.
A+
Bien que je partage l'avis de michel_m (que je salue), j'ai sorti ma boule de cristal et j'ai créé un fichier de test avec la macro suivante :
Private Sub Workbook_Open()
Dim Semaine As Integer
Dim DerLig As Long
Dim Cel As Range
Semaine = CInt(Format(Date, "ww", vbMonday, vbFirstFourDays))
With Worksheets("Feuil1")
.Cells.EntireRow.Hidden = False
DerLig = .Range("A" & Rows.Count).End(xlUp).Row
For Each Cel In .Range("A8:A" & DerLig)
If Cel.Value < Semaine Or Cel.Value > Semaine + 2 Then
Cel.EntireRow.Hidden = True
End If
Next Cel
End With
End Sub
Le code est à placer dans le module ThisWorkbook.
A+
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 1/11/2016 à 11:25
Modifié par michel_m le 1/11/2016 à 11:25
bof!
déjà écrire en début de macro
application.screenupdating=false
ensuite
Dans cette base de données la colonne 1 calcule automatiquement la semaine de la donnée présente sur chaque ligne.
alors pourquoi
Semaine = CInt(Format(Date, "ww", vbMonday, vbFirstFourDays))
donc, attendre le classeur parait + sage
déjà écrire en début de macro
application.screenupdating=false
ensuite
Dans cette base de données la colonne 1 calcule automatiquement la semaine de la donnée présente sur chaque ligne.
alors pourquoi
Semaine = CInt(Format(Date, "ww", vbMonday, vbFirstFourDays))
donc, attendre le classeur parait + sage
Sebast16
Messages postés
6
Date d'inscription
mardi 1 novembre 2016
Statut
Membre
Dernière intervention
2 novembre 2016
1 nov. 2016 à 11:45
1 nov. 2016 à 11:45
Bonjour à tous les 2,
Merci pour votre retour. J'ai adapté la macro de Gyrus, cela fonctionne mais malheureusement, le screening se fait ligne par ligne quand je l'active, ce qui fait qu'avec 1500 lignes environ, l'action met beaucoup de temps à s'effectuer....
Je vous ai envoyé en privé le fichier pour une meilleure compréhension (les cellules sont vides pour le moment), la colonne 1 se calcule toute seule, la colonne W et Y sont des dates, le reste du texte
Merci pour votre aide.
A+
Merci pour votre retour. J'ai adapté la macro de Gyrus, cela fonctionne mais malheureusement, le screening se fait ligne par ligne quand je l'active, ce qui fait qu'avec 1500 lignes environ, l'action met beaucoup de temps à s'effectuer....
Je vous ai envoyé en privé le fichier pour une meilleure compréhension (les cellules sont vides pour le moment), la colonne 1 se calcule toute seule, la colonne W et Y sont des dates, le reste du texte
Merci pour votre aide.
A+
Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
524
1 nov. 2016 à 12:33
1 nov. 2016 à 12:33
Tu peux déjà prendre en compte la critique positive de michel_m qui est de rajouter la ligne d'instruction suivante en début de procédure :
L'actualisation de l'écran sera ainsi désactivée et accélérera l'exécution de la procédure.
En retour, dis-nous si cette adaptation est suffisante.
A+
Application.ScreenUpdating = False
L'actualisation de l'écran sera ainsi désactivée et accélérera l'exécution de la procédure.
En retour, dis-nous si cette adaptation est suffisante.
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Sebast16
Messages postés
6
Date d'inscription
mardi 1 novembre 2016
Statut
Membre
Dernière intervention
2 novembre 2016
1 nov. 2016 à 13:33
1 nov. 2016 à 13:33
Ca me semble beaucoup mieux en effet !
Je vais essayer de remplir ma base de données et voir si avec la quantité le temps de masquage reste le même.
Je vous tiens au courant
Merci pour votre aide précieuse,
Bonne journée
Je vais essayer de remplir ma base de données et voir si avec la quantité le temps de masquage reste le même.
Je vous tiens au courant
Merci pour votre aide précieuse,
Bonne journée
Sebast16
Messages postés
6
Date d'inscription
mardi 1 novembre 2016
Statut
Membre
Dernière intervention
2 novembre 2016
1 nov. 2016 à 13:40
1 nov. 2016 à 13:40
Salut Gyrus,
je viens de m'apercevoir de quelquechose : la macro masque toutes les lignes dont la semaine est inférieure à celle en cours y compris celles dont la semaine est vide (c'est à dire encore sans data). Peut on le modifier légèrement pour que les lignes vides ne soient pas masquées ?
Merci encore !
je viens de m'apercevoir de quelquechose : la macro masque toutes les lignes dont la semaine est inférieure à celle en cours y compris celles dont la semaine est vide (c'est à dire encore sans data). Peut on le modifier légèrement pour que les lignes vides ne soient pas masquées ?
Merci encore !
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
1 nov. 2016 à 16:53
1 nov. 2016 à 16:53
Re,
je viens de rentrer: je m'y mets demain matin...
je viens de rentrer: je m'y mets demain matin...
Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
524
1 nov. 2016 à 19:19
1 nov. 2016 à 19:19
Voici la macro modifiée :
A+
Private Sub Workbook_Open()
Dim Semaine As Integer
Dim DerLig As Long
Dim Cel As Range
Application.ScreenUpdating = False
Semaine = CInt(Format(Date, "ww", vbMonday, vbFirstFourDays))
With Worksheets("Feuil1")
.Cells.EntireRow.Hidden = False
DerLig = .Range("A" & Rows.Count).End(xlUp).Row
For Each Cel In .Range("A8:A" & DerLig)
If (Cel.Value < Semaine Or Cel.Value > Semaine + 2) And Cel.Value <> "" Then
Cel.EntireRow.Hidden = True
End If
Next Cel
End With
End Sub
A+
Sebast16
Messages postés
6
Date d'inscription
mardi 1 novembre 2016
Statut
Membre
Dernière intervention
2 novembre 2016
1 nov. 2016 à 20:28
1 nov. 2016 à 20:28
Salut Gyrus,
T'es trop fort !! merci pour votre aide et surtout pour la rapidité de réponse !
Bonne soirée
T'es trop fort !! merci pour votre aide et surtout pour la rapidité de réponse !
Bonne soirée
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
2 nov. 2016 à 07:58
2 nov. 2016 à 07:58
Excusez moi d'avoir dérangé
Sebast16
Messages postés
6
Date d'inscription
mardi 1 novembre 2016
Statut
Membre
Dernière intervention
2 novembre 2016
2 nov. 2016 à 18:49
2 nov. 2016 à 18:49
Mais tu n'as pas dérangé Michel :)
Toutes les aides sont les bienvenues pour des novices comme moi :)
Toutes les aides sont les bienvenues pour des novices comme moi :)