Macro, designar la hoja activa.

Resuelto
Dobynette -  
 Dobynette -
Hola a todos

He estado buscando durante varios días cómo adaptar una macro para mi archivo, pero no encuentro la solución.
He creado un archivo de planificación con varias pestañas para cada mes y, además, pestañas que resumen la presencia de cada persona en cada puesto para permitir un seguimiento.
En cada pestaña de mes, tengo una tabla con el número de días de presencia en cada puesto por persona y un botón con una macro que me permite agregar esas columnas en la tabla resumen por puesto.

Lo que busco hacer es tener una única macro, sin importar qué pestaña de mes se esté utilizando al lanzarla. Pero actualmente no he encontrado nada que funcione para reemplazar los "Sheets("Enero").Select" en mi macro.

¿Alguien tendría una solución para designar la hoja desde la cual se hizo clic en el botón para lanzar la macro?

Gracias de antemano :)

2 respuestas

Vaucluse Mensajes publicados 27336 Fecha de registro   Estado Colaborador Última intervención   6 453
 
Hola
quizás simplemente (y con todas las reservas según tu macro), reemplazar:

Hojas("Enero").select

por

ActiveSheet.select

saludos

--
La calidad de la respuesta depende sobre todo de la claridad de la pregunta, ¡gracias!
0
Dobynette
 
Hola

Gracias por tu respuesta
He intentado este comando, pero la macro no hacía absolutamente nada.

Aquí está la macro. Quizás falta algo.

Sub Seguimiento()
'
' Macro Seguimiento
'


Sheets("URG").Select
Columns("D").Select
Range("D2").Activate
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("Enero").Select
Range("B50:B67").Select
Selection.Copy
Sheets("URG").Select
Range("D1").Select
Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("D:D").ColumnWidth = 5
End Sub


Este código se repite idénticamente para 4 copiar/pegar en diferentes pestañas.
0
Vaucluse Mensajes publicados 27336 Fecha de registro   Estado Colaborador Última intervención   6 453
 
No vuelo muy alto en macro, pero creo que si comienzas por seleccionar la hoja URG, ActiveSheet.Select se dirigirá necesariamente a esa hoja!

ve si puedes comenzar tu macro con:

ActiveSheet.Select
Range("B50:B67").Select
Selection.Copy

luego selecciona la hoja URG y elimina más abajo las filas que se refieren a la copia de enero?

me parece que las acciones que haces antes de copiar enero se pueden hacer después, ¿no?

si no, tendrás que esperar a alguien mejor en VBA y eso, seguramente no es raro aquí :-))

saludos
0
Dobynette
 
¡Re!

Había montado la macro así porque no podía insertar las celdas manteniendo el formato de una vez, pero ya lo logré y funciona bien. Sin embargo, me falta una línea que permita regresar a la hoja inicial después del primer copiar/pegar, siempre sin designarla por su nombre. Intentaré encontrar esta nueva solución :) ¡Gracias!

Sub Suivi2()
'
' Macro Suivi2
'

'
ActiveSheet.Select
Range("B50:B66").Select
Selection.Copy
Sheets("URG").Select
Columns("D").Select
Range("D2").Activate
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("D1").Select
Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

ActiveSheet.Select
Range("C50:C66").Select
Selection.Copy
Sheets("LCT").Select
Columns("D").Select
Range("D2").Activate
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("D1").Select
Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
0
Dobynette
 
He logrado simplemente definiendo un nombre arbitrario para ActiveSheet y luego usando los comandos nombre.Activate y nombre.Select.
0