Automatización con vba

Hola buenas tardes, me gustaría automatizar el registro de una base de datos con código VBA. Recibo en una hoja excel datos relacionados con un cliente (teléfono, dirección, ..) repartidos por toda la hoja y me gustaría que al hacer clic en un botón se registrararn en la hoja 2 solo si no esta repetida. El botón tendría que verificar por ejemplo que el teléfono no existe y si es así rellenar todos los datos en una fila de la hoja 2. He conseguido con un código que se rellene automáticamente pero no se como hacer para que primero verifique si ya existía.
Muchas gracias

1 Respuesta

Respuesta
1
Checa este Código y lo acomodas a tus necesidades:
Sub VerificaExistente(ByVal DatoBuscar as String)
Set Buscar = Sheets("Tu hoja2").Cells.Find(DatoBuscar)
If not Buscar is Nothing then
         Msgbox "Ya existe el Registro " & DatoBuscar, vbInformation
Else
'Aqui pon tu codigo para rellena los datos
End Sub
En la Hoja 1 tengo el formulario, en la Hoja 2 traspaso todos los datos de la Hoja 1 para tenerlos alineados en una fila y en la Hoja 3 es donde estaría la base de datos, es decir donde me llevaría todas las filas de la Hoja 2. Por tanto al pegar un nuevo formulario en la Hoja 1 si ese dato ya estaba en la Hoja 3 que no se copie.No tengo muy claro en que Hoja poner el código y como quedaría este. Según lo que me dijiste sería algo así:
Sub VerificaExistente(ByVal DatoBuscar As String)
Set Buscar = Sheets("Hoja 2").Cells.Find("C1") *Valor de una celda que se encuentra en la Hoja 2*
If Not Buscar Is Nothing Then
         MsgBox "Ya existe el Registro " & "C1", vbInformation
Else
Sheets("Hoja 2").Range("A2").CurrentRegion.Copy
        Sheets("Hoja 3").Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues
  Sheets("Hoja 2").Range("A4").ClearContents
   MsgBox "REGISTRADO", vbOKOnly, "Jmoya"
 ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
¿End If? *No tengo claro si está bien este end if pero me lo pedia el programa*
End Sub
Hago todo esto pero no funciona y no entiendo porque. Disculpa las molestias y mi escaso nivel de VBA, estaría muy agradecido en que me echaras una mano. Creo que aquí no se pueden adjuntar archivs, si quieres te puedo pasar una explicación por correo electrónico.
Ok mandame tu archivo a [email protected] y un Resumen breve de lo que necesitas hacer, es que a veces me mandan archivos después de varios días y ya no recuerdo que era lo que se tenia que hacer.
Ya re envíe el archivo modificado de regreso, si ya todo esta bien.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas