Hola Dante
La cosa es que la macro tiene alerta si el nombre existe, pero aunque le de nombre nuevo al producto, y el mismo código que ya existe en la hoja, sobrescribe toda la linea del producto existente porque le doy el mismo código.
Averiguando concluyo que:
Si colocas nuevo nombre (inexistente en la hoja), pero el mismo código ya existente, te sobrescribe el existente y eso está mal así.
Debe verificar el nombre pero dejar que el código sea el mismo
Eje.: Ya existe Queso Amarillo en B con el código quesovario en A
Dejarme agregar nuevo producto (Queso de cabra) con el mismo código quesovario en A
Busco en el buscador Queso Amarillo selecciono la hoja, criterio a buscar y escribo en Texto a buscar "que" y me vá a mostrar todos los tipos de queso o otros productos que comience por que
En la plantilla (hoja) puede haber varios productos con el mismo código, no varios códigos con el mismo producto
Código que hace referencia a una rama de productos, alambre hay varios tipos, lo mismo clavos, cerraduras, cauchos, queso, alcaparras, aceitunas, etc. etc. y un grande etc.
Porque hay otros formularios, uno para agregar producto cuando algunos en las hojas están a punto de quedar en existencia 0 pero no nuevo en la hoja, si no productos que ya existen. El mismo formulario para egresos cuando retiro algún producto de alguna de las hojas.
LA MACRO CONOCIDA POR TI
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 B 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) 'aquí actúa otra macro
End With
End If
End If
Buscar.Enabled = False
End Sub
Quiero que valide el nombre si pero que me deje usar el mismo código que ya exista