Masquer des lignes selon la donnée incluse dans la case D

Fermé
cyrii Messages postés 8 Date d'inscription lundi 13 janvier 2014 Statut Membre Dernière intervention 14 janvier 2014 - 13 janv. 2014 à 09:06
cyrii Messages postés 8 Date d'inscription lundi 13 janvier 2014 Statut Membre Dernière intervention 14 janvier 2014 - 14 janv. 2014 à 12:47
bonjour à tous,
je cherche à faire une macro qui masquerait les lignes d'un tableau selon une date indiquée dans une case, je m'explique;
dans mon tableau, il y a dans la colonne D les dates du 1/1/2014 au 31/12/2014 et des informations en face de ces dates dans les colonnes suivantes
je voudrais créer une case, mettons en D15 où je pourrais indiquer une date et que toutes les lignes ; du 1/1/2014 jusqu'à la date indiquée en D15 - 1 jour se masquent, soit si j'indique 1/5/2014, les lignes du 1/1/2014 au 30/4/2014 seraient alors masquées

précision; mes dates sont dans une case fusionnée comprenant 2 lignes
l2 1/1/2014 à pour nom de cellule D68 mais inclus aussi la ligne 69

merci d'avance pour votre aide précieuse

6 réponses

Bonjour,
Pour lancer la discusion voilà ce que je ferais..
j'associe à la case où se trouve ta date un événement worksheet_change en vba.
A cet événement, j'écris une macro qui répère la dernière ligne de ton tableau et qui ensuite boucle sur toutes les lignes (colonne des dates) et qui à chaque fois que la date est inférieure ou égale à ta cellule de référence masque la ligne entière avec une instruction du style activecell.entirerow.hidden = true. Il reste à voir quelle boucle est la meilleure et ce que cela donne avec les cellules fusionnées..

GB
0
cyrii Messages postés 8 Date d'inscription lundi 13 janvier 2014 Statut Membre Dernière intervention 14 janvier 2014
14 janv. 2014 à 09:45
bonjour GB,
je te remercie pour ta réponse mais je crois que mes connaissances ne me permettent pas de la comprendre pour la mettre en forme...
0
dlt-pan Messages postés 481 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 23 décembre 2014 67
14 janv. 2014 à 11:33
Bonjour
une petite macro a adapter à tes bseoins :
dans l'exemple, les dates sont dans la colonne A des lignes 1 a 32 en ordre croissant.
la date est en A34, en dessous, pour eviter de la masquer.

Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveCell.Address = "$A$34" Or ActiveCell.Address = "$A$35" Then
For i = 1 To Range("A40").End(xlUp).Row - 2
If Cells(i, 1) < Cells(34, 1) Then
Rows(i).Select
Selection.EntireRow.Hidden = True
Else
Rows(i).Select
Selection.EntireRow.Hidden = False
ActiveWindow.SmallScroll Down:=-21
End If
Next i
End If
End Sub

quand tu changes la date en A34, les autres disparaisent ou apparaissent
0
cyrii Messages postés 8 Date d'inscription lundi 13 janvier 2014 Statut Membre Dernière intervention 14 janvier 2014
14 janv. 2014 à 12:20
bonjour et merci
j'ai créé un petit tableau avec ce que tu m'as indiqué mais je n'y arrive pas

je pense que j'insère mal la formule dans visual basic
comment pourrais mettre mon tableau en ligne pour voir ce qui ne va pas?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cyrii Messages postés 8 Date d'inscription lundi 13 janvier 2014 Statut Membre Dernière intervention 14 janvier 2014
14 janv. 2014 à 12:32
dlt-pan,
j'ai trouvé ce qui n'allait pas, c'est que évidemment ça ne marche que dans un sens, = si la date indiquée en A34 est plus lointaine que la première date encore affichée, il faut que je fasse une autre macro pour ré afficher les dates antérieures déjà masquées
0
cyrii Messages postés 8 Date d'inscription lundi 13 janvier 2014 Statut Membre Dernière intervention 14 janvier 2014
14 janv. 2014 à 12:47
dlt-pan,
bon pas si simple, dans une feuille où j'ai mis juste tes données, ça va, mais dans mon tableau, je n'arrive pas à adapter la formule, ne comprenant pas la logique de celle-ci (je ne suis pas assez connaisseur en vba..)
moi, mes dates commencent à la ligne 66,
chaque date est répétée en colonne a 2 fois, soit sur 2 lignes pour passer à côté du problème des cases fusionnées, ayant besoin de 2 lignes par jour dans mon tableau,
la case où je voudrais indiquer la date avant laquelle les dates doivent se masquer est en I11,
si je mets une case à cocher, y a t il un moyen pour que si la case est cochée, les lignes se masque,t de la ligne 66 à la ligne de la date avant eclle indiquée en I11 et que si je décoche, toutes les dates réapparaissent?

merci d'avance
0