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

#26 Héctor Miguel
09/05/2008 - 20:37 | Informe spam
hola, Carlos !

__ 1 __
... me gustaria que limpie tambien tres de las cuatro variables del encabezado
osea: H8, D11 y D13 (la D9 que se conserve como esta).


__ 2 __
El otro detalle que te comente lineas arriba, era que estas hojas estan protegidas
(tienen ambas la misma clave): Que es lo que hay que agregar a esta sintaxis?



1) antes de la linea con el "End Sub" (despues de la otra con el "ClearContentes") agrega la siguiente:

Range("h8,d11,d13"").ClearContents

2) si se trata de varias hojas (si mencionas que se trata de la misma clave para todas)...
copia/pega (adapta) las siguientes lineas en el modulo de codigo de tu libro (ThisWorkbook)

Private Sub Workbook_Open()
Dim Hoja As Worksheet
For Each Hoja In Worksheets(Array("consulta", "registro"))
Hoja.Protect PassWord:="123", UserInterfaceOnly:=True
Next
End Sub

(practicamente) TODO lo que hagas por codigo... pasara sin problemas
(excepto ciertas cosillas relacionadas con ordenaciones, insertar filas/columnas, objetos incrustados y algunas mas)

saludos,
hector.
Respuesta Responder a este mensaje
#27 CARLOS CARNERO
09/05/2008 - 21:39 | Informe spam
Hola Héctor muchas gracias por tu atención: Agregue a la sintaxis que
me proporcionaste y me sale este mensaje: “Error de compilación: Se
esperaba: separador de listas o)”

Así está en el final:


End With
Range("c2").Resize(Consultas).ClearContents
Range("h8,d11,d13"").ClearContents
End Sub

En cuanto a la segunda quedo perfecto.

Muchas gracias,

Carlos
Respuesta Responder a este mensaje
#28 Héctor Miguel
09/05/2008 - 21:56 | Informe spam
hola, Carlos !

... me sale este mensaje: “Error de compilacion: Se esperaba: separador de listas o)”
End With
Range("c2").Resize(Consultas).ClearContents
Range("h8,d11,d13"").ClearContents
End Sub



perdon... se me ha quedado una comilla doble en exceso :-((
de: -> Range("h8,d11,d13"").ClearContents
a: -> Range("h8,d11,d13").ClearContents

saludos,
hector.
Respuesta Responder a este mensaje
#29 CARLOS CARNERO
09/05/2008 - 22:24 | Informe spam
Bestial mi estimado Héctor y mil gracias por tu invalorable ayuda.

Saludos,

Carlos
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida