Macro para grabar DB

Tengo una macro que me graba la información de facturas en una hoja(DB), y lo que necesito es que no me grabe nada en caso de que este repetido el dato en la columna B.

Sub Grabar()
'If Range("E12").Value = "" Then
'MsgBox "Ingrese datos en el Campo de Nombre"
'Exit Sub
'End If
Range("M27:M51").Select
Selection.Copy
Sheets("DB").Select
Range("B1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("A1").Select
Sheets("EmitirFactura").Select
Application.CutCopyMode = False
Range("A3").Select
End Sub

Espero q puedan ayudarme

1 Respuesta

Respuesta
1

Estás copiando este rango ("M27:M51"), ¿de todos esos datos cuál se tiene que comparar en la columna B?

Si está repetido, quieres un mensaje "El dato está repetido, no se copia", ¿o algo así?

la celda "M27"

Si esta repetido que diga "Factura repetida" y ademas que no grabe ningún dato hasta corregir

Te regreso la macro, comenté algunas líneas que no se requieren.

Sub Grabar()
'Actualizada.Por.DAM
'If Range("E12").Value = "" Then
'MsgBox "Ingrese datos en el Campo de Nombre"
'Exit Sub
'End If
Range("M27:M51").Copy
'Selection.Copy
Sheets("DB").Select
'uf = Range("B" & Rows.Count).End(xlUp).Row + 1
'Range("B1").Select
'Selection.End(xlDown).Select
'ActiveCell.Offset(1, 0).Activate
Set b = Range("B:B").Find(Sheets("EmitirFactura").Range("M27"))
If b Is Nothing Then
    Range("B" & Range("B" & Rows.Count).End(xlUp).Row + 1). _
        PasteSpecial _
        Paste:=xlPasteValues, _
        Operation:=xlNone, _
        SkipBlanks:=False, _
        Transpose:=True
Else
    MsgBox "Factura repetida", vbCritical, "FACTURAS"
End If
    'Range("A1").Select
    Sheets("EmitirFactura").Select
    Application.CutCopyMode = False
    Range("A3").Select
End Sub

Saludos.DAM
Si es lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas