Editar macro para integrar doble Aviso de alerta

Tengo esta macro

Private Sub cbtNueClien_Click()
    On Error Resume Next
    Dim fila As Integer
    Set ws = ActiveSheet
    If cboHojas.Value = "" Then
        MsgBox "NO HA SELECCIONADO HOJA"
        Exit Sub
    Else
'Viene de la Function valida(wtext As MSForms.Control, num)
    If MINCaracter(txtCod, "Cod/Producto", 10) = False Then Exit Sub ''AQUI 10 DIGITOS MINIMO
''''''''''''''
    If Application.CountIf(ActiveSheet.Range("B2:B50000"), txtProd.Value) Then 'Busca en la columna A si existe el contacto
Rem Si existe la rutina llega solo al If mensage. si no existe, brinca después de Else para insertar los datos.
        Mensage = MsgBox("El producto " & txtProd.Text & " ya existe." & vbCrLf & vbCrLf & _
                "Puede escribir nuevo nombre y seguir, o en otro proceso editar datos", vbInformation + vbOKOnly, "CONTACTO EXISTENTE")
        txtProd.Text = "" 'Si te dá mensage, Limpia el TextBox
        If Mensage = vbOK Then Exit Sub 'Del mensage presionas OK y hasta el Exit Sub llega la rutina
    Else
''''
'Inserta datos de nuevo cliente
    With ws
       fila = .Range("A2:A25000").Find(txtCod, lookat:=xlWhole).Row
       If Err.Number = 91 Then
          fila = .Range("b" & .Rows.Count).End(xlUp)(2).Row
          Call ingresar_datos(fila)
          Exit Sub
       End If
       Call ingresar_datos(fila)
    End With
    End If
    End If
    Buscar.Enabled = False
End Sub

La anterior tiene para alertar sobre la B pero quiero en ves de eso, meterle estas dos, Estos son los avisos (alertas) que quisiera cambiar por el que tiene. Pido a algun conocedor en la materia si puede editarme la macro POR FAVOR.

VALIDAR CODIGO Y PRODUCTO
MsgBox = "El código “ & txtCod.Text &  “ y ” & txtProd.Text & “ existen.” & vbCrLf
& “Use Entrada/Salida para agregar más cantidad de este producto YA existente" 
vbOk Then: Call Limpar(Me): Exit Sub 'Sale de la macro NO del formulario
‘Alerta de arriba no debe aparecer si txtCod o txtProd NO existen. NO aparecer para que EL INGRESO DEL nuevo código y producto, se dé. Entra la segunda alerta
Entre estas 2, no sé qué pueda ir, si Else o If Else
‘Pasa a la segunda alerta
Validar código y producto
‘Si 1 de los 2 existe
MsgBox("El código " & txtCod.Text & " existe, " & txtProd.Text & "NO."  vbCrLf &   "Ingrese como NUEVO producto o desista" & vbCrLf & " ¿Quiere desistir?", vbInformation + vbYesNo, "ALERTA")  vbYes Then: Call Limpar(Me): Exit Sub 

Ya intenté no consigo lograr mi objetivo desde hace dias, no me sale, pero ¿donde? ¿en que parte de la macro?, ¿como? Escapa de mis miseros conocimientos aunque he luchado por eso pero no me funciona de ninguna manera.

Si es vbNo Then ‘sigue la macro y el nuevo producto entra

Si responde vbYes ‘ si responde Si, sale de la macro pero no del formulario

Si es vbNo Then

Agrega los contenidos en las cajas de texto a la hoja, para al momento actualizar el ListBox, ordenar alfabéticamente por la B al ingresar producto como está la presente macro, SIN cerrar formulario.

La presente macro al ingresar nuevo con el mismo código otro nombre, otra ubicación, etc. Me suscribe todo menos el código,, y claro no debe hacerlo

Alguna pregunta o descripción mala sin entender, estaré pendiente a algún consejo

Tiene que dejar entrar el mismo código y otro nombre etc. Pero no suscribir el existente en nada

Claro que el mismo código se verá en varias líneas porque co nel mismo código existen varios tipos de determinado producto.

1 respuesta

Respuesta
1

[hola joaom

Podemos crear o editar la macro, pero pon imágenes de tus datos y a partir ahí explica en que caso debe mostrar en mensaje, porque interpretar la macro línea por línea hace el trabajo más extenso.

Si no ves inconveniente, dejame tu mail y te envío la plantilla. Gracias

Mi email: [email protected]

Macro

Private Sub cbtNueClien_Click()
    On Error Resume Next
    Dim fila As Integer
    Set ws = ActiveSheet
    If cboHojas.Value = "" Then
        MsgBox "NO HA SELECCIONADO HOJA"
        Exit Sub
    End If
'Viene de la Function valida(wtext As MSForms.Control, num)
    If MINCaracter(txtCod, "Cod/Producto", 10) = False Then Exit Sub ''AQUI 10 DIGITOS MINIMO
''''''''''''''
    x1 = False
    x2 = False
    Set r = ws.Columns("A")
    Set b = r.Find(UCase(txtCod), Lookat:=xlWhole)
    If Not b Is Nothing Then
        x1 = True
        If UCase(ws.Cells(b.Row, 2)) = UCase(txtProd) Then
        x2 = True
        End If
    End If
    If x1 = True And x2 = True Then
        MsgBox ("El código " & txtCod.Text & "y" & txtProd.Text & " existen." & vbCrLf & _
        "Use Entrada/Salida para agregar más cantidad de este producto YA existente")
        Exit Sub
    Else
        If MsgBox("El código " & txtCod.Text & "existe, " & txtProd.Text & "NO." & vbCrLf & _
            "Ingrese como NUEVO producto o desista" & vbCrLf & _
            "¿Quiere desistir?", vbInformation + vbYesNo, "ALERTA") = vbNo Then ' ok para registrar nuevo producto
            'Inserta datos de nuevo cliente
            fila = ws.Range("b" & ws.Rows.Count).End(xlUp)(2).Row + 1
            Call ingresar_datos(fila)
            Buscar.Enabled = False
        Else
            Call Limpar(Me)
        End If
    End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas