Activar Macro en celda

23/07/2004 - 17:51 por JLLR | Informe spam
Hola a todos,
1-Tengo un libro con varia hojas,en la primera al activar
una celda y dar Ctrl A se ejecuta una macro que pone
valores en la Hoja correspondiente y si es Ctrl D se
ejecuta una macro para borrarlo,que forma podría usar para
que se activen estas macro pero mas profesional ,no se si
se puede hacer con botones, pero nunca lo he usado y
tampoco se como.
2- En una celda se pueden guardar datos como en un combo
(si se llenara con los nombres de las hojas seria ideal) ,
y de ahi seleccionar, esto es para que no escriban con
error y siempre la macro me encuentre el nombre de la hoja.
No se si me explique bien.

Atte J.LL.R

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
25/07/2004 - 01:32 | Informe spam
hola, JLLR !

... libro con varia hojas, en la primera al activar una celda y dar
Ctrl A se ejecuta una macro que pone valores en la Hoja correspondiente y si es
Ctrl D se ejecuta una macro para borrarlo
... que se activen estas macro ... si se puede ... con botones
... nunca lo he usado y tampoco se como.



=> si ya tienes escritas las macros [me parece que] la manera mas 'aprovechable' seria...
a) insertar botones con la barra de herramientas 'formularios' [NO 'cuadro de controles']
b) 'asignar' a cada boton [segun corresponda] 'su' macro [y algun texto 'descriptivo']

En una celda ... guardar datos como en un combo (si se llenara con los nombres de las hojas ...)
... y de ahi seleccionar ... para que no escriban con error y ... la macro me encuentre el nombre de la hoja.



=> si [´supongo bien´ y...] re
Respuesta Responder a este mensaje
#2 Héctor Miguel
25/07/2004 - 01:40 | Informe spam
hola, JLLR ! =>perdon... el anterior 'se me chispotio'<= :))

... libro con varia hojas, en la primera al activar una celda y dar
Ctrl A se ejecuta una macro que pone valores en la Hoja correspondiente y si es
Ctrl D se ejecuta una macro para borrarlo
... que se activen estas macro ... si se puede ... con botones
... nunca lo he usado y tampoco se como.



=> si ya tienes escritas las macros [me parece que] la manera mas 'aprovechable' seria...
a) insertar botones con la barra de herramientas 'formularios' [NO 'cuadro de controles']
b) 'asignar' a cada boton [segun corresponda] 'su' macro [y algun texto 'descriptivo']

En una celda ... guardar datos como en un combo (si se llenara con los nombres de las hojas ...)
... y de ahi seleccionar ... para que no escriban con error y ... la macro me encuentre el nombre de la hoja.



=> si ['supongo bien' y...] te refieres a celdas con reglas de validacion por lista...
y necesitas que la lista 'contenga' [exactamente] el nombre de las 'otras' hojas...
por si el usuario les cambia de nombre :((
una forma seria a traves de una funcion personalizada que 'obtenga' dichos nombres...
y los 'ponga' en las reglas de validacion de 'esa' celda.
te expongo un ejemplo en seguida...
tu 'evalua' si la [re]validacion debiera 'ocurrir' al seleccionar 'dicha' celda, o al 'activar' esa hoja, o... [???]

saludos,
hector.
en el modulo de codigo de 'la hoja' ==1.- la funcion...
Private Function HojasEnLibro() As String
Dim Hoja As Integer, Hojas As String
For Hoja = 1 To Worksheets.Count
If Worksheets(Hoja).Name <> Me.Name Then
If Hojas <> "" Then Hojas = Hojas & ","
Hojas = Hojas & Worksheets(Hoja).Name
End If
Next
HojasEnLibro = Hojas
End Function
2.- si la necesitas al seleccionar 'esa' celda [y suponiendo que es 'A1']
Private Sub Worksheet_SelectionChange(ByVal Target As Range): Exit Sub
If Target.Address <> "$A$1" Then Exit Sub
Target.Validation.Delete
Target.Validation.Add xlValidateList, , , HojasEnLibro
End Sub
2.- si la necesitas al 'activar' esa hoja [y suponiendo que es 'A1']
Private Sub Worksheet_Activate()
Me.Range("a1").Validation.Delete
Me.Range("a1").Validation.Add xlValidateList, , , HojasEnLibro
End Sub
3.- [???]
Respuesta Responder a este mensaje
#3 J.LL.R
26/07/2004 - 01:15 | Informe spam
Muchas Gracias Héctor Miguel por tus respuestas.
En una celda ... guardar datos como en un combo (si se




llenara con los nombres de las hojas ...)

Pero he probado lo que me dices y no me funciona me da
errores (Me),si usted fuera tan amable y me enviara a mi
correo un libro con 2 o 3 hojas y que funcione ,se lo
agradeceria.
Un saludo J.LL.R




hola, JLLR ! =>perdon... el anterior 'se me


chispotio'<= :))

... libro con varia hojas, en la primera al activar una




celda y dar
Ctrl A se ejecuta una macro que pone valores en la Hoja




correspondiente y si es
Ctrl D se ejecuta una macro para borrarlo
... que se activen estas macro ... si se puede ... con




botones
... nunca lo he usado y tampoco se como.



=> si ya tienes escritas las macros [me parece que] la


manera mas 'aprovechable' seria...
a) insertar botones con la barra de


herramientas 'formularios' [NO 'cuadro de controles']
b) 'asignar' a cada boton [segun corresponda] 'su'


macro [y algun texto 'descriptivo']

En una celda ... guardar datos como en un combo (si se




llenara con los nombres de las hojas ...)
... y de ahi seleccionar ... para que no escriban con




error y ... la macro me encuentre el nombre de la hoja.

=> si ['supongo bien' y...] te refieres a celdas con


reglas de validacion por lista...
y necesitas que la lista 'contenga' [exactamente] el


nombre de las 'otras' hojas...
por si el usuario les cambia de nombre :((
una forma seria a traves de una funcion


personalizada que 'obtenga' dichos nombres...
y los 'ponga' en las reglas de validacion de 'esa'


celda.
te expongo un ejemplo en seguida...
tu 'evalua' si la [re]validacion debiera 'ocurrir'


al seleccionar 'dicha' celda, o al 'activar' esa hoja,
o... [???]

saludos,
hector.
en el modulo de codigo de 'la hoja' ==>1.- la funcion...
Private Function HojasEnLibro() As String
Dim Hoja As Integer, Hojas As String
For Hoja = 1 To Worksheets.Count
If Worksheets(Hoja).Name <> Me.Name Then
If Hojas <> "" Then Hojas = Hojas & ","
Hojas = Hojas & Worksheets(Hoja).Name
End If
Next
HojasEnLibro = Hojas
End Function
2.- si la necesitas al seleccionar 'esa' celda [y


suponiendo que es 'A1']
Private Sub Worksheet_SelectionChange(ByVal Target As


Range): Exit Sub
If Target.Address <> "$A$1" Then Exit Sub
Target.Validation.Delete
Target.Validation.Add xlValidateList, , , HojasEnLibro
End Sub
2.- si la necesitas al 'activar' esa hoja [y suponiendo


que es 'A1']
Private Sub Worksheet_Activate()
Me.Range("a1").Validation.Delete
Me.Range("a1").Validation.Add xlValidateList, , ,


HojasEnLibro
End Sub
3.- [???]
.

Respuesta Responder a este mensaje
#4 Héctor Miguel
26/07/2004 - 02:29 | Informe spam
hola, J.LL.R !

... he probado ... y no me funciona me da errores (Me) [...]



probablemente copiaste los codigos a un modulo 'normal' [?]
necesitarias copiarlas en el modulo de codigo de la hoja donde quieras la validacion
[click-derecho en el nombre de la hoja -> ver codigo -> 'ahi'] ;)

copias la funcion y el evento que 'prefieras' para el 'llenado' del listado de la valiacion

¿comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#5 JLLR
28/07/2004 - 22:34 | Informe spam
Hola Héctor Miguel.
Muchas Gracias, ya trabaja,lo que pasa es que no hace
refrescamiento por ejemplo si cambio el nombre de una hoja
o agrego una hoja nueva no me aparece en la lista,para
lograrlo puse el código en el evento Change y ahí si se me
actualiza ,quisiera saber si se puede aplicar a un rango
de celdas he tratado pero no logro hacerlo.
En el libro que quiero usarlo,pongo la función y el
código y no hace nada de nada ,lo único que tiene distinto
es las 2 macros y la posición de la celda que ahora es la
B3, cambie el valor en el código ,no se porque será.
Atte.JLLR









hola, J.LL.R !

... he probado ... y no me funciona me da errores (Me)




[...]

probablemente copiaste los codigos a un modulo 'normal'


[?]
necesitarias copiarlas en el modulo de codigo de la hoja


donde quieras la validacion
[click-derecho en el nombre de la hoja -> ver codigo -
'ahi'] ;)

copias la funcion y el evento que 'prefieras' para


el 'llenado' del listado de la valiacion

¿comentas?
saludos,
hector.

.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida