Excel: Hoja A (filatrada de un modo) copiar y pegar en Hoja B (filtrada de otro modo) ¿COMO?

18/11/2006 - 17:03 por Chenio | Informe spam
Buenos días,

Tengo un problema y veo que llevo tres días sin resolverlo. Tengo dos
hojas excel con datos como telefono, e-mail..etc. Las llamaré Hoja A y
Hoja B.

Me interesa completar las celdas vacías de una columna de la HOJA A,
usando la columna de la HOJA B.

La situaciónd e las hojas:

1)

- HOJA A: He usado autofiltro, para filtrar poniendo que se vean solo
las "vacías" es decir que no tengan teléfono (por ejemplo).

- Hoja B: He usado Autofiltro para poner las "no vacias" (todos los
teléfonos que haya).

2) He ido haciendo uso de la funcion BUSCARV en una hoja y otra, hasta
llegar a tener en la HOJA B, unica y exclusivamente la columna con los
teléfonos que le faltan a la columna de la HOJA A.

3) Pensé que simplemente copiando esa columna de HOJA B y pegándola
en la columna vacía de HOJA A, valdría, pero me dice que son
selecciones múltiples diferentes (supongo que es que aunque esté
filtrado, hay celdas vacías y no vacías en la columna destino).


4) ¿QUE HAGO? De momento he copiado y pegado celdas una por una, por
la urgencia que em corre, pero ahora me topo con una base de datos de
3000 registrosy me niego a hacerlo a mano cada cosa que quiera
completar.


Muchas gracias!

Chenio

Preguntas similare

Leer las respuestas

#1 zz
18/11/2006 - 17:44 | Informe spam
Fijate si te sirve la macro esta

este codigo lo que hace es filtrar los datos por un rango de fechas, pero
igual lo puedes modificar para que lo filtre por telefonos, despues
selecciona unicamente el rango filtrado y lo copia en una segunda hoja y lo
colorea de verde oscuro, pruebalo y adaptalo para lo que quieres hacer.


Sub filterbydate()
'
' filterbydate Macro
' Macro recorded 14/11/2006 by Walter Rincon
'

'
With Worksheets("sheet1")
.Activate
Selection.AutoFilter Field:=5, Criteria1:=">01/12/2006",
Operator:=xlAnd, Criteria2:="</12/2006"
ActiveSheet.UsedRange.Copy
End With

Sheets("sheet2").Activate
With ActiveSheet
.Range("a1").Activate
ActiveSheet.Paste
End With
Dim c As Range
For Each c In ActiveSheet.UsedRange
c.Offset(1, 1).Interior.ColorIndex = 10 'solo para formato
c.Offset(1, 1).Font.Bold = True
Next c

End Sub




espero que te sirva

zz [MX]
cuasi-musico,semi-poeta y loco




"Chenio" wrote in message
news:
Buenos días,

Tengo un problema y veo que llevo tres días sin resolverlo. Tengo dos
hojas excel con datos como telefono, e-mail..etc. Las llamaré Hoja A y
Hoja B.

Me interesa completar las celdas vacías de una columna de la HOJA A,
usando la columna de la HOJA B.

La situaciónd e las hojas:

1)

- HOJA A: He usado autofiltro, para filtrar poniendo que se vean solo
las "vacías" es decir que no tengan teléfono (por ejemplo).

- Hoja B: He usado Autofiltro para poner las "no vacias" (todos los
teléfonos que haya).

2) He ido haciendo uso de la funcion BUSCARV en una hoja y otra, hasta
llegar a tener en la HOJA B, unica y exclusivamente la columna con los
teléfonos que le faltan a la columna de la HOJA A.

3) Pensé que simplemente copiando esa columna de HOJA B y pegándola
en la columna vacía de HOJA A, valdría, pero me dice que son
selecciones múltiples diferentes (supongo que es que aunque esté
filtrado, hay celdas vacías y no vacías en la columna destino).


4) ¿QUE HAGO? De momento he copiado y pegado celdas una por una, por
la urgencia que em corre, pero ahora me topo con una base de datos de
3000 registrosy me niego a hacerlo a mano cada cosa que quiera
completar.


Muchas gracias!

Chenio
Respuesta Responder a este mensaje
#2 Héctor Miguel
19/11/2006 - 03:53 | Informe spam
hola, !

... dos hojas... con datos como telefono, e-mail..etc. Las llamare Hoja A y Hoja B.
... interesa completar las celdas vacias de una columna de la HOJA A, usando la columna de la HOJA B.
- HOJA A... autofiltro, para... que se vean solo las "vacias"... que no tengan telefono (por ejemplo).
- Hoja B:... Autofiltro para... las "no vacias" (todos los telefonos que haya).
... haciendo uso de... BUSCARV en una hoja y otra, hasta llegar a tener en la HOJA B
unica y exclusivamente la columna con los telefonos que le faltan a la columna de la HOJA A. [...]



1) hasta aqui... tienes ya la certeza de que las 'no vacias' de la hoja B se corresponden con las 'vacias' de la hoja A ?
es decir, que -todos- los demas datos/columnas coinciden exactamente entre las hojas A y B -?-
y que el numero de filas 'identificadas' [llenas en B] coincide exactamente con el numero de las vacias en A...
o... habria que buscar 'el orden' de cual de las no vacias en 'B' debe copiarse en cual otra de las vacias en 'A' -?-

2) como y de donde se puede obtener la 'identificacion' de las 'coincidentes' en B para copiarse en A -?-

3) si comentas que tambien en la hoja B existen 'vacias'... no querras -despues- hacer lo mismo pero a la inversa -?-

comentas [si hubiera] algun detalle 'en el tintero' ?
saludos,
hector.
Respuesta Responder a este mensaje
#3 Chenio
19/11/2006 - 13:39 | Informe spam
Héctor Miguel ha escrito:

hola, !

> ... dos hojas... con datos como telefono, e-mail..etc. Las llamare Hoja A y Hoja B.
> ... interesa completar las celdas vacias de una columna de la HOJA A, usando la columna de la HOJA B.
> - HOJA A... autofiltro, para... que se vean solo las "vacias"... que no tengan telefono (por ejemplo).
> - Hoja B:... Autofiltro para... las "no vacias" (todos los telefonos que haya).
> ... haciendo uso de... BUSCARV en una hoja y otra, hasta llegar a tener en la HOJA B
> unica y exclusivamente la columna con los telefonos que le faltan a la columna de la HOJA A. [...]

1) hasta aqui... tienes ya la certeza de que las 'no vacias' de la hoja B se corresponden con las 'vacias' de la hoja A ?
es decir, que -todos- los demas datos/columnas coinciden exactamente entre las hojas A y B -?-
y que el numero de filas 'identificadas' [llenas en B] coincide exactamente con el numero de las vacias en A...
o... habria que buscar 'el orden' de cual de las no vacias en 'B' debe copiarse en cual otra de las vacias en 'A' -?-

2) como y de donde se puede obtener la 'identificacion' de las 'coincidentes' en B para copiarse en A -?-

3) si comentas que tambien en la hoja B existen 'vacias'... no querras -despues- hacer lo mismo pero a la inversa -?-

comentas [si hubiera] algun detalle 'en el tintero' ?
saludos,
hector.



Hola! Gracias a los dos por responder. Intentaré detallar más mi
caso, y mejor ;)

Antes de nada explicar por qué todo esto: Tengo una columna de
nombres, con su respectivo teléfono, pero muchas vienes sin teléfono.
Me pasaron el archivo completo donde vienen lso teléfonos no solo de
mis cuentas sino que vienen muchos más. En este archivo (HOJA B) que
em pasaron, hay algunos teléfonos que en HOJA A no están:


1)
-La HOJA A tiene una columna de teléfonos de 2658 celdas,
algunas vacías y otras no.
-La HOJA B tiene una columna de teléfonos de 18.950 celdas,
algunas vacías y otra nó.
-La HOJA B quiero usarla para completar celdas vacías de
la HOJA A. No todas, porque no tiene todos los teléfonos de la HOJA A,
pero si algunas, aproximadamente 200 (lo veo haciendo uso de BUSCARV ó
VLOOKUP). Para ello, primero filtre la HOJA A (cuando hablo de filtros,
me refiero al autofiltro) por las celdas que están vacías. La HOJA B
filt´ré por lo contrario, por las que no están vacías (las que
tenían teléfonos).

2)

-EL proceso que he hecho para llegar a ver que 200 celdas
tendría que copiar de HOJA B a HOJA A:

- En HOJA A inserto columna en blanco y realizo
BUSCARV comparando con la columna de la HOJA B para ver coincidencias.
FIltro "No es igual a N#A".
- Voy a HOJA B y hago lo mismo comparando con HOJA
A. Filtro usando "No es igual a N#A"
- Vuelvo a ir a HOJA A y repito BUSCARV, pero esta
vez con os resultados obtenidos tanto en una hoja como en la otra.

De este modo consigo averiguar cual son las coincidencias exactas, las
celdas de HOJA B con teléfono. Pero cuando quiero copiar la columna de
teléfonos (con su autofiltro) en HOJA B y voy a la HOJA A para
pegarlome dice que no. Aunque sean 200 celdas exactas en cada Hoja.
Parece que como en un principio son de diferente tamaño y llevan
diferentes autofiltros... no se puede. Y tengo que copiar celda a celda
manuialmente :S
Respuesta Responder a este mensaje
#4 Héctor Miguel
19/11/2006 - 22:56 | Informe spam
hola, ?

segun se 'desprende' de los datos aportados [hasta esta consulta]...
1) NO se trata de dos hojas en un mismo libro... sino de dos libros distintos :(
2) NO comentas cual/es columna/s deberia/s servir como 'base' de la informacion a completar :(
3) [a falta de detalles 'concretos' en lugar de los 'supongamos que...'] :))
estos son los 'supuestos' que deberas modificar/corregir/... :
a) los nombres de los libros ["libro1" y "libro2"]
b) los nombres de las hojas ["hoja a" y "hoja b"] <= y a cual libro corresponde cada hoja
c) que este 'libre' -toda- la columna 'E' -> en el libro y hoja que se va a llenar con los datos faltantes
d) si la columna con la informacion es la segunda columna del rango filtrado [en ambas hojas y libros]
4) ambas hojas deberan ya tener activados los autofiltros mostrando SOLO la filas 'apropiadas'
5) [seguramente] se podria adelgazar el codigo [conociendo los detalles no expuestos hasta ahora] :D

copia / pega las siguientes lineas en un modulo de codigo 'general' y...
si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

Sub Completar_info()
Application.ScreenUpdating = False
Dim Celda As Range, Sig As Byte
With Workbooks("libro2").Worksheets("hoja b").AutoFilter.Range
.Offset(1, 1).Resize(.Rows.Count - 1, 1).Copy _
Destination:=Workbooks("libro1").Worksheets("hoja a").Range("e1")
End With
With Workbooks("libro1").Worksheets("hoja a")
With .AutoFilter.Range
For Each Celda In .Offset(1, 1).Resize(.Rows.Count - 1, 1).SpecialCells(xlCellTypeVisible)
Celda = .Parent.Range("e1").Offset(Sig): Sig = Sig + 1
Next
End With
.ShowAllData: .Columns("e").ClearContents
End With
End Sub

__ la consulta 'expandida' [en informacion] __
Tengo una columna de nombres, con su respectivo telefono, pero muchas vienes sin telefono.
Me pasaron el archivo completo donde vienen lso telefonos no solo de mis cuentas sino que vienen muchos mas.
En este archivo (HOJA B) que em pasaron, hay algunos telefonos que en HOJA A no estan:
1) -La HOJA A tiene una columna de telefonos de 2658 celdas, algunas vacias y otras no.
-La HOJA B tiene una columna de telefonos de 18.950 celdas, algunas vacias y otra no.
-La HOJA B quiero usarla para completar celdas vacias de la HOJA A. No todas, porque no tiene todos los telefonos de la HOJA A
pero si algunas, aproximadamente 200 (lo veo haciendo uso de BUSCARV o VLOOKUP).
Para ello, primero filtre la HOJA A (cuando hablo de filtros, me refiero al autofiltro) por las celdas que estan vacias.
La HOJA B filtre por lo contrario, por las que no estan vacias (las que tenian telefonos).
2) -EL proceso que he hecho para llegar a ver que 200 celdas tendria que copiar de HOJA B a HOJA A:
- En HOJA A inserto columna en blanco y realizo BUSCARV comparando con la columna de la HOJA B para ver coincidencias.
FIltro "No es igual a N#A".
- Voy a HOJA B y hago lo mismo comparando con HOJA A. Filtro usando "No es igual a N#A"
- Vuelvo a ir a HOJA A y repito BUSCARV, pero esta vez con os resultados obtenidos tanto en una hoja como en la otra.
De este modo consigo averiguar cual son las coincidencias exactas, las celdas de HOJA B con telefono.
Pero cuando quiero copiar la columna de telefonos (con su autofiltro) en HOJA B y voy a la HOJA A para pegarlo
... me dice que no. Aunque sean 200 celdas exactas en cada Hoja.
Parece que como en un principio son de diferente tama#o y llevan diferentes autofiltros... no se puede.
Y tengo que copiar celda a celda manuialmente :S
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida