Activer une macro sur une autre feuille

Fermé
Steeve999 Messages postés 16 Date d'inscription lundi 17 juillet 2017 Statut Membre Dernière intervention 24 avril 2018 - Modifié le 20 juil. 2017 à 14:08
 paul - 20 juil. 2017 à 16:02
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.
A voir également:

1 réponse

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
Steeve999 Messages postés 16 Date d'inscription lundi 17 juillet 2017 Statut Membre Dernière intervention 24 avril 2018
20 juil. 2017 à 14:59
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
paul > Steeve999 Messages postés 16 Date d'inscription lundi 17 juillet 2017 Statut Membre Dernière intervention 24 avril 2018
Modifié le 20 juil. 2017 à 16:38
 
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