¿Cómo puedo hacer validación de datos al ejecutar una macros de guardado?

Tengo una macro en una hoja llamada NUEVO CLIENTE que guarda infroamcion en otra hoja llamada CLIENTES REGISTRADOS.

Application.ScreenUpdating = False
Sheets("CLIENTES REGISTRADOS ").Unprotect password:="28021990"

Application.ScreenUpdating = False

If Not IsError(Range("D7")) And Not IsError(Range("D9")) And _
Not IsError(Range("D10")) And Not IsError(Range("D12")) Then
If Range("D7") <> "" And Range("D9") <> "" And Range("D10") <> "" And Range("D12") <> "" Then

If estado < 2 Then
MsgBox "NO HA SALIDO EL SERVICIO", vbOKOnly + vbInformation, "NO SE PUEDE AGREGAR CLIENTE"
Exit Sub
End If
'dejo la variable en 0 porque ya se cumplieron todos los procesos
estado = 0
Range("D4").Select
Selection.Copy
Sheets("CLIENTES REGISTRADOS ").Select
Range("D4002").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Sheets("NUEVO CLIENTE").Select
Range("D6").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("CLIENTES REGISTRADOS ").Select
Range("B4002").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Sheets("NUEVO CLIENTE").Select
Range("D7:D12").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("CLIENTES REGISTRADOS ").Select
Range("E4002").Select
Range("E4002").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("Tabla3").Select
Range("B4002").Activate
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("CLIENTES REGISTRADOS ").ListObjects("Tabla3").Sort. _
SortFields.Clear
ActiveWorkbook.Worksheets("CLIENTES REGISTRADOS ").ListObjects("Tabla3").Sort. _
SortFields.Add Key:=Range("Tabla3[FECHA DE REGISTRO]"), SortOn:= _
xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("CLIENTES REGISTRADOS ").ListObjects("Tabla3"). _
Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
Application.ScreenUpdating = False
End With
Range("B2").Select
Sheets("NUEVO CLIENTE").Select
Range("D4:D5").Select
Selection.ClearContents
Range("D7").Select
Selection.ClearContents
Range("D9:D12").Select
Selection.ClearContents
Range("D4").Select
Application.ScreenUpdating = False
Else
MsgBox "Faltan DATOS del cliente", vbCritical, "ERROR AL REGISTRAR CLIENTE"
End If
Else
'
MsgBox "La celdas tienen error"
'
End If

Application.ScreenUpdating = False
Sheets("CLIENTES REGISTRADOS ").Protect password:="28021990"
Application.ScreenUpdating = False
End Sub

En la celda D6 de la hoja NUEVO CLIENTE se agrega solo números osea simulado un teléfono quisiera saber como No permitir que si ese numero que esta en la celda D6 ya esta registrado no volver a registrar... Lo hice con una fórmula en validación de datos pero no me funciona cuando ejecuta la macro solo me sale error y me permite guardar..

1 respuesta

Respuesta
1

Agrega esta parte a tu macro

Set h1 = Sheets("NUEVO CLIENTE")
Set h2 = Sheets("CLIENTES REGISTRADOS ")
Set b = h2.Columns("B").Find(h1.[D6])
If Not b Is Nothing Then
    MsgBox "El cliente ya está registrado", vbExclamation, "NUEVOS CLIENTES"
    Exit Sub
End If

Agrega el código después de esto:

If estado < 2 Then
MsgBox "NO HA SALIDO EL SERVICIO", vbOKOnly + vbInformation, "NO SE PUEDE AGREGAR CLIENTE"
Exit Sub
End If

Saludos.Dante Amor

Recuerda valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas