Como le agrego un validador a mi macro que me indique que los datos ya fueron grabados?

Necesito una función que me indique que los datos ya fueron grabados a la hoja2 con mi macro, de esta manera no duplicar la información.

Respuesta
1

Entiendo que la validación es a partir de una Textbox de un formulario.

Set b = Sheets("Hoja2").Columns("A").Find(Textbox1, lookat:=xlWhole)
    If Not b Is Nothing Then
        MsgBox "Los datos ya fueron grabados"
        Exit Sub
    End If

Cuando ingresas datos al textbox1 validará en la columna "A", si existe el dato te arroja el mensaje.

Me comentas y valoras la repuesta para finalizar saludos!

Hola, gracias por la respuesta, entiendo que la validación es para formulario, mi macro no se ejecuta en un formulario es directamente en la hoja donde tengo alojados los datos de una serie de pagos que los almaceno en la hoja 2 llamada BBDD ( base de datos), lo que necesito es que al darle clik nuevamente al botón grabar pagos me salga un mensaje que me indique que ya están grabados y me de la opción de seguir o no ejecutar nuevamente.

Gracias nuevamente!!

Envíame tu archivo [email protected]  para adecuar lo que necesitas saludos!

Hola, te envié el archivo, Gracias !!

Set h1 = Sheets("Pagos")
Set h2 = Sheets("BBDD")
    j = h2.Range("A" & Rows.Count).End(xlUp).Row + 1
    For i = 11 To 15
        If h1.Cells(i, "A") > 0 Then
            h2.Cells(j, "A") = h1.Cells(i, "A")
            h2.Cells(j, "B") = h1.Cells(i, "B")
            h2.Cells(j, "C") = h1.Cells(i, "C")
            h2.Cells(j, "D") = h1.Cells(i, "D")
            h2.Cells(j, "E") = h1.Cells(i, "E")
            h2.Cells(j, "F") = h1.Cells(i, "F")
            h2.Cells(j, "G") = h1.Cells(i, "G")
            h2.Cells(j, "H") = h1.Cells(i, "H")
            h2.Cells(j, "I") = h1.Cells(i, "I")
            h2.Cells(j, "J") = h1.Cells(i, "J")
            h2.Cells(j, "K") = h1.Cells(i, "K")
            h2.Cells(j, "L") = h1.Cells(i, "L")
            h2.Cells(j, "M") = h1.Cells(i, "M")
            h2.Cells(j, "N") = h1.Cells(i, "N")
            j = j + 1
        End If
    Next
    Dim Celda As Range
    For Each Celda In Range("A11:N15")
    If (Celda.Value <> "") Then Celda.ClearContents
    Next Celda
    MsgBox "Proceso terminado, se ha copiado la información a BBDD", vbOKOnly + vbInformation, "AVISO"

Ya podrás copiar los registros como deseabas.

Cuando realizas la copia las celdas se limpiaran automáticamente y no ocurra el duplicado.

Ya envié el archivo

Valoras la respuesta para finalizar saludos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas