Saltar al contenido

Copiar las mismas celdas de varias hojas en una tabla


Recommended Posts

publicado

Hola a tod@s de nuevo

Como ya he dicho antes no tengo casi nada de idea de excel,asi que voy bastante perdido.

Estoy trabajando en un libro para hacer escandallos de los trabajos que realizo, l que quiero hacer es copiar unas celdas que se repiten en todas las hojas y colocarlas en otra como una tabla y si se puede (que no lo se) despues de la tabla poner las imagens que inserto en cada hoja.

he mirado en el foro y he visto un tema antiguo que pedía lo mismo que yo, he mirado la formula y como si viera chino,a si que os pido ayuda para ver si puedo conseguirlo.

os adjunto un archivo de ejemplo para que veais la formula (es el modulo 5) para que me expliqueis lo que tengo que retocar (sobre todo cuales son las celdas a copiar y donde se colocan) o retocarla vosotros si sabeis :smug::smug::smug::smug:

gracias a todos

ejemplo.zip

publicado

Hala a tod@s de nuevo

Después de darle unas cuantas vueltas y probar varias cosas parece que la macro funciona.La que estoy usando es esta

Option Explicit

Sub Resumen()
Dim wshDat As Worksheet
Dim wshRes As Worksheet
Dim rngRC As Range
Dim lngF As Long

'Se supone que la hoja con el resumen es "Tarifa" y los títulos de la tabla
'están en D11:D11

'Borrar datos anteriores
Set wshRes = ActiveWorkbook.Worksheets("Tarifa")
With wshRes
Set rngRC = .Range(.Cells(1, 4), .Cells(.Rows.Count, 2).End(xlUp))
End With
rngRC.Offset(1, 0).ClearContents
lngF = 1

Application.ScreenUpdating = False
'Recorrer todas las hojas y extraer los datos (en A2,B2 y J31)
For Each wshDat In ActiveWorkbook.Worksheets
If wshDat.Name <> wshRes.Name Then
With rngRC.Cells(11, 1)
.Offset(lngF, 0) = wshDat.Cells(2, 1)
.Offset(lngF, 1) = wshDat.Cells(2, 2)
.Offset(lngF, 2) = wshDat.Cells(31, 10)
wshRes.Hyperlinks.Add Anchor:=.Offset(lngF, 0), Address:="", _
SubAddress:=wshDat.Name & "!A2", _
ScreenTip:="Abre la hoja del Modelo (" & wshDat.Name & ")"
End With
lngF = lngF + 1
End If
Next

Application.ScreenUpdating = True
MsgBox "Operación finalizada, se han creado " & lngF & " líneas de modelos. ", _
vbInformation, "TERMINADO"

End Sub

[/CODE]

Ahora necesito que antes de salga en mensaje de las lineas que se han creado me borre la fila 12 y 13, que contienen datos inútiles para la tabla.Según el grabador de macros la función seria así:

Rows("12:13").Select

Selection.Delete Shift:=xlUp

pero no se como ponerlo en la macro para que no de error, a ver si me podéis ayudar.

Y un par de cosas mas ya que en la macro la variable "lngF" o lo que sea dice las lineas que ha hecho se puede usar para poner bordes a las celdas?, y la otra se pueden copiar las imágenes que tengo en las otras hojas a esta después de la tabla ?

Gracias por las respuestas

P.D. como se pone lo de solucionado ? o con escribirlo ya vale

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.