Cuestión : La solución del informe resumido de Excel VBA necesitó

La hoja 1 del .xls atado es un informe mensual típico del defecto. Necesito código de VBA crear la hoja 2 (resumen) y cubrir 3 (cronología) por los ejemplos manuales. Concederé 500 puntos para una solución cifrada para la hoja 2 y otros 500 para la hoja 3. class= " lastRow del
>Attachments del " nombre " del class= del class= " valor " del
del >

class= " fileInfo " del
el title= " del " nombre de fichero del class= " del Informe--071410-081910-.xls el class= (61 KB)  Javascript del href= " de los " attachmentDetails del class= " del (tipo de archivo detalles)  
class= " descripción " del
Informe de actividad con el resumen y Timeline
el class= de
del >
class= del

Respuesta : La solución del informe resumido de Excel VBA necesitó

Mientras tanto, aquí están ambas soluciones.



Picosegundo. Gracias DropBearMod:-) algunos viejos nombres vienen lentamente de nuevo a mente
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
MakeSummary secundario ()
Wb dévil como libro de trabajo
Ds dévil como hoja de trabajo, OS como hoja de trabajo
lRow dévil tan de largo, i como de largo, j como de largo, fRecord como de largo
Fijar wb = ThisWorkbook
Fijar OS = wb. Hojas de trabajo (“UnattendedActivity”)
Fijar ds = wb. Worksheets.Add (después: =os)
ds. Nombre = “resumen”
lRow = OS. Gama (“A65536”). Extremo (xlUp). Fila
OS. Células (7, 1).Copy ds. Células (1, 1)
ds. Células (1, 2).Value = OS. Células (7, 2).Value
ds. Células (1, 3).Value = OS. Células (7, 9).Value
ds. Células (1, 1).Copy
ds. Gama (“B1: xlPasteFormats de C1”) .PasteSpecial
ds. Células (1, 1).ColumnWidth = 15.14
ds. Células (1, 2).ColumnWidth = 18.57
ds. Células (1, 3).ColumnWidth = 10
ds. Células (1, 4).ColumnWidth = 1.29
ds. Células (1, 5).ColumnWidth = 2.29
ds. Células (1, 6).ColumnWidth = 2.29
ds. Células (1, 7).ColumnWidth = 4.43
ds. Células (1, 8).ColumnWidth = 5.57
ds. Células (1, 9).ColumnWidth = 7
j = lRow - 6
fRecord = j
OS. Gama (“A8: ” Y lRow). Copia
ds. xlPasteValues de la gama (“A2”) .PasteSpecial
ds. xlPasteFormats de la gama (“A2”) .PasteSpecial
OS. Gama (“B8: B” y lRow). Copia
ds. xlPasteValues de la gama (“B2”) .PasteSpecial
OS. Gama (“I8: I” y lRow). Copiar el ds. Gama (“C2”)
ds. Gama (“A2: C” y j). Clase Key1: =Range (“A2”), Order1: El =xlDescending, Key2: =Range (“B2”) _
        , Order2: El =xlDescending, jefe: =xlNo, OrderCustom: =1, MatchCase: _ del =False
        , Orientación: =xlTopToBottom, DataOption1: =xlSortNormal, DataOption2: = _
        xlSortNormal


Para i = lRow 8 al paso -1
    ds. Células (j, 4) = hora (ds. Células (j, 3))
    ds. Células (j, 5) = minuto (ds. Células (j, 3))
    ds. Células (j, 6) = en segundo lugar (ds. Células (j, 3))
    Si ds. Células (j, 1) <> ds. Células (j - 1, 1) o ds. Células (j, 2) <> ds. Células (j - 1, 2) entonces
        ds. Células (j, 9).Formula = “=SUM (F” y j y”: F " y fRecord y ")/60”
        ds. Células (j, 8).Formula = “=SUM (E” y j y”: E " y fRecord y ")+I” y j y” /60 "
        ds. Células (j, 7).Formula = “=SUM (D” y j y”: D " y fRecord y ")+H” y j y” /60 "
        ds. Células (j, 3).Formula = “=G” y j y” /24 "
        ds. Células (j, 3).NumberFormat = “h: milímetro”
        fRecord = j - 1
    
        ds. Gama (“A” y j).EntireRow.Hidden = verdad
        ds. Células (j, 3) = ""
    Terminar si
    j = j - 1
Después i
ds. Gama (“D4: I4”) .EntireColumn.Hidden = verdad
Submarino del extremo

NewTimeLine secundario ()
Wb dévil como libro de trabajo
Ds dévil como hoja de trabajo, OS como hoja de trabajo
lRow dévil tan de largo, i como de largo, j como de largo, k como de largo, tCounter como de largo, rCounter como de largo, nCol como de largo
cRange dévil como gama
Fijar wb = ThisWorkbook
Fijar OS = wb. Hojas de trabajo (“resumen”)
Fijar ds = wb. Worksheets.Add (después: =os)
ds. Nombre = “cronología”
ds. Células (1, 1) = “CRONOLOGÍA”
ds. Células (1, 1).Font.Bold = verdad
ds. Células (1, 1).ColumnWidth = 12.57
lRow = OS. Gama (“A65536”). Extremo (xlUp). Fila
tCounter = 2
j = 2
Para i = 2 al lRow
    Si OS. Células (i + 1, 1) <> OS. Células (i, 1) entonces
        ds. Células (j, 1) = OS. Células (i, 1)
        rCounter = tCounter
        Para k = rCounter a i
            Si OS. Células (k, 2) <> OS. Células (k + 1, 2) u OS. Células (k, 1) <> OS. Células (k + 1, 1) entonces
                Fijar el cRange = el ds. Gama (“B1: IV1”). Hallazgo (OS. Células (k, 2))
                Si no el cRange entonces no es nada
                    ds. Células (j, cRange.Column) = OS. Células (rCounter, 3)
                    ds. Células (j, cRange.Column) .NumberFormat = “h: milímetro”
                
                    nCol = ds. Gama (“IV1”). Extremo (xlToLeft). Columna + 1
                    ds. Células (1, nCol) = OS. Células (k, 2)
                    ds. Células (1, nCol). Font.Bold = verdad
                    ds. Células (1, nCol) .ColumnWidth = 11.29
                    ds. Células (j, nCol) = OS. Células (rCounter, 3)
                    ds. Células (j, nCol) .NumberFormat = “h: milímetro”
                Terminar si
                rCounter = k + 1
            Terminar si
        K siguiente
        j = j + 1
        tCounter = i + 1

    Terminar si
Después i
ds. Células (j, 1) = “importes totales”
Para i = 2 al nCol
    ds. Células (j, i). Fórmula = “=Sum (” y ds. Células (2, i). Dirección y “: ” y ds. Células (j - 1, i). Dirección y ")”
Después i
ds. Células (j, nCol + 1).Formula = “=Sum (” y ds. Células (j, 2).Address y “: ” y ds. Células (j, nCol). Dirección y ")”
ds. Gama (ds. Células (j, 1), ds. Células (j, nCol + 1)). Font.Bold = verdad
ds. Gama (ds. Células (j, 1), ds. Células (j, nCol + 1)) .NumberFormat = “[h]: milímetro: ss; @”
ds.UsedRange.HorizontalAlignment = xlCenter
Submarino del extremo
Otras soluciones  
 
programming4us programming4us