IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Discussion :

Macro afficher masquer ligne condition Vlookup


Sujet :

VBA

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    logistics
    Inscrit en
    Mai 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : logistics
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Macro afficher masquer ligne condition Vlookup
    Bonjour a tous,
    J'aimerai afficher ou masquer des lignes en fonction d'une valeur dans une cellule donnée (sachant que la valeur lue est une formule).
    J'ai joint un fichier pour mieux comprendre.
    Ma problématique est la suivante:
    Onglet mousse planning
    D44 est une formule (rechercheV)
    Si D44 = 3, je souhaite afficher les lignes D45 a D46
    sI D44= 4, afficher D45 a D48
    sI D44=5 AFFICHER D45 a D50
    Si D44=6 Afficher D45 a D52
    Si D44= vide, masquer D45 a D52

    J'ai actuellement cette macro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target.Address = "$D$44" Then
        Select Case Target.Value
            Case "3": Rows("47:52").Hidden = True
            Case "4": Rows("49:52").Hidden = True
            Case "5": Rows("51:52").Hidden = True
            Case "6": Rows("45:52").Hidden = False
     
        End Select
    End If
    End Sub
    Le problème est:
    - la macro ne fonctionne pas vu que c'est une formule en D44
    - Si la valeur en D44 est 3 par exemple et ensuite je change pour avoir 4, cela ne fonctionne pas car les lignes sont déjà cachées

    Quelqu' un a une macro pour que cela fonctionne automatiquement

    merci
    Fichiers attachés Fichiers attachés

  2. #2
    Futur Membre du Club
    Inscrit en
    Mars 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Je n'ai pas testé mais je vois 2 choses :
    Essaie l'évènement "Worksheet_Calculate" qui s'exécutera quand même si la formule n'est pas corrigée.
    If Target.Address = "D4" (Je ne suis pas certain qu'il y ait les $). Ou plus sûr : "Target.row =4 and Target.Column = 4"

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    logistics
    Inscrit en
    Mai 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : logistics
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    le code est correct pour $.
    Ou dois je mettre Worksheet_Calculate ?
    Je ne m'y connais pas du tout.
    Pouvez vous me donner si possible le code entier?

    Merci bcp

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    demandeur d'emploi
    Inscrit en
    Mai 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : demandeur d'emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 20
    Points : 36
    Points
    36
    Par défaut
    1. si ton macro est en sheet "mousse planning" - bien sur ca marche pas comme ca
    a) c'est a cause event "change" ne commence pas si tu changes une value sur "item process" ou
    b) c'est a cause ce n'est pas "D44" qui tu changes mais D12
    c) en chaque cas D44 ne commence pas d'event "change" (parce que il y a une formule ou ton "target" est D12 ou autre)

    2. alors il y a plusieurs solutions; deux ici:
    a)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Worksheet_Calculate()
        ' check = Range("D44").Value
        check = Sheets("mousse planning").Range("D44").Value
                Select Case check
                    Case "3": Rows("47:52").Hidden = True
                    Case "4": Rows("49:52").Hidden = True
                    Case "5": Rows("51:52").Hidden = True
                    Case "6": Rows("45:52").Hidden = False
                End Select
    End Sub
    b) ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub Worksheet_Change(ByVal Target As Range)
               ' ...
               If Target.Address = "$D$12" Then
               check = Sheets("mousse planning").Range("D44").Value
               Select Case check
               ' ...
    mais si il n'y a pas d'une value propre a D44 - c'est mal (erreur...)
    A Paris. Je cherche d'emploi (France, Maroc, Moyen Orient, autres a discuter).
    Je comprends presque tout en francais mais je n'ecris pas bien, desole

Discussions similaires

  1. [XL-2010] Macro Afficher/Masquer des colonnes suivant 2 critères de recherches
    Par josselin.janvier dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 19/11/2014, 17h56
  2. [XL-2007] afficher masquer lignes
    Par HELOW dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 14/09/2014, 09h51
  3. Macro Excel: Masquer ligne en fonction
    Par henrynv dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/06/2012, 17h38
  4. Afficher/masquer ligne d'un tableau
    Par ramone dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 08/11/2011, 10h10
  5. Afficher/masquer ligne tableau PB IE
    Par vct68 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/03/2008, 23h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo