Appliquer une macro sur EXCEL

Résolu
Bonjour,
Je souhaiterais savoir comment l'on fait pour activer une macro une que celle-ci est écrite.
Voilà mon code:
Sub Bonjour()
If Range("C222") = "Non" Then
Rows("223:238").Select
Selection.EntireRow.Hidden = True
Else
Rows("223:238").Select
Selection.EntireRow.Hidden = False
End If
End Sub
Comment faire pour que celle-ci s'applique lorsque je choisi la réponse a la question?
Configuration: Windows XP
Internet Explorer 6.0

4 réponses

  1. bonjour,

    tu crées la macro dans Excel en faisant Outils/Macros/macro

    ensuite dans la fenêtre qui s'ouvre, tu indiques le nom de ta macro
    et tu cliques sur modifier.

    tu fais un copier coller de ta macro en faisant attention de ne pas avoir
    deux fois SUB et END SUB.

    ensuite tu fais Affichage/Barre d'Outils/Formulaire

    tu cliques sur bouton, tu le reporte sur la feuille, et là en recliquant, on te demande de
    lier la macro au bouton.

    tu donnes ta réponse, oui ou non et tu cliques sur le bouton, la macro s'exécute.

    après, tu règle le bouton et tu lui donnes un nom.

    ( fais attention, tu écris Non, çà marche, si tu écris non, çà ne marche pas.

    à toi de voir.

    @+
    -1
    1. Bonjour,

      A mettre dans le module de feuille:

      Private Sub Worksheet_Change(ByVal Target As Range)
      If Range("C222") = "Non" Then
      Rows("223:238").Select
      Selection.EntireRow.Hidden = True
      Else
      Rows("223:238").Select
      Selection.EntireRow.Hidden = False
      End If
      End Sub

      Bonne journée.
      0
      1. Modérateur
        Bonjour,

        La macro de g ne fonctionnera pas... En effet, elle se déclenchera à chaque modif de cellule, et non pas seulement à la modif de la cellule c222.

        Essaie plutôt ce code :

        Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Application.Intersect(Target, Range("C222")) Is Nothing Then
        If Range("C222") = "non" Then
        Rows("223:238").EntireRow.Hidden = True
        Else
        Rows("223:238").EntireRow.Hidden = False
        End If
        End If
        End Sub

        à mettre dans le module de la feuille. Si tu ne sais pas faire, tu peux faire un clic droit sur l'onglet de la feuille et choisir visualiser le code... Puis tu colles la macro.

        m@rina
        0
        1. Merci beaucoup votre aide m'a beaucoup aider j'ai réussi à faire ma macro comme il faut.
          La solution est :
          Private Sub Worksheet_Change(ByVal Target As Range)
          If Not Application.Intersect(Target, Range("C222")) Is Nothing Then
          Call (module utilisé)
          End If
          End Sub

          c'est nickel merci beaucoup.
          0