macro que abre hoja y activa checkbox

Solo consultas sobre macros y código VBA Excel.

Reglas del Foro
1. Antes de hacer tu pregunta intenta con el buscador de este foro (muchas preguntas ya fueron respondidas antes!)
2. Si haces una nueva pregunta, es muy recomendable que adjuntes el ejemplo Excel para poder comprenderla mejor!
3. Realiza tu pregunta de forma clara, explicando bien cada paso de lo que haces y tendrás más probabilidad de respuesta!
Compartir en:
     

macro que abre hoja y activa checkbox

Notapor pipo11 » 10 Abr 2006 14:33

como puedo crear un macro que a la vez que me vaya a una hoja me active un checkbox que existe en esa hoja? utilizé este código pero me dice que falta un objeto, muchas gracias
Código: Seleccionar todo
Sub Irahoja1()
Dim pepe As Boolean
pepe = checkbox1.Value
Sheets("hoja1").Select
Range("A1").Select
pepe = True


End Sub

* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
pipo11
Miembro Frecuente
Miembro Frecuente
 
Registrado: 26 Ene 2006 06:38

Re: macro que abre hoja y activa checkbox

Notapor ioyama » 11 Abr 2006 02:39

Hola pipo11

Prueba con

Sub Irahoja1()
Sheets("hoja1").Select
ActiveSheet.Shapes("").Select
Selection.Value = xlOn
Range("A1").Select
End Sub

suponiendo que el Check Box es el 1.

Un saludo desde Vitoria
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
ioyama
Miembro Frecuente
Miembro Frecuente
 
Registrado: 28 Ene 2005 09:12
Ubicación: Vitoria

Notapor pipo11 » 11 Abr 2006 04:41

muchas gracias pero me da error me dice que el parametro no es correcto, que significa:
ActiveSheet.Shapes("").Select
Selection.Value = xlOn
??, el checkbox es el 1 y la hoja en la que estoy es hoja10 y quiero ir a hoja1 (ahí­ no está el problema).
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
pipo11
Miembro Frecuente
Miembro Frecuente
 
Registrado: 26 Ene 2006 06:38

Re: macro que abre hoja y activa checkbox

Notapor ioyama » 11 Abr 2006 05:05

Perdona pipo11

En vez de copiar y pegar he dado cortar y pegar, deberí­a poner

ActiveSheet.Shapes("Check Box 1").Select

con esto deberí­a funcionarte.

Lo siento nuevamente.

Un saludo desde Vitoria
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
ioyama
Miembro Frecuente
Miembro Frecuente
 
Registrado: 28 Ene 2005 09:12
Ubicación: Vitoria

Notapor pipo11 » 11 Abr 2006 06:03

me da error me dice que el método no admite esta propiedad u objeto, no se porque no funciona, porque la macro que me lleva a la hoja1 funciona lo que no va es la activación del checkbox1 (casilla de verificación), muchas gracais
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
pipo11
Miembro Frecuente
Miembro Frecuente
 
Registrado: 26 Ene 2006 06:38

Re: macro que abre hoja y activa checkbox

Notapor ioyama » 11 Abr 2006 06:23

Hola pipo11

Te adjunto un fichero con lo que pides, podrí­a ser que no te esté funcionando porque el checkbox que quieres activar no sea el 1, sino otro, con lo que deberí­as modificarlo en tu macro.

En última instancia cuelga tu fichero.

Un saludo desde Vitoria
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
ioyama
Miembro Frecuente
Miembro Frecuente
 
Registrado: 28 Ene 2005 09:12
Ubicación: Vitoria

Notapor pipo11 » 11 Abr 2006 08:00

esos es lo que necesito, lo que sucede es que el checkbox que utlizé no lo saqué del formulario sino del cuadro de controles, y el código es algo distinto, estoy utiliizando este pero me da error:
Dim pepe As Boolean

Sub Irahoja1()
pepe = checkbox1.Value
Sheets("hoja1").Select
pepe = True
Range("A1").Select
End Sub
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
pipo11
Miembro Frecuente
Miembro Frecuente
 
Registrado: 26 Ene 2006 06:38

Notapor KL » 11 Abr 2006 08:44

Hola pipo11,

Vamos primero con tu codigo:
pipo11";p="24067 escribió:...el checkbox... del cuadro de controles...
... el código... me da error...

Dim pepe As Boolean

Sub Irahoja1()
pepe = checkbox1.Value
Sheets("hoja1").Select
pepe = True
Range("A1").Select
End Sub


Problemas por orden de gravedad:

Problema 1: Usas una referencia al objeto no calificada (sin indicar la hoja). Aqui debe ocurrir una de las dos cosas siguientes:

a) si el codigo se encuentra en el modulo de la hoja desde la cual se va a la hoja1, entonces Excel interpreta que el control CheckBox1 se encuentra en la hoja en cuyo modulo esta el codigo (es como si usaras Me.CheckBox). Si no hay ningun CheckBox1 en la hoja de partida, te dara el error Object Required (o lo mismo en castellano)

b) si el codigo se encuentra en un modulo estandar (p.ej. Modulo1), entonces Excel interpreta que el control CheckBox1 se encuentra en la hoja activa (es como si usaras ActiveSheet.CheckBox). Si no hay ningun CheckBox1 en la hoja activa (o sea la hoja de partida), te dara el error Object Required (o lo mismo en castellano)

Problema 2: El que le asignes a la variable pepe el valor del CheckBox1

pepe = checkbox1.Value

no quiere decir que le hayas asignado el objeto CheckBox1 a dicha variable (si ademas es del tipo Boolean y no Objeto o Shape o OLEObject , etc.). Si tuvieras que asignar el objeto deberias hacerlo parecido a lo siguiente:

Dim pepe as Shape
Set pepe = CheckBox1

Pero en este caso no es necesario (v. el codigo al final del mensaje). Total que la siguiente linea de tu procedimiento:

pepe = True

solo asigna el valor a la variable del tipo Boolean llamada pepe, pero no afecta al propio control CheckBox1 para nada.

Problema 3: Al declarar la variable pepe a nivel de modulo, esta se conserva entre las ejecucione de procedimientos y ocupa memoria [posiblemente] sin necesidad alguna.

Problema 4: En un codigo tan corto y sin uso repetido de la variable pepe, su uso es redundante ya que no hace sino anadir: dos lineas al codigo (sin ahorrar u optimizar nada) y ocupar memoria.

Solucion: Prueba el siguiente codigo:

Código: Seleccionar todo
Sub Irahoja1()
    With Sheets("Hoja1")
        .Select
        .CheckBox1 = True
    End With
End Sub
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
KL
Miembro Frecuente
Miembro Frecuente
 
Registrado: 18 Mar 2006 13:57
Ubicación: Madrid

Notapor pipo11 » 11 Abr 2006 08:57

Perfecto voy a tener que seguir viendo manuales de vba para no cometer estas patadas, gracias
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
pipo11
Miembro Frecuente
Miembro Frecuente
 
Registrado: 26 Ene 2006 06:38

Re: macro que abre hoja y activa checkbox

Notapor ST » 11 Abr 2006 11:48

pipo11.

y si lo haces asi de sencillo:?

Private Sub Worksheet_Activate()
CheckBox1.Value = True
[a1].select
End Sub

esto lo debes colocar en la "sheet" donde tienes el checkbox(boton derecho\vercodigo en la pestaña donde esta el nombre de la hoja)

salu2
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
ST
Miembro Frecuente
Miembro Frecuente
 
Registrado: 06 Jun 2005 17:56
Ubicación: Acapulco


Compartir en:
     

  • Anuncio
Manual Excel avanzado

Volver a Macros

¿Quién está conectado?

Usuarios navegando por este Foro: alvaro77, Bing [Bot], Google [Bot] y 15 invitados