Condicionar ingresos de información según valores de combobox

Como puedo hacer para que según los valores elegidos en los combobox se ingrese la información de distinta forma:

Mi formulario es el siguiente:

En el recuadro simcards si los combobox "entrantes" se encuentran vacíos, o en "NO APLICA" y los combobox "salientes" tienen seleccionado algún valor distinto a vació o "NO APLICA" entonces el ingreso a la hoja de registro se debe hacer con un signo - (negativo) antecediendo al valor del combobox saliente.

Caso contrario, si los combobox "entrantes" tienen seleccionado un valor distinto a vacío o "NO APLICA", y los combobox "salientes" se encuentran vacíos o en "NO APLICA" entonces el ingreso a la hoja de registro se debe hacer con un signo + (positivo) antecediendo al valor combobox "entrante".

El código en este momento esta así:

Public Sub btn_guardar_Click()
    Set h = Sheets("REGISTRO")
    Set h2 = Sheets("DATOS")
    u = 2
    Do While h.Cells(u, "A") <> "" 'Aqui en vez de agregar el nuevo ingreso abajo, me gustaria que se ingresara arriba agregando una nueva linea
        u = u + 1
    Loop
    ab1 = combo_Entrantes.List(combo_Entrantes.ListIndex, 1)
    ab2 = combo_Salientes.List(combo_Salientes.ListIndex, 1)
    le1 = " " & combo_sim1Entrante.List(combo_sim1Entrante.ListIndex, 1)
    le2 = " " & combo_sim2Entrante.List(combo_sim2Entrante.ListIndex, 1)
    '
    If ab1 <> "" Then ab1 = "x" & ab1
    h.Cells(u, "A") = txtbox_pos
    h.Cells(u, "B") = ab2 & ab1 & le1 & le2
    h.Cells(u, "C") = Date
    h.Cells(u, "D") = "IM" & form_IMS.txtbox_IM.Value

2 respuestas

Respuesta
1

Podrías poner un ejemplo para cada caso.

Ejemplos para esto:

"En el recuadro simcards si los combobox "entrantes" se encuentran vacíos, o en "NO APLICA" y los combobox "salientes" tienen seleccionado algún valor distinto a vació o "NO APLICA""

Ejemplos para esto:

"Caso contrario, si los combobox "entrantes" tienen seleccionado un valor distinto a vacío o "NO APLICA", y los combobox "salientes" se encuentran vacíos o en "NO APLICA" "

Ejemplo agregar simcard

Si ingreso en el formulario la siguiente información:

La información que debiese ir al campo "cambio realizado" en la hoja "REGISTRO" al presionar el botón ingresar debería verse de la siguiente manera:

OxK cxe +m

Ejemplo retirar simcard

Si ingreso en el formulario la siguiente información:

La información que debiese ir al campo "cambio realizado" en la hoja "REGISTRO" al presionar el botón ingresar debería verse de la siguiente manera:

W -c

Ejemplo cambiar ambas simcards

Si ingreso en el formulario la siguiente información:

La información que debiese ir al campo "cambio realizado" en la hoja "REGISTRO" al presionar el botón ingresar debería verse de la siguiente manera:

CxO exe mxm

Te anexo el código para todas las combinaciones:

Public Sub btn_guardar_Click()
'Por.Dante Amor
    Set h = Sheets("REGISTRO")
    Set h2 = Sheets("DATOS")
    u = 2
    Do While h.Cells(u, "B") <> ""
        u = u + 1
    Loop
    ab1 = combo_Entrantes.List(combo_Entrantes.ListIndex, 1)
    ab2 = combo_Salientes.List(combo_Salientes.ListIndex, 1)
    If ab1 <> "" Then ab1 = "x" & ab1
    ab12 = ab2 & ab1
    '
    Select Case combo_sim1Saliente.List(combo_sim1Saliente.ListIndex, 1)
        Case "": sa1 = ""
        Case Else: sa1 = combo_sim1Saliente.List(combo_sim1Saliente.ListIndex, 1)
    End Select
    '
    Select Case combo_sim2Saliente.List(combo_sim2Saliente.ListIndex, 1)
        Case "": sa2 = ""
        Case Else: sa2 = combo_sim2Saliente.List(combo_sim2Saliente.ListIndex, 1)
    End Select
    '
    Select Case combo_sim1Entrante.List(combo_sim1Entrante.ListIndex, 1)
        Case "": se1 = ""
        Case Else: se1 = combo_sim1Entrante.List(combo_sim1Entrante.ListIndex, 1)
    End Select
    '
    Select Case combo_sim2Entrante.List(combo_sim2Entrante.ListIndex, 1)
        Case "": se2 = ""
        Case Else: se2 = combo_sim2Entrante.List(combo_sim2Entrante.ListIndex, 1)
    End Select
    '
    'Para 0 salientes
    If sa1 = "" And sa2 = "" And se1 = "" And se2 = "" Then
        cad = ab12
    End If
    If sa1 = "" And sa2 = "" And se1 <> "" And se2 = "" Then
        cad = ab12 & " +" & se1
    End If
    If sa1 = "" And sa2 = "" And se1 = "" And se2 <> "" Then
        cad = ab12 & " +" & se2
    End If
    If sa1 = "" And sa2 = "" And se1 <> "" And se2 <> "" Then
        cad = ab12 & " +" & se1 & " +" & se2
    End If
    '
    'Para un saliente
    If sa1 <> "" And sa2 = "" And se1 = "" And se2 = "" Then
        cad = ab12 & " -" & sa1
    End If
    If sa1 = "" And sa2 <> "" And se1 = "" And se2 = "" Then
        cad = ab12 & " -" & sa2
    End If
    If sa1 <> "" And sa2 = "" And se1 <> "" And se2 = "" Then
        cad = ab12 & " " & sa1 & "x" & se1
    End If
    If sa1 <> "" And sa2 = "" And se1 = "" And se2 <> "" Then
        cad = ab12 & " " & sa1 & "x" & se2
    End If
    If sa1 <> "" And sa2 = "" And se1 <> "" And se2 <> "" Then
        cad = ab12 & " " & sa1 & "x" & se1 & " +" & se2
    End If
    If sa1 = "" And sa2 <> "" And se1 <> "" And se2 = "" Then
        cad = ab12 & " " & sa2 & "x" & se1
    End If
    If sa1 = "" And sa2 <> "" And se1 = "" And se2 <> "" Then
        cad = ab12 & " " & sa2 & "x" & se2
    End If
    If sa1 = "" And sa2 <> "" And se1 <> "" And se2 <> "" Then
        cad = ab12 & " " & sa2 & "x" & se2 & " +" & se1
    End If
    '
    'Para 2 salientes
    If sa1 <> "" And sa2 <> "" And se1 = "" And se2 = "" Then
        cad = ab12 & " -" & sa1 & " -" & sa2
    End If
    If sa1 <> "" And sa2 <> "" And se1 <> "" And se2 = "" Then
        cad = ab12 & " " & sa1 & "x" & se1 & " -" & sa2
    End If
    If sa1 <> "" And sa2 <> "" And se1 = "" And se2 <> "" Then
        cad = ab12 & " " & sa2 & "x" & se2 & " -" & sa1
    End If
    If sa1 <> "" And sa2 <> "" And se1 <> "" And se2 <> "" Then
        cad = ab12 & " " & sa1 & "x" & se1 & " " & sa2 & "x" & se2
    End If
    '
    h.Cells(u, "A") = txtbox_pos
    h.Cells(u, "B") = cad
    h.Cells(u, "C") = Date
    h.Cells(u, "D") = Time
    '
    'mandar_Correo
    'campos_predeterminados
    'txtbox_pos.SetFocus
End Sub
Respuesta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas