Professional Documents
Culture Documents
'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
'Sigue la macro
MsgBox "El dato se guard", vbInformation, "GUARDAR" 'Entre las primeras comillas
mensaje que se muestra si su macro se ejecut satisfactoriamente.
'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"
'fin de la macro
End Sub
Sub Reemplazar()
'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]
'Contina la macro
End If
End Sub