Actualización de datos

Hola. Tengo una base de datos en la hoja1 de un libro y fórmulas de búsqueda en la hoja2. A partir de las fórmulas de búsqueda de la hoja 2 cambio los datos según mi necesidad, generando, con una macro, un nuevo registro (estoy siempre en la hoja2). Mi consulta es cómo puedo hacer, mediante una macro, que el nuevo registro de la hoja2 reemplace al registro correspondiente en la hoja1 (Actualización de base de datos). Espero que se entienda. Muchas gracias.
Respuesta
1
No tengo claro por qué no te funciona. ¿Estás poniendo el mismo nombre de las hojas (Hoja1 y Hoja2)?.
¿El valor del registro en A3 es un número o es texto?
Por si acaso, prueba esta otra versión que también localiza texto:
-----------------------------
Sub Registro()
'Variables
Dim Buscado As String
Dim Origen As Range
Dim Fila As Integer
Dim Encuentra As Boolean
Buscado = Worksheets("Hoja2").Range("A3").Value
'Búsqueda
For Fila = 1 To 100
If Worksheets("Hoja1").Cells(Fila, 1).Value = Buscado Then
Worksheets("Hoja2").Range("A3:C3").Copy
Worksheets("Hoja1").Cells(Fila, 1).PasteSpecial (xlPasteValues)
Encuentra = True
End If
Next Fila
Application.CutCopyMode = False
'Aviso si no coincide ningún registro
If Encuentra = False Then MsgBox "No se encontró el registo " & Buscado, 0, "Error"
End Sub
-----------------------------
Si quieres mándame tu archivo o dame tu correo y te mando el que estoy utilizando yo como ejemplo por si fuera un problema de versión de Excel.
[email protected]
Enviame por favor el ejemplo a [email protected].
Muchas Gracias
Puedes utilizar una macro como esta, suponiendo que los datos están el la Hoja1, columnas A, B y C hasta la Fila 100 y que el nuevo registro está en la Hoja2 Rango A3:C3.
---------------------------
Sub Registro()
'Variables
Dim Buscado As Integer
Dim Origen As Range
Dim Fila As Integer
Dim Encuentra As Boolean
Buscado = Worksheets("Hoja2").Range("A3").Value
'Búsqueda
For Fila = 1 To 100
If Worksheets("Hoja1").Cells(Fila, 1).Value = Buscado Then
Worksheets("Hoja2").Range("A3:C3").Copy
Worksheets("Hoja1").Cells(Fila, 1).PasteSpecial (xlPasteValues)
Encuentra = True
End If
Next Fila
Application.CutCopyMode = False
'Aviso si no coincide ningún registro
If Encuentra = False Then MsgBox "No se encontró el registo " & Buscado, vbOKOnly, "Error"
End Sub
----------------------------
He incluido un mensaje de error si el registro nuevo no coincide con los registros.
Bueno, haz la prueba y me dices si te funciona o necesitas algún cambio.
Hola.Gracias por yu contestación.La verdad no está funcionando.Al ejecutar la macro me dá error y al depurarlo me marca con color "Buscado = Worksheets("Hoja2").Range("A3").Value ".Se puede corregir esto?.Gracias
Te acabo de mandar el archivo. Ya me contarás.

1 respuesta más de otro experto

Respuesta
1
Hay algunos puntos que no me quedan claros, y no sé muy bien qué fórmulas estás usando, tampoco entiendo muy bien cuando dices que mediante una macro estás generando un nuevo registro, se me ocurren varias interpretaciones a ésto. Tu pregunta me parece interesante, aunque bastante compleja, y hay que tener en cuenta muchos factores (sé que ésto es difícil de entender para quien tiene el libro delante y sabe qué es exactamente lo que tiene y lo que quiere conseguir, pero créeme, que para mí, se me ocurren muchas variantes sobre como puedes tener el libro y por tanto distintas soluciones). Por eso te propongo lo siguiente: mándame el libro a mi dirección de correo, aclárame los puntos que creas convenientes, y yo te lo devolveré con la macro hecha, ¿te parece bien? Mi dirección es jherranzvillasol hotmail.com (inserta un arroba en el espacio en blanco). Bueno.
Hola Villaju.Al problema ya lo tengo solucionado. Prefiero no entretenerte en este tema y consultarte otro.Sé que me lo ibas a solucionar de una u otra forma. Muchas Gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas