Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Como cargar dato y saber si esta duplicado


.

Hoy muestro en este post como cargar un dato y que automáticamente se verifique si ya fue cargado en la base de datos para evitar cargar datos duplicados, es decir muestro como cargar un dato en Excel y saber si está duplicado.

Recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.

  
Descargando el ejemplo de macro que permite verificar si un dato ya está cargado en la base de datos o duplicado, es decir si el dato no está duplicado; se observará que hay dos celdas en color blanco, que es donde se deben cargar los datos y el resto de celdas que se rellenan automáticamente en base a lo seleccionado en el las celdas B1  y B2.

La macro para determinar si un dato está duplicado controla la celda B1 y B2 en forma conjunta, es decir puede estar duplicado el N° de Recibo, pero el cliente es distinto, no puede haber un mismo N° de recibo y el mismo cliente, esa duplicidad la macro no la permite.

Al ingresar el número de recibo, seguidamente se debe ingresar el nombre del cliente, después de actualizar esa celda automáticamente se buscan los datos del cliente, al presionar el botón GUARDAR, se procede a guardar el registro, donde previamente para guardarlo controla que no haya en la base de datos un mismo número de Recibo y Cliente, en caso positivo el dato está duplicado y no lo guarda, en caso negativo guarda el registro en la hoja Base de Datos.

Desde el final descarga el archivo para que puedas observar su funcionamiento, el código es GRATUITO de libre acceso.

El vídeo que sigue muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo formulario que crea un listado de todas las hojas para poder luego seleccionarlasbuscar en listbox mientras escribes en textboxordenar hojas libro excel por su nombreconectar Excel con Access y muchos ejemplos más.


if (payload.eventType == ‘subscribe’) {
// Add code to handle subscribe event.
} else if (payload.eventType == ‘unsubscribe’) {
// Add code to handle unsubscribe event.
}
if (window.console) { // for debugging only
window.console.log(‘YT event: ‘, payload);
}
}

 

Código que se inserta en un módulo
Sub borrar()
Range(«B1:B6»).ClearContents
End Sub

Sub Grabar()
Dim uf, ucw, r1, r2 As String
Set a = Sheets(«Hoja1»)
Set b = Sheets(«BaseDatos»)
If a.Range(«B1») = Empty Or a.Range(«B2») = Empty Or a.Range(«B6») = Empty Then
MsgBox («Es obligatorio llenar celdas B1 a B6»), vbCritical, «AVISO»
Exit Sub
End If
uf = b.Range(«A» & Rows.Count).End(xlUp).Row + 1
b.Cells(uf, «A») = a.Range(«B1»)
b.Cells(uf, «B») = a.Range(«B2»)
b.Cells(uf, «C») = a.Range(«B3»)
b.Cells(uf, «D») = a.Range(«B4»)
b.Cells(uf, «E») = a.Range(«B5»)
b.Cells(uf, «F») = a.Range(«B6»)
borrar
MsgBox («Los datos se guardaron con éxito»), vbExclamation, «AVISO»
End Sub

Código que se inserta en un WorkSheet Hoja1

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Dim uf, pf, busco, dato, codigo
If Target.Column = 2 And Target.Row = 2 Then

Set a = Sheets(«Hoja1»)
Set b = Sheets(«BaseDatos»)
Set c = Sheets(«Clientes»)

pf = 2
uf = b.Range(«A» & Rows.Count).End(xlUp).Row
ufc = c.Range(«A» & Rows.Count).End(xlUp).Row
r = «A2:A» & ufc
Do
busco = a.Range(«B1») & a.Range(«B2»)
dato = b.Cells(pf, «A») & b.Cells(pf, «B»)
If busco = dato Then
MsgBox («Dato duplicado»), vbCritical, «AVISO»
a.Range(«B3:B6»).ClearContents
Exit Sub
Else
busco = a.Range(«B2»)
Set codigo = c.Range(r).Find(busco, LookIn:=xlValues, LookAt:=xlWhole)
If Not codigo Is Nothing Then
a.Range(«B3») = c.Cells(codigo.Row, «B»)
a.Range(«B4») = c.Cells(codigo.Row, «C»)
a.Range(«B5») = c.Cells(codigo.Row, «D»)
End If
End If
pf = pf + 1
Loop While pf <= uf
End If
End Sub

Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.


.

If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.

Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends