Macro : exactamente es lo que necesito

Introducimos un código a mano y lo busca. Si lo encuentra hace esto.
1) Muestra los datos en las celdas C2, C3,C4
2) Elimina esa línea de la base de datos. Incluso la compacta subiedo
las lineas de abajo
Ahora hacemos las mofificaciones que queramos en las celdas C2, C3 y
C4. Y ponemos un botón que al pulsarlo va a llevar ese registro nuevo
a la base de datos a la última línea.

1 respuesta

Respuesta
1

Avaro 1911!

Pues eso qu ete propuse es lo que he hecho, eso creo.

Estas son las macros

Private Sub btnAnadir_Click()
 Dim FilaLibre As Integer
 With Sheets("Base de Datos")
  FilaLibre = .Range("A65536").End(xlUp).Row + 1
  .Cells(FilaLibre, 1) = [C1]
  .Cells(FilaLibre, 2) = [C2]
  .Cells(FilaLibre, 3) = [C3]
  .Cells(FilaLibre, 4) = [C4]
 End With
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim Rango As Range
 If Not Application.Intersect(Target, Range("C1")) Is Nothing Then
  Application.EnableEvents = False
  If [C1] = "" Then
    Range("C2:C4") = ""
  Else
    Set Rango = Sheets("Base de Datos").Range("cedula").Find(Target, Lookat:=xlWhole)
    If Not Rango Is Nothing Then
      Range("C2") = Sheets("Base de datos").Cells(Rango.Row, "B")
      Range("C3") = Sheets("Base de datos").Cells(Rango.Row, "C")
      Range("C4") = Sheets("Base de datos").Cells(Rango.Row, "D")
      Sheets("Base de Datos").Rows(Rango.Row).Delete Shift:=xlUp
    Else
      MsgBox ("No se encuentra la cédula: " & Target)
      Range("C2:C4") = ""
    End If
  End If
  Application.EnableEvents = True
 End If
End Sub

Aunque como ya te dije me parecía mejor el método de sustituir los datos en la misma fila que estaban. La macro funciona sobre la columna C, en la B está lo que tenías desde el principio.

Ahora mismo te mando el fichero si logro acordarme de tu correo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas