Lanzar macro dependiendo de dos checkbox

Expertos tengo una duda.. Tengo una macro que corre perfecto pero ahora necesito que dependa de el resultado de dos checkbox.. Es decir, se checkbox 1 es verdadero y checkbox 2 falso lanzar macro.. Si checkbox 1 es falso y 2 verdadero lanzar otra macro.. Si ambos son verdaderos arrojar un mensaje y si ambos son falsos otro mensaje.. Intente así

If checkbox1.value=true and (checkbox2.value=false) then

'aqui primera macro

Else if checkbox2.value=true and (checkbox1.value=false) 

'aqui la otra macro

Else if checkbox1.value=true and (checkbox2.value=true) 

'aqui mensaje

Else if checkbox1.false=true and (checkbox2.value=false) 

'aqui mensaje

End if

Pero al lanzar me sale el error de compilación declaración duplicada en el ámbito actual y la línea amarilla se encuentra al comienzo.. Me ayudan.?

1 Respuesta

Respuesta
1

Prueba así

Private Sub CommandButton1_Click()
If CheckBox1 And CheckBox2 = False Then macro1
If CheckBox1 = False And CheckBox2 Then macro2
If CheckBox1 And CheckBox2 Then MsgBox ("bye")
If CheckBox1 = False And CheckBox2 = False Then MsgBox ("hello")
End Sub

Me sale el mismo error.. cuando imprimo el botón lanza un userform con la siguiente macro.. lo que necesito es que dependiendo que checkbox este activado lance está o la misma macro pero en ves de la hoja "pp" sea la hoja "pp2".. la macro crea una imagen de un rango de celdas y lo pone en un control imagen.. necesito que dependiendo de que check este activo copie de una hoja o de otra. Si están en blanco que diga que debe señalar uno.. ya puse una sentencia que no deja que marque los dos así que no necesito que diga que los dos están señalados.. tal ves el problema este en la macro..

Private Sub UserForm_Activate()

Dim Imagen As Chart

Dim Result As Boolean

Archivo = ThisWorkbook.Path & "\" & "paso.jpeg" Sheets("PP").Select

With Range("B2:Z58")

.CopyPicture Appearance:=xlScreen,Format:=xlPicture

Set Imagen = .Parent.ChartObjects.Add(10, 10, .Width, .Height).Chart

End With

Imagen.Parent.Activate

Imagen.Paste

Imagen.ChartArea.Border.LineStyle = 0 Imagen.ChartArea.Width=Imagen.ChartArea.Width * 3

Imagen.ChartArea.Height=Imagen.ChartArea.Height * 3

On Error Resume Next 

Kill Archivo Result = Imagen.Export(Archivo) Imagen.Parent.Delete

Set Imagen = Nothing

If Result Then

Image1.Picture = LoadPicture(Archivo)

End If

End Sub

el error significa que tienes una variable repetida con diferente funcion por ejemplo: Dim A as string, dim A as variable, esto confunde al excel, en tu caso veo que la variable Result la tiene como Boolean es decir solo acepta dos valores falso o verdadero y mas delante la pones Result = Imagen.Export(Archivo), checa cambiando esta variable.

El tema es que la macro por si sola funciona de maravilla.. copia las celdas las hace una imagen y me las presenta en el control imagen.. mi problema surge ahora que quiero que dependa le los check.. me ayudas a adaptarla.?

Sin ver tu archivo no hay mucho como pueda ayudarte, súbelo a un servicio de nube y pegas el enlace aquí.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas