Vaciar información de reportes diarios a un control de Excel.

En mi libro llamado "TRANSMITTAL", tengo una pestaña llamada "Control de Revisiones", aquí es donde vacío la información de los reportes (pestaña nueva) que se van agregando en este mismo libro, el formato de cada reporte es un templete predefinido y se realiza de forma numérica consecutiva, para cada reporte.

De estos reportes me interesa saber: 01.- El numero consecutivo del reporte ( Celda I7 ), 02.- La fecha en que se genero el reporte ( Celda K7 ), 03.- La revisión en que se encuentra el reporte ( Celdas Q6 : Q12 ).

Este templete puede contener entre 1 y 200 documentos por cada hoja, agregados en el cuerpo del formato ( Celdas C37, F37 y G37 en adelante ) que son los documentos a contar en la pestaña control de revisiones.

Esta información se deberá colocar en la pestaña control de revisiones en la columna correspondiente y sera una fila por cada reporte generado. Ejemplo. El reporte 1879, cuenta con 3 documentos, en la columna QUE, fila 6 se muestran estos reportes y son colocados en la pestaña Control de Revisiones, en la Columna C (revisiones cero ), en su fila correspondiente y al final en la columna J, se hace la sumatoria de todos los documentos de la columna C : I, en su fila correspondiente.

La idea es no tipear toda la información y se pueda generar de forma automática, tengo el archivo disponible es necesario enviarlo por correo.

1 Respuesta

Respuesta
1

Prueba la siguiente:

Sub Control_de_Revisiones()
'Por Dante Amor
  Dim sh As Worksheet, sh1 As Worksheet
  Dim i As Long, j As Long
  Dim c As Range
  '
  Set sh1 = Sheets("Control de Revisiones")
  sh1.Rows("3:" & Rows.Count).ClearContents
  '
  i = 3
  For Each sh In Sheets
    Select Case LCase(sh.Name)
      Case LCase(sh1.Name), LCase("FORMATO")
      Case Else
        sh1.Range("A" & i).Value = sh.Range("I7").Value
        sh1.Range("B" & i).Value = sh.Range("K7").Value
        j = 3
        For Each c In sh.Range("Q6:Q12, Q14")
          sh1.Cells(i, j).Value = c.Value
          j = j + 1
        Next c
        i = i + 1
      End Select
  Next sh
End Sub

Me funciono perfecto Dante, muchísimas gracias! Es justo la primer parte de un trabajo que se esta desarrollando, no quise crecer mucho la solicitud de soporte, pero al menos esta parte, funciono de maravilla. De nuevo, gracias!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas