Masquer les lignes d'un tableau situé 15 lignes au dessus d'une valeur detecté dans une colonne

Bonjour tout le monde je suis nouveau sur le forum.
Je travail dans expérimentation agricole. Afin d’expliquer au mieux nos résultats nous établissons un calendrier d’expérimentation (calexpé) avec les données météo d’un lieu concerné. nous travaillons souvent sur des choses pluriannuel et avons donc besoin de conserver les données sur au moins de 2 ans de suite.

Mon classeur se compose :

  • 1 onglet de Saisie
  • 1 onglet “Francais” et 1 onglet “Anglais” : correspondant au calexpe

Dans les onglets calexpe (“Francais et Anglais”) la feuille se compose ainsi :

  • Zone A1 à A5 sur l’ensemble des colonnes qui est liée à la feuille saisie afin de choisir les station météo par liste déroulante ; celle-ci reste masqué
  • B6 à N6 : Entête du tableau : reste affiché bien sur
  • La première colonne de mon tableau est la Date, dont la première valeur commence en B7
  • La colonne J correspond à la colonne application

Dans l’onglet saisie je rentre les dates de mes interventions qui viennent automatiquement se mettre dans les colonnes choisis. : exemple :
20/01/2019 : A (A pour application A)
La valeur A apparait dans le calexpe via une simple formule recherchev en fonction de la date dans la colonne J sur la ligne correspondant à la date indique.

Lors de la présentation de notre calxpé nous devons avoir les données au moins 15 jours avant la première application
Il n’y aura qu’une fois la valeur “A” seul dans la colonne J

Je souhaiterais savoir s’il est possible via une macro, lorsque la valeur A est détectée dans la colonne J, masquer automatiquement l’ensemble des lignes situées a partir de la 15ième ligne au dessus jusqu’à la ligne 7
Pour résumer si la valeur A situé en colonne J sur la ligne du 20/01/2019, masquer les lignes à partir du 5/01/2019 inclus jusqu’à la ligne B7 incluse.

Ci joint un fichier exemple.
Merci beaucoup pour vôtre aide.

Cordialement

Calexpe masquer 15lignes au dessus de A.xlsx (250,0 Ko)

Oups désolé voici le fichier que j’ai oublié de joindre.

Cordialement
Arnaud.

Bonjour,

Le problème vient que tes données sont calculées par un classeur “Données Météo” et un classeur XLT Calexpe ce qui donne dans ton résultat en colonne J

Dans ce cas, même le plus fort en astuce VBA serait bien dans la m… :grin:

Bonjour,
Merci pour ta réponse.
Oui en effet toutes les valeurs viennent de l’extérieur.

Mais j’ai trouvé sur le forum une macro qui permet de masquer toutes les lignes dont les valeurs sont supérieur à 18…
Que les données proviennent de formules ou non, la macro ne peut pas chercher la valeur A qui en est le résultat…?

Re Bonjour,

Voilà j’ai retrouver la macro, ont vous êtes l’auteur.qui me semble presque proche de ce que j’aimerai.

Sub Masque()
Dim i%

If ActiveWorkbook.ActiveSheet.Shapes("Bouton").TextFrame.Characters.Text = "MASQUER" Then 'Si le texte du bouton est MASQUER
  Selection.AutoFilter
    ActiveSheet.Range("$A$5:$X$1002").AutoFilter Field:=24, Criteria1:="<18", _
        Operator:=xlAnd
  ActiveWorkbook.ActiveSheet.Shapes("Bouton").TextFrame.Characters.Text = "AFFICHER" 'Modifie le texte du bouton en AFFICHER
Else 'Si le texte du bouton est AFFICHER
  Selection.AutoFilter
  ActiveWorkbook.ActiveSheet.Shapes("Bouton").TextFrame.Characters.Text = "MASQUER"  ''Modifie le texte du bouton en MASQUER
End If
End Sub

Est ce possible de l’adapté à ma demande sur un fichier ne contenant pas de liaison…?
Le faitd’avoir des résultats type “Erreur” ne permet pas la l’execution…?

Encore merci pour vôtre aide.

Cordialement
Arnaud.

Re,

A tester,
J’ai reformulé la formule en colonne J afin d’ôter les valeur #N/A
et la macro fonctionne sur l’activation de la feuille de résultats
Calexpe masquer 15lignes au dessus de A.xlsm (273,8 Ko)

1 « J'aime »

Bonsoir,

Merci beaucoup pour vôtre aide.
C’est exactement ce que je cherchais.
Je vais essayer de décrypter la macro pour comprendre la construction des différents vocabulaires.
Encore merci.

Bonne fête à tout e monde

Bonjour,
Meilleurs voeux pour cette nouvelle décennie.

Ton fichier marche super. Encore Merci.
Même si tu mets une date qui a été masqué auparavant, cela réinitialise tout.
J’ai également intégré la formule que tu as reformulé que ne je connaissais pas et semble plus pratique qu’une mise en forme conditionnelle.

Encore merci.

Cordialement.

Bonjour,

Je reviens vers toi car j’ai un petit souci que je n’arrive pas résoudre, toujours sur le même fichier : Calexpe masquer 15lignes au dessus de A.

Je te joint cette fois ci le fichier final.
1 : Dans l’onglet saisie : je rentre mon Numéro essai :19calexpe-FR01 et jelance ma macro enregistrer qui me réccupère la valeur E1 et la valeur “_calexpe” masqué en m1 pour attribuer le nom d’enregistrement. Jusque la cela marche à peu près.

Ensuite comme dans le premier fichier envoyé en exemple j’ai un onglet “Francais” et un “Anglais”.
C’est onglet seront envoyés à différentes personnes : leurs nom seront identiques au numéro essai : 19calexpe-FR01 et il faut que toutes macros et autres formules soit inexistante pour leur envoi.

Donc :
2 : Je rentre la valeur de ma première date d’application A en E2 ; qui est répercutée en A10 (A10 = E2)
A partir de la lorsque j’active l’une des feuilles “Francais” ou “Anglais”, ta macro masque marche à merveille.
3 : Le problème se situe lorsque j’exécute ma macro crée une copie dans un nouveau classeur puis copié collage spécial valeur :
"Sub Export_Calexpe_Fr()

’ Macro2 Macro


Sheets(“Francais”).Select
Sheets(“Francais”).Copy
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ChDir “Y:\2020\TECHNIQUE\Dossiers Essais”
Application.Dialogs(xlDialogSaveAs).Show Range(“R1”).Value

End Sub

La copie s’exécute bien, mais la macro s’arrête en cour de route, la partie collage spécial valeur ne s’exécute pas car sur la feuille copié dans le nouveau classeur exécute la macro suivante s’exécute :
"Option Explicit

Private Sub Worksheet_Activate()
Masque
End Sub
et ne trouve forcement pas de macro Masque à associer.
Est-il donc possible d’activer la macro que tu m’as construite, sur les 2 feuilles en même temps (“Francais” et “Anglais”) mais via un bouton ou autre afin que le copier collage spécial valeur s’exécute correctement…?

La dernière étape est de renommer la feuille avec le numéro de l’essai.
Ma macro copié collage spécial valeur vas directement chercher la feuille “Francais” ou “Anglais”.
Serait-ce possible lors que l’exécution de celle-ci de choisir la feuille souhaité à travers une liste de choix…? (Sachant que par conséquent “Francais” serait renomé 19calexpe-FR01 avant l’exécution de celle-ciModèle calexpe 2020.xlsm (2,9 Mo) )

Merci pour vôtre ton aide.

Cordialement.

Bonjour,

Fichier en PJ non valide

Re bonjour,

Oups le voici normalement valideModèle calexpe 2020.xlsm (2,9 Mo)

Bonjour,

Désole de vous déranger, avez-vous us regarder ma demande…?

Cordialement

Bonjour,

J’ai finalement trouvé la solution en créant un bouton active x, avec l’exécution de :
Option Explicit

Private Sub CommandButton1_Click()
Sheets(“Francais”).Activate
Application.Run (“Masque”)
Sheets(“Anglais”).Activate
Application.Run (“Masque”)

End Sub

Encore merci.

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.