Copiar botones

¡Estimado genio del Excel!.
Me ha surgido otro problema y va a permitirme que abuse otra vez de su amabilidad.
Resulta que tengo una hoja con 7 botones. Tengo que copiarla 25 veces.
He leído que pulsando Ctrl y arrastrando con el ratón se copia la hoja entera.
Al copiar la primera he probado los botones y resulta que no funcionaban.
He entrado en cuadro de controles, en vista diseño y pulsando sobre el primer botón y en propiedades en "Name" había cambiado su nombre por CommandButton1 y en la ventana del código:Private Sub CommandButton1_Click()
End Sub.
Sólo había esto.
Parece como si al copiar la hoja haya considerado los botones como nuevos.
Me he dado cuenta que cambiando "Name":por su nombre antiguo, los botones funcionan.
Pero tengo que cambiarlos 7x25 veces.
Por lo tanto antes de hacerlo, he pensado en consultárselo por si sabe algún procedimiento más fácil que me permita copiar las hojas sin tanto esfuerzo.
Agradecido de por siempre... Un fuerte abrazo de :
Carlos

1 Respuesta

Respuesta
1
La primera sugeerencia será que crees nuevos botones, esta vez utilizando la barra de herramientas "Formularios".
Los botones creados anteriormente surgieron de la barra "Cuadro de controles" y de allí el comportamiento que mencionas.
Si generas un botón con la barra de herramientas "Formularios" y le asignas una macro (al terminar de dibujarlo, te mostrará una lista de macros disponibles para que se lo asocies en ese paso), luego podrás replicarlo fácilmente. Bastara que arrastres el botón con la tecla Ctrl presionada y, soltando primero el botón del mouse, te creará una copia también asociada a la misma macro o puedes asignarle otra distinta.
Es cierto, de la misma manera puedes duplicar hojas y los botones incluidos en ella mantendrán la asociación.
De todos modos, aquí va una macro simple, donde sólo tienes que indicarle la cantidad de veces a replicar y ella se encargrá de hacerlo:
Sub duplhoja()
CantHojas = InputBox("Indique catidad de hojas a replicar", "DUPLICANDO ESTA HOJA")
If Len(CantHojas) > 0 Then
For cont = 1 To CantHojas
ActiveSheet.Copy After:=Sheets(Sheets.Count)
Next
End If
End Sub
Espero que esto te ayude.
Un abrazo!
Fernando

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas