Copiar consultas y pegar en registros

28/04/2008 - 17:06 por CARLOS CARNERO | Informe spam
Buenas días a todos: Tengo un problema y les agradeceré proporcionarme
una ayuda. Antes que nada he estado revisando acá en el foro los temas
relacionados, pero no llego a encontrar lo que busco, por lo que me
permitiré en describirlo ó graficarlo del modo más breve posible.
Tengo tres hojas: TABLA, CONSULTA y REGISTROS respectivamente.
En la hoja “TABLA” tiene tres columnas Código, Continente y País,
haciendo un total de 11 filas incluyendo el encabezado (A1:C11):
CODIGO CONTINENTE PAIS
AFS AFRICA SUDAFRICA
AFC AFRICA CONGO
AMP AMERICA PERU
AMU AMERICA USA
ASJ ASIA JAPON
EUI EUROPA ITALIA
EUE EUROPA ESPAÑA
EUF EUROPA FRANCIA
OCA OCEANIA AUSTRALIA
OCN OCEANIA NUEVA ZELANDIA


En la hoja de “CONSULTA” tengo cinco columnas (idéntico que en la hoja
“TABLA”), sólo que la primera columna (“A”) es un correlativo del
número de consultas a ejecutar y la columna “B” el usuario que lo esta
realizando (A1:B15).
En la columna “C” desde la fila 1 a la 15, tiene una lista desplegable
de validación de datos, que me recoge el CODIGO_PAIS y las demás
columnas el resultado lo obtengo con un simple BuscarV.
Entonces en la hoja “REGISTROS” tengo tres columnas (lo pongo como un
ejemplo). La columna “A” sería el correlativo del historial de las
consultas, la columna “B” el usuario que esta consultando mientras que
la celda C1 a C200, debería ejecutarse los registros consultados con
una macro desde la tabla “CONSULTA”.
EJEMPLO
Consulto 3 registros de los 15 habilitados hoja (CONSULTA), entonces
solo estos tres (B1:C3) deberían copiar en la hoja
“REGISTROS” (C1:C3). Luego vuelvo a ejecutar una nueva consulta pero
esta tiene ahora 8 registros de los 15 habilitados (CONSULTA),
entonces estos ocho registros debería copiarse y pegarse en la hoja
“REGISTROS” (B4:C11). Es en este momento que tengo el problema.
Estado ejecutando una macro, pero recalco en el problema, copia sólo
las tres primeras filas de la hoja CONSULTA y lo pega en la misma fila
de de registros B1:C3, cuando debería buscar la primera celda en
blanco de la columna B1:B200, la que en realidad sería B4: C11 .
Sub Carasonriente_Haga_clic_en()
'
' Carasonriente_Haga_clic_en Macro
'

'
Range("B1:B15").Select
Selection.Find(What:="", After:=ActiveCell, LookIn:=xlValues,
LookAt:= _
xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:=False).Activate
Range("B1:C3").Select
Range("B3").Activate
Selection.Copy
Sheets("REGISTROS").Select
Range("B1:B22").Select
Selection.Find(What:="", After:=ActiveCell, LookIn:=xlValues,
LookAt:= _
xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:=False).Activate
Selection.FindNext(After:=ActiveCell).Activate
Range("B1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Range("B4").Select
End Sub


Gracias y saludos desde el Perú,

Carlos Carnero Gálvez

Preguntas similare

Leer las respuestas

#6 CARLOS CARNERO
02/05/2008 - 17:52 | Informe spam
creo que "perdi de vista" el como haces la numeracion correlativa en la columna A de la hoja "registros"    -???-

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.



Hola Hector un gusto en saludarte y agradecer tu valiosa atención:

Es cierta tu observación, ya que trate en este ejemplo esbozar ó
trasladar mi problema de mi archivo original, que para ejecutar la
numeración correlativa en la hoja "REGISTRO" uso una condicional:
=SI(B3="SI",B2+1,B2), que indica si la consulta es nueva (omiti esta
columna en el ejemplo), por lista desplegable selecciono "SI" y hago
un copy de todos los otros elementos como el usuario, que tema
consulto mediante su código, fecha, etc., eso por este lado.

Luego he ejecutado la macro que me indicas, pero me sale este mensaje:
"Se ha producido el error ‘424” en tiempo de ejecución:
Se requiere un objeto"

Y cuando selecciono depurar, sombrea esta línea: Consultas Aplication.CountA(Range("b1:b15"))

Saludos y mi reiterado agradecimiento.

Carlos
Respuesta Responder a este mensaje
#7 CARLOS CARNERO
02/05/2008 - 17:57 | Informe spam
La intención es de automatizar toda consulta o requerimiento (es un
programita de Admisnitración de Archivos Documentarios) en la hoja
"CONSULTA" y que se cargue automaticamente en la hoja de "REGISTRO"
con un autonumerico el historial con todos los datos existentes, ya
que lo realizo de manera manual ó seleccionando a traves de las listas
desplegables.

Saludos,

Carlos
Respuesta Responder a este mensaje
#8 CARLOS CARNERO
05/05/2008 - 18:42 | Informe spam
On 2 mayo, 10:52, CARLOS CARNERO wrote:
> creo que "perdi de vista" el como haces la numeracion correlativa en la columna A de la hoja "registros"    -???-

> si cualquier duda (o informacion adicional)... comentas ?
> saludos,
> hector.

Hola Hector un gusto en saludarte y agradecer tu valiosa atención:

Es cierta tu observación, ya que trate en este ejemplo esbozar ó
trasladar mi problema de mi archivo original, que para ejecutar la
numeración correlativa en la hoja "REGISTRO" uso una condicional:
=SI(B3="SI",B2+1,B2), que indica si la consulta es nueva (omiti esta
columna en el ejemplo), por lista desplegable selecciono "SI" y hago
un copy de todos los otros elementos como el usuario, que tema
consulto mediante su código, fecha, etc., eso por este lado.

Luego he ejecutado la macro que me indicas, pero me sale este mensaje:
"Se ha producido el error ‘424” en tiempo de ejecución:
Se requiere un objeto"

Y cuando selecciono depurar, sombrea esta línea:  Consultas > Aplication.CountA(Range("b1:b15"))

Saludos y mi reiterado agradecimiento.

Carlos



Please ??????????????????
Respuesta Responder a este mensaje
#9 Héctor Miguel
05/05/2008 - 21:11 | Informe spam
hola, Carlos ! (perdon... se me chispotio revisar mensajes anteriores) :-((

... he ejecutado la macro que me indicas, pero me sale este mensaje:
"Se ha producido el error ‘424” en tiempo de ejecucion: Se requiere un objeto"
Y cuando selecciono depurar, sombrea esta linea: Consultas = Aplication.CountA(Range("b1:b15"))



no se donde esta ni que "tipo" de objeto sea el de la macro: -> Sub Carasonriente_Haga_clic_en()
(aparentemente) cuando lo ejecutas, NO esta como "activa" la hoja donde se cuenta el rango -?-
(es probable que el objeto este reteniendo el foco o que el control no lo "suelte" -segun tu version de excel-) -?

en via de mientras, prueba a "calificar" totalmente la ruta del rango (p.e.) cambiando esa instruccion:
de: -> Consultas = Aplication.CountA(Range("b1:b15"))
a: -> Consultas = Aplication.CountA(Worksheets("consulta").Range("b1:b15"))

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#10 CARLOS CARNERO
05/05/2008 - 23:59 | Informe spam
Hola Hectór: carambas me da vergüenza seguir molestándote y sobretodo
no captar a plenitud tus conocimientos.

Tengo el Excel 2007, pero lo guardo como Libro de Excel 97-2003.xls.
La macro esta en la hoja “CONSULTA” y ahora le he colocado en un botón
(control de formulario) y la sintaxis esta en el módulo1 (General),
pero el problema continua con idéntico mensaje. Esta es la sintaxis:

Sub Botón12_Haga_clic_en()
Dim Consultas As Byte
Consultas Aplication.CountA(Worksheets("consulta").Range("b1:b15"))
If Consultas = 0 Then Exit Sub
With Worksheets("registros").Range("a65536").End(xlUp).Offset(1)
.Resize(Consultas, 2).Value Range("b1:c1").Resize(Consultas).Value
End With
Range("b1:c1").Resize(Consultas).ClearContents
End Sub


Gracias,

Carlos
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida