Excel - Consulta de registros

 
Vista:

Consulta de registros

Publicado por Omar (4 intervenciones) el 10/09/2008 19:42:09
Buenos dias por favor podrian ayudarme:

Tengo un libro de excel con 2 hojas

Hoja1 = Datos (500 registros de datos - Registro de solicitudes por codigo)
Hoja2 = Consulta (Formulario)

La idea es que en la hoja2 "consulta", pueda digitar en un campo el numero de solicitud (hoja1), presionar enter y aumaticamente me llene el formulario (hoja2) con los datos encontrados de la hoja 1.

Intente utilizar el sgte codigo pero no funciona.
______________

Private Sub CommandButton3_Click()
'copia los registros de la hoja1 Datos cuyo numero de solicitud es igual al
'ingresado en la celda "K2" de la hoja2 "Consulta".

Dim numsolic As Integer
Dim filadestino As Integer
Dim dato As String
'La variable numsolic indica el valor del registro a copiar
numsolic = Sheets("Consulta").Range("K2").Value
'variable que indica a partir de qué fila se copiará
filadestino = 11
'busca los registros coincidentes al numero de solicitud ingresado
Sheets("Datos").Activate
Range("A7:A10").Select
While ActiveCell.Value <> ""
dato = ActiveCell.Value
'obtiene el valor del dato ingresado.
If dato = numsolic Then
Selection.EntireRow.Copy
ActiveSheet.Paste Destination:=Worksheets(5).Cells(filadestino, 4)
filadestino = filadestino + 1
End If
ActiveCell.Offset(1, 0).Select
Wend
Application.CutCopyMode = False
End Sub
_________________________________

Muchas gracias.

[email protected]
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Consulta de registros

Publicado por Jorge Morales (22 intervenciones) el 11/09/2008 18:36:31
Prueba con el siguiente codigo

Private Sub CommandButton3_Click()
'copia los registros de la hoja1 Datos cuyo numero de solicitud es igual al
'ingresado en la celda "K2" de la hoja2 "Consulta".

Dim numsolic As Integer
Dim filadestino As Integer
Dim dato As String
'La variable numsolic indica el valor del registro a copiar
numsolic = Hoja2.Range("A2").Value
'variable que indica a partir de qué fila se copiará
filadestino = 11
'busca los registros coincidentes al numero de solicitud ingresado
Hoja1.Activate
Hoja1.Range("A:A").Select
While ActiveCell.Value <> ""
dato = ActiveCell.Value
'obtiene el valor del dato ingresado.
If dato = numsolic Then
Selection.EntireRow.Copy
Hoja2.Activate
Hoja2.Paste Destination:=Hoja2.Cells(filadestino, 1)
filadestino = filadestino + 1
Hoja1.Activate
End If
ActiveCell.Offset(1, 0).Select
Wend
Application.CutCopyMode = False
Hoja2.Activate
End Sub

Hoja1 = Hoja de datos
Hoja2 = Hoja de consulta

hice este cambio Cells(filadestino, 1), por que para pegar una fila completa (Selection.EntireRow.Copy) debes pegarla desde el inicio de la fila, si lo que euires es solo copiar y pegar un rango mas reducido utiliza:

Hoja1.Range(ActiveCell, ActiveCell.Offset(columnoffset:=5)).Copy
en lugar de Selection.EntireRow, donde 5 es el numero de columnas que quieres copiar - 1, por ejemplo si quieres copiar 3 columnas entonces escribes:

Hoja1.Range(ActiveCell, ActiveCell.Offset(columnoffset:=2)).Copy

y ahora sí puede utilizar

Hoja2.Paste Destination:=Hoja2.Cells(filadestino, 4)

Espero que te sea de ayuda, por que para mi sí lo es, aprendí a utilizar el offset y eso gracias a ti. Cualquier duda o comentario con gusto te responderemos.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta de registros

Publicado por Omar (4 intervenciones) el 11/09/2008 21:38:31
Hola mi estimado, gracia spor la respuesta, va sumando a la solucion final.

Sabes probe el codigo pero ahora me sale error en la linea:

" numsolic = Consulta.Range("K2").Value "

El codigo que ingreso , esta en la celda K2, luego al dar enter me deberia buscar este codigo en la hoja1 que se llama "Datos" y al ubicarlo, me deberia jalar los datos de ese registro y pegarlos en la hoja2 que se llama "Consulta"

Si me das tu correo podria enviarte mi archivo.

Muchas gracias.
________________________________________

Private Sub CommandButton2_Click()
'copia los registros de la hoja1 Datos cuyo numero de solicitud es igual al
'ingresado en la celda "K2" de la hoja2 "Consulta".

Dim numsolic As Integer
Dim filadestino As Integer
Dim dato As String
'La variable numsolic indica el valor del registro a copiar
numsolic = Consulta.Range("K2").Value
'variable que indica a partir de qué fila se copiará
filadestino = 11
'busca los registros coincidentes al numero de solicitud ingresado
Datos.Activate
Datos.Range("A7:A20").Select
While ActiveCell.Value <> ""
dato = ActiveCell.Value
'obtiene el valor del dato ingresado.
If dato = numsolic Then
Datos.Range(ActiveCell, ActiveCell.Offset(columnoffset:=1)).Copy
Consulta.Activate
Consulta.Paste Destination:=Consulta.Cells(filadestino, 1)
filadestino = filadestino + 1
Datos.Activate
End If
ActiveCell.Offset(1, 0).Select
Wend
Application.CutCopyMode = False
Consulta.Activate

End Sub
__________________________________________
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar