Activer une macro sur une autre feuille

Steeve999 Messages postés 16 Statut Membre -  
 paul -
Bonjour,

J'ai codé un macro sur une "feuil1" mais ça beug donc je l'ai copié sur une autre "feuil2" mais je veux que la programmation soit applicable sur "feuil1" comment je peux faire ça ?
Merci d'avance.

1 réponse

  1. paul
     
    Bonjour Steeve999,

    Une macro se met dans Module1 ou Module2 (par exemple),
    et l'emplacement dans un module ou un autre ne change rien ;
    ensuite, la sub du module fait son travail sur une feuille ou
    une autre : c'est à toi de l'écrire correctement ; donc si ça
    bogue, revoit ton code VBA.

    Si tu n'y arrives toujours pas, tu peux déposer ton code
    dans ton prochain post sur ce forum (si pas trop long) ;
    sinon, joins ton fichier Excel.

    Dans les 2 cas, précise bien quel est le travail à faire.

    Cordialement
     
    0
    1. Steeve999 Messages postés 16 Statut Membre
       
      Bonjour Paul,

      J'ai mis le code dans un module mais ça marche pas.

      Voici le code:

      Private Sub Worksheet_Change(ByVal Target As Range)
      Dim KeyCells As Range
      Set KeyCells = Sheets("Fiche_opérateur").Range("d6")
      If Not Application.Intersect(KeyCells, Range(Target.Address)) _
      Is Nothing Then


      If Range("d6") = "Sonomètre" Then

      Sheets("Détail résultats Sonomètre").Visible = True
      Sheets("Détail résultats Centrale LANXI").Visible = False

      Sheets("Fiche_opérateur").Range("a66:c66").EntireRow.Hidden = False
      Sheets("Fiche_opérateur").Range("a57:a58").EntireRow.Hidden = True
      Sheets("Fiche_opérateur").Range("a59").EntireRow.Hidden = False

      End If
      End If
      End Sub
      0
      1. paul > Steeve999 Messages postés 16 Statut Membre
         
         
        Pour l'emplacement du code :

        Ce code est une sub événementielle => elle ne doit pas être dans un module
        (tel que Module1 ou Module2), mais dans le code de la feuille concernée ;
        donc si c'est pour Feuil1 : fais Alt F11 pour aller sur Microsoft Visual Basic ;
        à gauche, dans la liste du haut : double-clic sur Feuil1 => à droite, page de
        code de Feuil1 ; c'est là qu'il faut copier le code (dans Module1, n'oublie
        pas de supprimer ce même code).

        ---------------------------------------------------

        Je te propose ce code VBA :

        
        ' KeyCells : en feuille "Fiche_opérateur", D6
        
        Private Sub Worksheet_Change(ByVal Target As Range)
        
          With Worksheets("Fiche_opérateur")
            
            If Application.Intersect(.[D6], Range(Target.Address)) Is Nothing Then Exit Sub
            If .[D6] <> "Sonomètre" Then Exit Sub
        
            Worksheets("Détail résultats Sonomètre").Visible = True
            Worksheets("Détail résultats Centrale LANXI").Visible = False
            
            .[A66:C66].EntireRow.Hidden = False
            .[A57:A58].EntireRow.Hidden = True
            .[A59].EntireRow.Hidden = False
            
          End With
        
        End Sub
        
        

        Merci de me dire si ça te convient.
         
        0