¿Cómo extraigo los datos de una tabla dinámica?

Tengo tres hojas de excel. En la primera tengo los datos ordenados de manera que puedo crear una tabla dinámica de los mismos en la segunda hoja y la tercera hoja quería que fuera para "copiar y pegar" los datos de la tabla dinámica.
El problema surge cuando copio y pego los valores en esa hoja, pues cuando uno de los elementos de la primera columna tiene varios en la segunda columna, al pegar el valor lo hace en blanco y al utilizar filtros desordena esa fila.
No se si está claro, lo que quisiera era tener los datos de la tabla dinámica pero sin huecos en blanco en las primeras columnas.
Respuesta
1
Lo que necesitas es que se repita el valor de la col A para todos los registros que correspona, ¿verdad? Este es el método manual (extraído de mi manual de soluciones Excel):
1 - Seleccionar el rango completo de la col A (hasta la última fila con datos en col B o C...)
2 - Desde el menú Edición, Ir a, botón Especial, opción Celdas en Blanco
3 - En la celda que se encuentra activa (que será la primera vacía) escribir el signo = y seleccionar la primer celda con valor en A. Presionar juntas las teclas Ctrl y Enter.
Nota: las celdas ahora contienen fórmula. Para pasar entonces estos datos a valores:
4 - Seleccionar el mismo rango y clic en Copiar.
5- Desde el menú Edición, Pegado Especial, optar por Valores
Pruébalo y si todo quedó bien, no olvides finalizar.
Saludos
Elsa
Invertir en conocimientos produce los mejores intereses (Benjamín Franklin).
http://galeon.com/aplicaexcel
Hola otra vez, la verdad es que creo que no expliqué bien cual es el problema. Para aclararlo remito un ejemplo. Esta tabla es la que me resultaría de haber seleccionado la tabla dinámica, copiado y pegado especial, pegar valores, en una nueva hoja. Donde pone Celdas en blanco, son exactamente eso y correspondería con las columnas A, B y C.
Este proceso de copiar y pegar valores en una nueva hoja se ejecuta a través de una macro y la idea era poder incluirlo en la macro para que lo hiciera de manera automática cubriendo los huecos en blanco con los valores de la línea correcta. Esto es necesario porque con posterioridad se aplica un filtro que lo que hace es separar las celdas en blanco de la línea a la cual pertenecen.
Por cierto, no pude seguir los pasos que me marcaste porque no encontré las opciones en el Office 2007, pues aunque realmente el libro se va a usar con office 2000, lo estoy desarrollando en 2007.
Ref.              Cod.                    Designación                                  ubicación                Stock
13127275 8,4351E+12 LAMP PALACE 8L 5A 10
13643385 8,42197E+12 LAMP NEREA 6L SEMITECHO 6A 6
13523405 5,41399E+12 LAMP ANA TRANSPARENTE 7A 3
13670433 5,41225E+12 LAMP LAGRIMAS 8L 5B 3
13660815 8,42706E+12 LAMP LOZOYA 3L 4A 16
13106772 3,36141E+12 LAMP VOLGA 5L RUSTICA 3A 10
12184900 8,4351E+12 LAMP ACTUAL 2L CEREZO 1J 10
  Celdas en blanco Celda en blanco 7A 5
12631864 8,4351E+12 LAMP ACTUAL 4L WENGUE 2A 2
12678386 8,03141E+12 LAMP PIASTRA 3L ÁMBAR 1A 3
De todas formas muchas gracias por la información facilitada.
Un saludo,
Entonces si ya tenés una macro para hacerlo, consideraré que tenés un cierto manejo del tema.
Necesitás entonces agregar a continuación otra rutina que haga los siguientes pasos:
1-Obtener la última fila con datos de la col que será más larga (parece la de ubicación o stock)
fila = sheets("Hoja?").range("D65536").end(xlup).row + 1   'ajustá el nbre de hoja
2- recorrer con un bucle la col A hasta llegar a esa fila:
Range("A2").select      'ajustar el incio del rango
while activecell.row <= fila      'obtenida en el pto1
3-Si la celda activa está vacía se llenará con el dato anterior, en esta col y en las 2 sgtes.
4-Se pasa a la celda siguiente (Activecell. offset(1,0). select
5- Se cierra el bucle (wend)
Cuando la tengas armada, si te surge alguna dificultad escribime nuevamente
Perdona por el retraso en verlo, pero el trabajo no me deja excesivo tiempo libre.
Después de probar varias veces, no me funciona. Lo único que sucede es que aparece seleccionada la celda siguiente a la última vacía.
Siguiendo tus instrucciones, si obtiene la última fila de la col más larga, aunque se sitúa una celda más abajo, supongo que por el +1, pues si lo cambio por -1 se sitúa en la última celda con datos.
Luego es un poco difícil seguir el proceso, pero supongo que sí sigue el bucle de la col A que es la que tiene la celda en blanco por la acción de copiar y pegar especial, valores, pero no rellena la celda vacía con los datos de la anterior celda con datos.
¿Qué no funcione, puede ser debido a que no reconozca las celdas sin datos como tales?
Remito el código tal cual lo usé en una hoja de prueba con los datos que te pasé en el anterior mensaje.
Sub Macroblanco()
fila = Sheets("Hoja1").Range("D65536").End(xlUp).Row + 1
Range("A2").Select
While ActiveCell.Row <= fila
ActiveCell.Offset(1, 0).Select
Wend
End Sub
Gracias,
Lo que pasa que tu rutina solo recorre las filas, pero en ningún momento consulta si está en blanco o no.
Te la envío ajustada. Coloqué 1 celda en cada línea porque no sé si las 3 col tendrás que rellanar. Quitá la que no te sirva.
Offset(fila, col) se utiliza para controlar otra celda a cierta distancia de la activa, que siempre estará en col A.
Así Offset(-1,1) indica lo que se encuentra 1 fila por encima y 1 col a la derecha de la celda activa.
Sub Macroblanco()
fila = Sheets("Hoja1").Range("D65536").End(xlUp).Row
Range("A2").Select
While ActiveCell.Row <= fila
If ActiveCell = "" And ActiveCell.Offset(0, 1) = "" And ActiveCell.Offset(0, 2) = "" Then
ActiveCell = ActiveCell.Offset(-1, 0)
ActiveCell.Offset(0, 1) = ActiveCell.Offset(-1, 1)
ActiveCell.Offset(0, 2) = ActiveCell.Offset(-1, 2)
End If
ActiveCell.Offset(1, 0).Select
Wend
End Sub
Pruébala y comentame si ahora ya quedó todo comprendido y solucionado.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas