Création MACRO/VBA

célinetissier Messages postés 3 Statut Membre -  
eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
J'ai besoin de créer une macro sur un fichier excel.
Complètement novice en Macro/VBA, quelqu'un pourrait-il m'expliquer comment faire, voici ce que je souhaiterais faire :
- Si dans le premier onglet "aspect", je mets en cellule D7 "Montaigu", alors seul les onglets "COA's Isigny" et "COA's Arla"doivent disparaître.

Voici le lien avec le fichier
http://cjoint.com/12ju/BGnjbOE0I9P.htm

Je voudrais des explications pour une novice, car j'essai de comprendre comment fonctionne une macro avec les qq info que je trouve sur le net.

Merci par avance

6 réponses

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    c'est le bon fichier que tu as joint ?
    je mets en cellule D7 "Montaigu", alors seul les onglets "COA's Isigny" et "COA's Arla"doivent disparaître.
    C'est le seul cas à traiter ? Tu ne vas pas revenir en disant et si je mets... alors..., et si ça, faire réapparaitre...
    Et D7 est saisis ou c'est une formule ?

    eric

    Jamais tu ne répondras à un mp non sollicité...
    Bon, ça c'est fait.
    0
  2. célinetissier Messages postés 3 Statut Membre
     
    si , en fait :
    - si je mets montaigu en D7, seul Montaigu doit apparaitre,
    - si c'est Isigny, seul l'onglet Isigny doit apparaitre
    - et si je mets Arla seul Arla doit apparaitre

    Merci
    0
  3. Le Pingou Messages postés 12273 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour à tous ,
    Si vous mettiez un commentaire qui correspond avec votre classeur se serait mieux .... (par exemple : le premier onglet = « First quater » et non pas « aspect »)..... !
    Note, vous faites référence à des onglets introuvables sur votre classeur.... !

    Salutations.
    Le Pingou
    0
  4. célinetissier Messages postés 3 Statut Membre
     
    désolé, voici le lien avec le bon fichier joint :
    http://cjoint.com/13jn/CFxrvOigNqO.htm
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Une proposition :
    Private Sub Worksheet_Change(ByVal Target As Range)
        Const supplier As String = "Montaigu;Isigny;Arla"
        Dim sh As Worksheet, pos As Long
        If Target.Address = "$D$7" Then
            Application.ScreenUpdating = False
            For Each sh In Worksheets    ' pour chaque feuille
                pos = InStr(supplier, sh.Name)
                If pos > 0 Then ' si nom dans la liste
                    If sh.Name = [D7] Then sh.Visible = xlSheetVisible Else sh.Visible = xlSheetHidden
                End If
            Next sh
            Application.ScreenUpdating = True
        End If
    End Sub

    Modifier la constante au début si besoin.
    J'y ai récupéré ta liste de validation. Par contre les noms de feuilles doivent être identiques, majuscules comprises. Voir ARLA à renommer en Arla.
    https://www.cjoint.com/?CFxr3q4KOtV

    eric
    0
  7. celinetissier
     
    merci beaucoup, mais pourrais-tu m'expliquer ou se trouve la macro, je n' arrive pas à la visualiser.

    Peux-tu m'expliquer aussi la macro STP.

    MERCI
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonjour,

      Clic-droit sur le nom d'onglet de 'Aspect' et choisir 'visualiser le code...'
      J'ai mis qcq commentaires. Pour les fonction que tu ne connais pas faire F1 dessus pour avoir l'aide très bien faite d'excel.
      Le principe :
      Tous les noms des feuilles concernées sont déclarées dans une constante (parce que tu en as beaucoup d'autres à laisser tranquilles).
      On balaie toutes les feuilles, si son nom est dans la liste on la masque ou on l'affiche en comparant son nom à D7.

      eric
      0