Duplicar UserForm
Resuelto
Mistral_13200
Mensajes publicados
649
Estado
Miembro
-
Mistral_13200 Mensajes publicados 649 Estado Miembro -
Mistral_13200 Mensajes publicados 649 Estado Miembro -
Hola a todos,
Antes de exponer mi problema, me gustaría presentar mis mejores deseos a toda la comunidad de CCM.
Se me pide que realice una hoja de cálculo para llevar la contabilidad de una asociación. Habrá una hoja por mes, además de una hoja de resumen por categoría y una hoja para el balance anual.
Para cada hoja habrá dos UserForm, uno para los ingresos y otro para los gastos.
Voy a utilizar UserForm bastante complejos en su composición para la entrada de los diferentes elementos. Cada UserForm será llamado con un simple clic en una celda de una columna (ingreso o gasto). He hecho una hoja de cálculo de prueba que pueden descargar con este enlace:
http://www.cjoint.com/c/GAdi13CwEYg
Para no perder demasiado tiempo recreándolos, me gustaría saber si es posible duplicar un UserForm:
- En una misma hoja
- En diferentes hojas
Si es así, ¿cómo se hace?
Gracias de antemano por su ayuda.
Atentamente.
Mistral
Antes de exponer mi problema, me gustaría presentar mis mejores deseos a toda la comunidad de CCM.
Se me pide que realice una hoja de cálculo para llevar la contabilidad de una asociación. Habrá una hoja por mes, además de una hoja de resumen por categoría y una hoja para el balance anual.
Para cada hoja habrá dos UserForm, uno para los ingresos y otro para los gastos.
Voy a utilizar UserForm bastante complejos en su composición para la entrada de los diferentes elementos. Cada UserForm será llamado con un simple clic en una celda de una columna (ingreso o gasto). He hecho una hoja de cálculo de prueba que pueden descargar con este enlace:
http://www.cjoint.com/c/GAdi13CwEYg
Para no perder demasiado tiempo recreándolos, me gustaría saber si es posible duplicar un UserForm:
- En una misma hoja
- En diferentes hojas
Si es así, ¿cómo se hace?
Gracias de antemano por su ayuda.
Atentamente.
Mistral
3 respuestas
-
Hola Mistral_13200 y feliz año para ti,
Un método bastante simple:
- en la misma sesión abres un nuevo libro en blanco.
- seleccionas tu hoja de formulario y la arrastras al nuevo.
- modificas el nombre para el nuevo formulario
- seleccionas este formulario de usuario y lo arrastras a tu libro
Tienes tus 2 formularios en tu libro y dejas de lado el libro en blanco.
Buen día.
PD:
Habrá una hoja por mes,
Si puedo permitirme, no estoy seguro de que sea la fórmula más adecuada.
Si pones todas tus escrituras en la misma hoja, será mucho más simple y eficiente hacer una (o varias) tablas dinámicas en la "hoja resumen por categoría y una hoja para el balance anual".
Siempre zen
La perfección se alcanza, no cuando no hay nada más que agregar, sino cuando no hay nada más que quitar. Antoine de Saint-Exupéry -
Hola Gbinform,
Gracias por tu respuesta.
He intentado copiar mi hoja y USF en otro libro y funciona.
He logrado duplicar el USF en el mismo libro, modifiqué las celdas a vigilar y ahora tengo un mensaje de error:
Nombre ambiguo detectado: Worksheet_SelectionChange
No entiendo por qué, hay que decir que es la primera vez que uso los USF.
¿Puedes aclararme?
En cuanto a tener solo una hoja, voy a plantear la pregunta al C.A.
Atentamente
Mistral-
Re:
No proviene de los USF, pero has creado 2 procedimientosWorksheet_SelectionChange
y necesitas incluir el código del segundo en el primero.Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Target, Range("G3:G20")) Is Nothing Then Recette.Show ElseIf Not Intersect(Target, Range("F3:F20")) Is Nothing Then Répense.Show End If End Sub- Re,
Funciona perfectamente. Gracias a ti.
Una pregunta, sin embargo, si quisiera tener más de dos columnas a supervisar, con tantas USF como columnas, ¿puedo escribir lo que está abajo?Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("G3:G20")) Is Nothing Then
Recette.Show
ElseIf Not Intersect(Target, Range("F3:F20")) Is Nothing Then
Dépense.Show
End If
If Not Intersect(Target, Range("E3:E20")) Is Nothing Then
Mode.Show
ElseIf Not Intersect(Target, Range("D3:D20")) Is Nothing Then
Ribrique.Show
End If
End Sub
¿O hay otra manera de hacerlo?
Es para mi cultura personal...
Mistral
-
-
-
Hola Gbinforme,
Después de probar mi propuesta, y tras realizar modificaciones, llegué a la tuya que funciona perfectamente.
Ahora podré avanzar con mi proyecto. Marcaré esta sección como resuelta, pero probablemente volveré a contactar contigo más adelante.
Gracias nuevamente.
Atentamente.
Mistral