Activar una macro en otra hoja
Steeve999
Mensajes publicados
16
Estado
Miembro
-
paul -
paul -
Bonjour,
J'ai codé une macro sur une "feuil1" mais ça beug donc je l'ai copiée sur une autre "feuil2" mais je veux que la programmation soit applicable sur "feuil1" comment je peux faire ça ?
Merci d'avance.
J'ai codé une macro sur une "feuil1" mais ça beug donc je l'ai copiée sur une autre "feuil2" mais je veux que la programmation soit applicable sur "feuil1" comment je peux faire ça ?
Merci d'avance.
1 respuesta
-
Hola Steeve999,
Una macro se coloca en Module1 o Module2 (por ejemplo),
y la ubicación en un módulo u otro no cambia nada;
luego, la sub del módulo hace su trabajo en una hoja o
en otra: es a ti escribirla correctamente; así que si falla, revisa tu código VBA.
Si aún no lo consigues, puedes pegar tu código
en tu próximo mensaje en este foro (si no es muy largo);
de lo contrario, adjunta tu archivo Excel.
En cualquiera de los dos casos, especifica claramente cuál es la tarea a realizar.
Atentamente
-
Hola Paul, He puesto el código en un módulo pero no funciona. Aquí está el código: 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
- Para la ubicación del código: Este código es un evento de hoja => no debe estar en un módulo (como Module1 o Module2), sino en el código de la hoja correspondiente; por lo tanto, si es para Hoja1: pulsa Alt F11 para abrir Microsoft Visual Basic; a la izquierda, en la lista superior: haz doble clic en Hoja1 => a la derecha, la página de código de Hoja1; ahí es donde debes copiar el código (en Module1 no olvides eliminar ese mismo código). --------------------------------------------------- Te propongo este código VBA:
' KeyCells : en hoja "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 SubMerci de me dire si cela te convient.
-