Activar formulario al pinchar en un rango de celdas

Tengo en Excel un rango de celdas cuyos valores pueden cambiar de tres maneras: AA, OA, NA. De acuerdo al valor que se opte en dicha celda deben abrirse tres formularios distintos. Estuve probando sin éxito algunas lineas de código como para arrancar y que obviamente no esta completo.
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
Dim Rejilla As Range 
Set Rejilla.Range = "$D$8:$H$144" 
If Rejilla.Value = "" Then Selector.Show 
End Sub

2 Respuestas

Respuesta
1
Por que no le das los rangos fijos, supongo que por lo que estas haciendo y estoy entendiendo esas tres columnas son fijas, así que deberías contar hasta encontrar las columnas y luego al sistema que estas creando le dices que busque ahí y si no hay dato que abra la pantalla que quieres.
En realidad en cada una de las celdas del rango puede ir un triple valor AA, OA, NA. No son tres columnas. Es decir, en cualquiera de las celdas del rango D8:H144 puede aparecer -según corresponda- el valor AA, OA, NA. En ese caso, y dependiendo lo que uno opte, debe abrirse un formulario distinto para proceder con los requerimientos de cada formulario.
Gracias.
Si tienes algo de código podrías ponerlo aquí ya que no entiendo lo que necesitas.
Aquí va algo que hice, pero me tira error en Rejilla.Range quizá no sea la propiedad correcta.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 Dim Rejilla As Range
 Set Rejilla.Range = "$D$8:$H$144"
    If Rejilla.Value = "OA" Then
        Selector.Show
    Else
        Rejilla.Value = "NA"
        AdPoes.Show
    End If
End Sub
Gracias.
Sub selecciono05()
variable = 5
rango = ("B2" & ":E" & variable)
Range(rango).Select 'selecciona el rango B2:E hasta la fila indicada en la variable
End Sub
Este es un ejemplo si te sirve me avisas
Respuesta
1
Intento lo siguiente
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$B$2" Then
Select Case ActiveCell
Case Is = "Dato1"
Call form1.Show
Case Is = "Dato2"
Call form2.Show
Case Is = "Dato3"
Call form3.Show
End Select
End If
End Sub
Claro, entiendo la idea. Lo que pasa es que necesito que al picar cualquier celda del rango d8:H144 y que cambie su valor, aparezca el form correspondiente.
En tu código solo se activaría en $b$2.. De hecho, no se activo nada.
¿Qué sera?
Entonces cambia elif de la siguiente forma
If Target.Column = 2 Then
...
...
...
end if

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas