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

#1 CARLOS CARNERO
28/04/2008 - 17:13 | Informe spam
*CORRECCION*

deberían copiar en la hoja
“REGISTROS” (C1:C3) > "REGISTROS" (B1:C3)
Respuesta Responder a este mensaje
#2 jsilva69
29/04/2008 - 18:39 | Informe spam
Je... o soy muy corto de entendederas, o lo unico que entendi fue la
TABLA...
No podras ser un porco mas explicito en la deficiocion de CONSULTAS y
REGISTROS?
Tal vez si describieras la funcionalidad y/o utilidad de la planilla,
nos podemos dar una idea.

Julio.
Respuesta Responder a este mensaje
#3 CARLOS CARNERO
29/04/2008 - 19:50 | Informe spam
Hola Julio, siento mucho haberme explicado nada claro. Bueno mi
objetivo es que en la hoja denominada "CONSULTA" ingreso en estas
filas el nombre del usuario y que codigo ó tema(s) esta consultando
(relacionado a la hoja "TABLA"). Entonces es esta información que
quiero trasladarla mediante una macro activada por un objeto, que
copie en la hoja "REGISTROS" el nombre del usuario y los temas que
consulto, creando de esta forma un historial, de modo crónologico.

Ej. Ayer 28.04.2008 Usuario 1 consulto los temas: AFC (AFRICA
CONGO )

EUF (EUROPA FRANCIA)

Entonces esta consulta, se traslada como historico a la hoja
"REGISTROS" en las celdas (B1:C2), donde la celda B1:B2 es el USUARIO1
y la celda C1 es el código AFC y C2 es EUF.

El día de hoy el Usuario2 consulta sólo un tema: ASJ (ASIA
JAPON), entonces esta consulta se traslada al igual que la anterior,
pero esta vez en la celda B3 = USUARIO2 y la celda C3 sería "ASJ".

Muchas gracias por la atención.

Saludos,

Carlos
Respuesta Responder a este mensaje
#4 CARLOS CARNERO
30/04/2008 - 16:43 | Informe spam
Por favor no se olviden de mi solicitud. Hector a ver si me das una
mano, disculpa que te lo pida.

Gracias,

Carlos
Respuesta Responder a este mensaje
#5 Héctor Miguel
01/05/2008 - 05:10 | Informe spam
hola, Carlos !

... mi objetivo es que en la hoja denominada "CONSULTA" ingreso en estas filas
el nombre del usuario y que codigo o tema(s) esta consultando (relacionado a la hoja "TABLA").
Entonces es esta informacion que quiero trasladarla mediante una macro activada por un objeto
que copie en la hoja "REGISTROS" el nombre del usuario y los temas que consulto
creando de esta forma un historial, de modo cronologico.
Ej. Ayer 28.04.2008 Usuario 1 consulto los temas:
AFC (AFRICA CONGO)
EUF (EUROPA FRANCIA)
Entonces esta consulta, se traslada como historico a la hoja "REGISTROS" en las celdas (B1:C2)
donde la celda B1:B2 es el USUARIO1 y la celda C1 es el codigo AFC y C2 es EUF.
El dia de hoy el Usuario2 consulta solo un tema:
ASJ (ASIA JAPON), entonces esta consulta se traslada al igual que la anterior
pero esta vez en la celda B3 = USUARIO2 y la celda C3 seria "ASJ".



la macro que asignes a algun objeto EN la hoja "consulta" pudiera ser +/- como la siguiente
(asumiendo que no habria celdas vacias de por medio y que la base es la columna B):

Sub Carasonriente_Haga_clic_en()
Dim Consultas As Byte
Consultas = Aplication.CountA(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

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.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida