Jump to content

Extraer datos de varias hojas de acuerdo a dos condiciones para hacer un resumen


Recommended Posts

Saludos.

Una opción sencilla usando formula desde vba, pruebala y comentas.

Sub Resumen()
Application.ScreenUpdating = False
With Sheets("Resumen")
'recorremos las hojas del libro
For i = 1 To Sheets.Count
'condicionante para no tomar la hoja resumen
If Sheets(i).Name = "Resumen" Then
Else
'establecemos la ultima celda con datos
'de la hoja resumen
x = .Range("B65536").End(xlUp).Row
'establecemos los ciclos del bucle en base
'al numero de fila de la ultima celda con
'datos de la hoja correspondiente al bucle
'que recorre las hojas
vueltas = Sheets(i).Range("B65536").End(xlUp).Row
For ii = 1 To vueltas
'insertamos las formulas para referenciar los datos
Cells(x + ii, 2).Resize(, 4) = Array(Sheets(i).Name, _
"=" & Sheets(i).Name & "!B" & 4 + ii, "=" & Sheets(i).Name & "!C" & 4 + ii, _
"=" & Sheets(i).Name & "!D" & 4 + ii)
'dejamos solo valores en las celdas
Cells(x + ii, 2).Resize(, 4).Value = Cells(x + ii, 2).Resize(, 4).Value
'damos formato de fecha en la columna fecha
Cells(x + ii, 4).NumberFormat = "m/d/yyyy"
Next ii
End If
Next i
'filtramos para eliminar las filas con valor cero
.Range("B2:E2").AutoFilter Field:=2, Criteria1:="0"
.Range("B3:E3", .Range("B3:E3").End(xlDown)) _
.SpecialCells(xlCellTypeVisible).EntireRow.Delete
'quitamos los filtros
.Range("B2").AutoFilter
End With
Application.ScreenUpdating = True
End Sub[/CODE]

Atte.

joshua

Link to comment
Share on other sites

Saludos.

El error " Subscript out of range" (Subíndice fuera del intervalo), se refiere al nombre de la hoja resumen, es decir en la macro que te adjunte al principio tengo definido el nombre de la hoja asi "Resumen", pero en tu libro tiene un espacio en blanco es decir asi "Resumen ", en el adjunto de tu ejemplo esta la macro acomodada a tu formato incluyendo el nombre

"Resumen ", bruebala y comentas.

Atte.

joshua

Extraccion de datos_joshua.xls

Link to comment
Share on other sites

  • 2 months later...

Joshua:

Disculpa vi el archivo de extraccion, y creo que me puede servir para un reporte mensual que son aproximadamente 100 hojas, no se si se pueda indiar por ejemplo que me jale informacion de diferente celdas acomodando por hoja en una sola fila cada una

ejemplo jalo f50,e30,a10, etc... y que en el orden que las solicito jale en una sola fila todo.

De antemano mil gracias.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • 58 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Current Donation Goals

    • Raised 0.00 EUR of 130.00 EUR target
  • Files

  • Download Statistics

    • Files
      166
    • Comments
      89
    • Reviews
      25

    Latest File
    By pegones1

    1    0

  • Crear macros Excel

  • Posts

    • Buenos días a todos; -Con la macro que adjunto paso el valor formateado con dos decimales a la celda pero veo que si voy a la barra de fórmulas me siguen apareciendo más de dos decimales.  Hay alguna otra solución? Me interesa que solo sean dos decimales porque después estos datos los paso a Access y  me está cargando todos los decimales. Saludos  Formato.xlsm
    • Hola, tengo una consulta que no se resolver con listas desplegables y sin macros. El caso sería que cuando estemos en la hoja SUBFAMILIA si por ejemplo nos situamos en la fila 3 columna A y desplegamos la lista desplegable y elegimos 0102.BARRAS PERFORADAS, que automáticamente me llene las celdas correspondientes de Campo1, Campo2, Campo3…….. con los datos que se encuentran en la hoja CAMPOS columna C correspondientes a 0102.BARRAS PERFORADAS en este caso son 13 pero pueden llegar hasta 20. En el caso de añadir nuevas subfamilias en esta hoja previa creación de sus campos correspondientes en la hoja Campos tendría que hacer lo mismo, gracias MUESTRA.rar
    • Prueba así: '----------------------------------------- APIS ELIMINAR BARRA TITULO FORMULARIO Private Declare PtrSafe Function FindWindow Lib "User32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare PtrSafe Function GetWindowLong Lib "User32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long Private Declare PtrSafe Function SetWindowLong Lib "User32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Private Declare PtrSafe Function DrawMenuBar Lib "User32" (ByVal hwnd As Long) As Long Private Sub UserForm_Initialize() 'ELIMINAR BARRA TITULO FORMULARIO Dim lStyle As Long, hMenu As Long, mhWndForm As Long mhWndForm = FindWindow("ThunderDFrame", Me.Caption) lStyle = GetWindowLong(mhWndForm, -16) lStyle = lStyle And Not &HC00000 SetWindowLong mhWndForm, -16, lStyle DrawMenuBar mhWndForm '---------------------------------------------------- End Sub  
    • Hola buenas a todos. Hace unos cuantos días estoy intentando trabajar con datos filtrados porque necesito que los datos filtrados en la columna A (No. Pre Factura) quisiera que se concatenaran, he probado varias formas, pero por desconocimiento no he logrado nada, cuando lo intento me concatena todos los datos estén visibles o no. Lo mismo con las columnas G, I, K, M, O, Q (COD1, COD2, COD3, COD4, COD5, COD6) que busco la forma de unir todos los códigos iguales y que me sume sus respectivas cantidades probando con tablas dinámicas, con la función subtotales, pero igual no lo he logrado. Les agradecería si me ayudaran a resolver mi problema. Gracias Dejo aquí el documento mi problema está en la Hoja 2. trabajo.xlsm
    • Sí, sí puedes. Solo selecciona el título en el gráfico y con él seleccionado en la barra pon "=" e indicas la celda a la que quieres hacer referencia.
  • Recently Browsing

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

Privacy Policy