Como saber si ya ingrese un nombre o no

Tengo un libro en excel con distintas hojas dependiendo del mes en el que estemos,

En donde voy cargando nombres de clientes ÚNICOS para que cobren sus honorarios. El tema es que tengo que controlar mes por mes si cargue o no cargue el cliente algún mes anterior y es bastante laborioso. Me gustaría saber si hay alguna forma de que en cuanto cargue el nombre del cliente me aparezca que ya esta cargado, no me deje ponerlo o me cambie de color la celda como aviso. Muchas gracias y espero respuestas.

La columna que quiero aplicar el filtro, macro o fórmula es en la columna Cliente

2 respuestas

Respuesta

Selecciona la columna, en formato condicional - resaltar reglas de celda - duplicar valores - aceptar.

En el momento que ingreses un nombre que ya este te lo va a colorear.

O puedes impedir que se ingrese un nombre que ya existe con validación de datos

Respuesta

H0la Franco:

Agrega este código en la sección de código del libro y tendría que funcionar para los datos en la columna B

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim hoja As Worksheet
    Dim fila As Long
    'Validar que se esté modificando columna B'
    If Target.Column = 2 And Target.Value <> "" Then
        'Recorrer todas las hojas'
        For Each hoja In ThisWorkbook.Sheets
            'Buscar el nombre completo en la columna'
            fila = fcnBuscaEnCol(hoja, "B", Target.Value)
            'Si se encuentra en la hoja, enviar un mensaje'
            If fila > 0 Then
                MsgBox "El cliente """ & Target.Value & """ ya está agregado en la fila " & _
                        fila & " de la hoja """ & hoja.Name & """"
                Exit Sub
            End If
        Next
    End If
End Sub
'Función para buscar en una columna por GP'
Function fcnBuscaEnCol(hojaBusq As Worksheet, _
                    strCol As String, _
                    strValor As String) As Long
    Dim resulta As Range
    Set resulta = hojaBusq.Range(strCol & ":" & strCol).Find(strValor, _
                                hojaBusq.Range(strCol & hojaBusq.Rows.Count).End(xlUp), _
                                LookIn:=xlValues, LookAt:=xlWhole)
    If (Not resulta Is Nothing) Then
        fcnBuscaEnCol = resulta.Row
    End If
End Function

[email protected]

Hola buenos días. No puedo crear un macro. Ya habilite el libro para macros pero no me deja. ¿Sabrás porque?

Anda al botón que dice Visual Basic en la barra de herramientas y en el editor de VBA seleccionas ThisWorkbook, como lo muestra la imagen. Luego pegas el código.

[email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas