WorkSheet_Change(ByVal Target As Range) Argumento no es opcional

Creé una macro con una lista desplegable para que según la selección se vaya a una hoja del libro de excel pero al seleccionar una opción me aparece un mensaje que dice "Argumento no es opcional"
Adjunto el código de mi macro

    If Not Intersect(Target, Range("C3")) Is Nothing Then
        Select Case Range("C3")
    Case "Benexafrina 5mg": Macro1
    Case "Benexafrina 10mg": Macro2
    Case "Benexafrina OD 5mg": Macro3
    Case "Benexafrina OD 10mg": Macro4
    Case "Serolux 50mg x 14": Macro5
    Case "Serolux 100mg x 14": Macro6
    Case "Serolux 50mg x 2MM": Macro7
    Case "Serolux 50mg x 7 MM": Macro8
    Case "Exitelev 500mg x 30": Macro9
    Case "Exitelev 500mg x 60": Macro10
    Case "Exitelev 1000mg x 30": Macro11
    Case "Exitelev 500mg x 2MM": Macro12
    Case "Mimetice 10mg x 14": Macro13
    Case "Mimetice 10mg x 30": Macro14
    Case "Mimetice 10mg x 14 OO": Macro15
    Case "Etalokare 10mg x 14": Macro16
    Case "Etalokare 10mg x 28": Macro17
    Case "Etalokare 10mg x 10 MM": Macro18
    Case "Cubraxis 10mg x 20": Macro19
    Case "Cubraxis M 4mg x 10": Macro20
    Case "Cubraxis M 4mg x 30": Macro21
    Case "Cubraxis M 5mg x 20": Macro22
    Case "Belazix 5mg x 10": Macro23
    Case "Belazix 5mgx10 DP": Macro24
    Case "Belazix 5mg x 20": Macro25
    Case "Belazix 5mgx20 DP": Macro26
    Case "Belazix 5mg x 30": Macro27
    Case "Belazix 5mgx30 DP": Macro28
    Case "Belazix 5mg x 10 OO": Macro29
    Case "Belazix 5mgx2 MM": Macro30
    Case "Macamen 80 x14": Macro31
    Case "Macamen 80 x28": Macro32
    Case "Demitrip 2.5mgx 2": Macro33
    Case "Vesanoid 10mg x 100": Macro34
    Case "Dilatrend 6.25,g x 14": Macro35
    Case "Dilatrend 25mg x 14": Macro36
    Case "Xenical 120mg x 21": Macro37
    Case "Xenical 120mg x 42": Macro38
    Case "Xenical 120mg x 84": Macro39
    Case "Bonviva 150MG 1cmp OO": Macro40
    Case "Aztrogecin 200mg susp": Macro41
    Case "Aztrogecin 500mg x 3": Macro42
    Case "Clavuser 875 x 10": Macro43
    Case "Clavuser 400mg Susp": Macro44
    Case "Clavuser 250mg Susp": Macro45
    Case "Eklira": Macro46
    Case "Eklira OO": Macro47
    Case "Duaklir": Macro48
    Case "Duaklir OO": Macro49
    Case "Summary OC": Macro50
    Case "Fcst rev 25.ene.2018": Macro51
    Case "Fcst rev 18.abr.2018": Macro52
    Case "Fcst 08.may.2018": Macro53
    Case "Fcst 11.sep.2018": Macro54
    Case "Fcst 19.feb.2019": Macro55
        End Select
    End If
    End Sub

En la celda C3 es donde aparece el número asignado por la lista desplegable.

2 Respuestas

Respuesta
1

En primer lugar estás evaluando el contenido de C3 que es un número y no el texto que te presenta el desplegable.

En segundo lugar no es un evento que puedas utilizar para un control de formulario, ya que el cambio en la celda no es manual... sino resultado de la fórmula del control.

Hacé clic derecho sobre tu control, opción Asignar Macro. Esto te llevará al Editor con un encabezado según el nombre de tu control. Allí agregá las instrucciones tal como las inicié en mi ejemplo:

Sub Listadesplegable1_Cambiar()     'dejar el nombre predeterminado o colocar un nombre a la macro
'x Elsamatilde
If [C3] <> "" Then
    Select Case Range("C3")
        Case 1: Macro1
        Case 2: Macro2
        'completar con el resto de las macros
    End Select
End If
End Sub

Si cambias el nombre de la macro por otro texto que el que se te inicia, luego debes volver al control y asignar nuevamente al nombre de macro que dejaste.

Te recuerdo que la consulta sigue abierta. No olvides valorar las respuestas (opciones: Excelente o buena) para darlas por cerradas.

Sdos!

Respuesta

Esta mal. No se si tenga algo que ver con el error (habría que ver que hay en esas Macro1, Macro2, etc etc)

Lo que esta mal es que en el Select Case estas evaluando el texto de C3 (que es un numero) contra strings como por ejemplo "Benexafrina 5mg"

Aunque no te diera error, no funcionaria ya que ningún Case es un numero

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas