Sei sulla pagina 1di 6

Sub Guardar()

'Macro que evita que se ejecute macro secundaria si existen celdas especificas vacas
existe = False
For Each D In Range("D13:D15") 'Cambiar la D por la columna donde esta las celdas
a evaluar, cambiar ("D11;D15") por las celdas a evaluar
If D.Value = "" Then 'Cambiar D por la columna identificada ms arriba
celdas = celdas & " " & D.Address(False, False) 'Cambiar D por la columna
identificada ms arriba
existe = True
End If
Next
If existe Then
MsgBox "Falta informacin obligatoria en las celdas : " & celdas 'mensaje
Exit Sub
End If

'Macro que evita que se repitan el cdigo en la base de datos

Set h1 = Sheets("Principal") 'Colocar el nombre de la hoja donde est el dato que se


quiere evaluar.
Set h2 = Sheets("Registros") 'Colocar el nombre de la hoja donde se encuentran los
registros para ser comparado con el dato mencionado ms arriba.
'
If h1.[D13] = "" Then 'Entre los corchetes [D13] colocar la celda donde est el dato
que se quiere evaluar.
MsgBox "Falta colocar el cdigo en la celda D13", vbExclamation, "GUARDAR"
'Entre comillas mensaje que se muestra si no hay datos en la celda definida ms
arriba.
Exit Sub
End If
Set b = h2.Columns("D").Find(h1.[D13], lookat:=xlWhole) 'Cambiar las "D" por la
columna donde se encuentran sus registros a evaluar, y cambiar [D13] por la celda
que se quiere evaluar en la hoja principal.
If Not b Is Nothing Then
MsgBox "El cdigo ya existe", vbCritical, "GUARDAR" 'Entre las primeras comillas
mensaje que se muestra si el dato evaluado existe en los registros.
Exit Sub
End If

'Macro que evita que se repita el n de identidad en la base de datos

Set h1 = Sheets("Principal") 'Colocar el nombre de la hoja donde est el dato que se


quiere evaluar.
Set h2 = Sheets("Registros") 'Colocar el nombre de la hoja donde se encuentran los
registros para ser comparado con el dato mencionado ms arriba.
'
If h1.[D15] = "" Then 'Entre los corchetes [D15] colocar la celda donde est el dato
que se quiere evaluar.
MsgBox "Falta colocar el cdigo en la celda D15", vbExclamation, "GUARDAR"
'Entre comillas mensaje que se muestra si no hay datos en la celda definida ms
arriba.
Exit Sub
End If
Set b = h2.Columns("F").Find(h1.[D15], lookat:=xlWhole) 'Cambiar las "F" por la
columna donde se encuentran sus registros a evaluar, y cambiar [D15] por la celda
que se quiere evaluar en la hoja principal.
If Not b Is Nothing Then
MsgBox "El n identidad ya existe", vbCritical, "GUARDAR" 'Entre las primeras
comillas mensaje que se muestra si el dato evaluado existe en los registros.
Exit Sub
End If

'A continuacin colocar el nombre de las macros (Consecutivo, Fecha, Registrar).

'Sigue la macro

MsgBox "El dato se guard", vbInformation, "GUARDAR" 'Entre las primeras comillas
mensaje que se muestra si su macro se ejecut satisfactoriamente.

'A continuacin colocar el nombre de la macro limpiar

'Fin de la macro
End Sub
Sub ELIMINAR()
Dim lista As New Collection
'
Set h1 = Sheets("principal") 'Cambiar "principal" por el nombre de la hoja que contiene
el n de registro que se desea eliminar
Set h2 = Sheets("registros") 'Cambiar "registros" por el nombre de la hoja de donde se
va a eliminar el n de registro buscado ms arriba
'
dato = h1.[D11] 'En corchetes [D11] colocar la celda del n de registro que se desea
eliminar
If dato = "" Then
MsgBox "Colocar nmero de registro" 'Mensaje
Exit Sub
End If

'
u = h2.Range("B" & Rows.Count).End(xlUp).Row 'Cambiar "B" por la columna donde
se encuentra el n de registro buscado en la base de datos hoja "registros" para
eliminar
'
existe = False
For i = 2 To u
If UCase(h2.Cells(i, "B")) = UCase(dato) Then 'Cambiar "B" por la columna donde
se encuentra el n de registro buscado en la base de datos hoja "registros" para
eliminar
existe = True
lista.Add i
End If
Next i
'A continuacin colocar la macro buscar

'Contina la macro
If existe Then
cf = MsgBox("Desea eliminar el registro con el n de registro: " & Range("D11"),
vbInformation + vbYesNo, "AVISO") 'Cambiar "D11" por la celda que contiene el n de
registro que se desea eliminar en la hoja "principal"
If cf = vbYes Then

Set r = h2.Columns("B") 'Cambiar "B" por la columna que contiene el n de registro que
se desea eliminar en la hoja "registros"
Set b = r.Find(h1.[D11], lookat:=xlWhole) 'Cambiar [D11] por la celda que contiene el
n de registro que se desea eliminar en la hoja "registros"

If Not b Is Nothing Then


h2.Cells(b.Row, "J") = "Eliminado" 'Cambiar "J" por la celda donde se quiere poner el
mensaje "eliminado"
End If
MsgBox "Registro eliminado con xito", vbInformation 'Mensaje
End If
Else
MsgBox "No se encontr el cdigo: " & Range("D11") 'Cambiar "D11" por la celda que
contiene el n de registro que se desea eliminar en la hoja "principal"
Exit Sub
End If
'A continuacin colocar la macro limpiar

'fin de la macro
End Sub
Sub Reemplazar()

Set h1 = Sheets("principal") 'Cambiar "principal" por la hoja que contenga el n de


registro que se desee reemplazar
Set h2 = Sheets("registros") 'Cambiar "registros" por la hoja que contenga la base de
datos donde se encuentre el registro que se desea reemplazar

cf = MsgBox("Desea reemplazar el registro?", vbInformation + vbYesNo, "AVISO")


'Mensaje
If cf = vbYes Then

'Estas cuatros lneas seguidas son para que la macro se detenga si falta informacin
en la celda especificada
If h1.[D11] = "" Then 'Cambiar [D11] por la celda que contenga el n de registro que se
quiere reemplazar
MsgBox "Colocar nmero de registro" 'Mensaje que se muestra si la celda B2 est
vaca
Exit Sub
End If
'
If h1.[D12] = "" Then 'Cambiar [D12] por la siguiente celda que se desee reemplazar
MsgBox "Falta informacin en la celda D12" 'Mensaje que se muestra si la celda D12
est vaca
Exit Sub
End If
'
If h1.[D13] = "" Then 'Cambiar [D13] por la siguiente celda que se desee reemplazar
MsgBox "Falta informacin en la celda D13" 'Mensaje que se muestra si la celda D13
est vaca
Exit Sub
End If
'
If h1.[D14] = "" Then 'Cambiar [D14] por la siguiente celda que se desee reemplazar
MsgBox "Falta informacin en la celda D14" 'Mensaje que se muestra si la celda D14
est vaca
Exit Sub
End If
'
If h1.[D15] = "" Then 'Cambiar [D15] por la siguiente celda que se desee reemplazar
MsgBox "Falta informacin en la celda D15" 'Mensaje que se muestra si la celda D15
est vaca
Exit Sub
End If
'
If h1.[D16] = "" Then 'Cambiar [D16] por la siguiente celda que se desee reemplazar
MsgBox "Falta informacin en la celda D16" 'Mensaje que se muestra si la celda D16
est vaca
Exit Sub
End If
'
If h1.[D17] = "" Then 'Cambiar [D17] por la siguiente celda que se desee reemplazar
MsgBox "Falta informacin en la celda D17" 'Mensaje que se muestra si la celda D17
est vaca
Exit Sub
End If
'
If h1.[D18] = "" Then 'Cambiar [D18] por la siguiente celda que se desee reemplazar
MsgBox "Falta informacin en la celda D18" 'Mensaje que se muestra si la celda D18
est vaca
Exit Sub
End If

'
Set r = h2.Columns("B") 'Cambiar "B" por la columna donde se encuentra el n de
registro a reemplazar en la base de datos
Set b = r.Find(h1.[D11], lookat:=xlWhole) 'Cambiar [D11] por la celda donde esta el n
de registro que se desea reemplazar

If Not b Is Nothing Then 'Cambiar B por la columna donde estn los datos que se
desean reemplazar

h2.Cells(b.Row, "C") = h1.[D12] 'Cambiar C por la columna donde estn los datos
que se desea reemplazar con los datos de la hoja "Principal". Cambiar [D12] por la
celda seguida del n de registro en la hoja "Principal" que se desea reemplazar
h2.Cells(b.Row, "D") = h1.[D13]
h2.Cells(b.Row, "E") = h1.[D14]
h2.Cells(b.Row, "F") = h1.[D15]
h2.Cells(b.Row, "G") = h1.[D16]
h2.Cells(b.Row, "H") = h1.[D17]
h2.Cells(b.Row, "I") = h1.[D18]

MsgBox "Se ha reemplazado con xito", vbInformation 'Mensaje


Else
MsgBox "El cdigo no existe", vbInformation 'Mensaje
Exit Sub
End If
'A continuacin colocar la macro limpiar

'Contina la macro
End If
End Sub

Potrebbero piacerti anche