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

Macros et VBA Excel Discussion :

Macro Recherche + Masquer [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Doubs (Franche Comté)

    Informations forums :
    Inscription : Avril 2010
    Messages : 5
    Par défaut Macro Recherche + Masquer
    Bonjour,

    J'ai un tableau ("E5:BE30").
    Dans celui-ci il n'y a que des cellules faisant référence à d'autres feuilles (='Feuil1'!$D$2 par exemple).
    La cellule servant pour la recherche est "C3".
    Ce que j'aimerais, c'est que lorsque je tape "Papillon" en "C3" puis "Entrée", la macro se déclenche.
    Son action serait la suivante :
    - Rechercher si dans la colonne "E", une cellule CONTIENT la VALEUR "Papillon".
    -> si c'est le cas, passer a la colonne "F" pour le même test.
    -> si aucune cellule de la colonne "E" ne CONTIENT la VALEUR "Papillon", masquer la colonne "E" et passer à la colonne "F" pour le même test.
    ... et ainsi de suite jusqu'à la fin du tableau colonne "BE"

    - Ensuite dans le même esprit, commencer par la ligne "5" jusqu'à la ligne "30".

    Je retourne ça depuis quelques jours sans trouver de solution.
    Je vous remercie par avance de me faire profiter de vos connaissances.

  2. #2
    Membre chevronné
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Par défaut
    Salut,

    Dans un Module standard:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Option Explicit
     
    Sub MasqueColonnes(ValeurRecherchee As String)
        Dim Rech As Range
        Dim Colonne As Byte
     
        Application.ScreenUpdating = False
            Columns("E:BE").Hidden = False
            If ValeurRecherchee <> "" Then
                For Colonne = 5 To 57
                    Set Rech = Range(Cells(5, Colonne), Cells(30, Colonne)).Find(What:=ValeurRecherchee, LookIn:=xlValues, lookat:=xlPart)
     
                    If Not Rech Is Nothing Then
                        Rech.EntireColumn.Hidden = True
                        Set Rech = Nothing
                    End If
                Next Colonne
            End If
        Application.ScreenUpdating = True
    End Sub
    Dans le code de la feuille concernee:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Option Explicit
     
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Address = "$C$3" Then
            MasqueColonnes (Target.Value)
        End If
    End Sub

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Doubs (Franche Comté)

    Informations forums :
    Inscription : Avril 2010
    Messages : 5
    Par défaut
    Bonjour Minick,

    Pour commencer, un grand merci pour ta réponse rapide.
    Il doit y avoir quelque chose que je ne comprends pas parce que la macro ne fait que cacher la colonne "E", peu importe ce que je rentre dans la cellule "C3".

    Que signifie "Option Explicit" mentionné avant le début de la macro ?
    Pourquoi la macro "MasqueColonnes" n'apparait pas dans la liste lorsque je veux l'affecter à un bouton ?

    Je suis désolé de poser de telles questions, mais je débute en VBA et l'aide ne m'est pas d'un grand secours.

  4. #4
    Membre chevronné
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Par défaut
    Re,

    Ooops desole j'ai inverse le test:
    remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If Not Rech Is Nothing Then
        Rech.Entirecolumn.Hidden=True
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                    If Rech Is Nothing Then
                        Columns(Colonne).Hidden = True

    Option Explicit sert a imposer la declaration des variables

    Tu ne vois pas la procedure MasqueColonnes car elle a un argument (ValeurRecherchee).

    Mais il n'est pas necessaire de l'assossier a un bouton vu que tu disais:
    Ce que j'aimerais, c'est que lorsque je tape "Papillon" en "C3" puis "Entrée", la macro se déclenche.
    Et c'est ce que fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Option Explicit
     
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Address = "$C$3" Then
            MasqueColonnes (Target.Value)
        End If
    End Sub

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Doubs (Franche Comté)

    Informations forums :
    Inscription : Avril 2010
    Messages : 5
    Par défaut
    J'ai maintenant le code erreur suivant :
    Erreur d'exécution '91' :
    Variable objet ou variable de bloc With non définie
    L'erreur m'envoie sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Rech.EntireColumn.Hidden = True
    Pour ce qui est de Option Explicit, je l'ai inséré avant la macro, comme indiqué, ce qui fait que cette ligne ne fait pas partie des 2 macros.

    Je sais je suis pas très doué...

  6. #6
    Membre chevronné
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Par défaut
    Desole, decidement je fais n'importe quoi.

    J'ai edite mon precedent message parce que j'avais ecris une enorme betise.

    Pour Option Explicit, il doit etre en tete de chaque Module.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Macro Afficher/Masquer colonnes suivant 2 critères de recherche
    Par josselin.janvier dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 20/11/2014, 16h23
  2. [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
  3. Débutant - Macro recherche de date
    Par joums dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 18/12/2007, 23h06
  4. [Formule]Macro pour masquer des formules dans une cellule
    Par Hellx dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/04/2007, 08h21
  5. Macro recherche dans le classeur
    Par Max485 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/04/2007, 15h07

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