Vraag : Nodig de Oplossing van het vba- Rapport van Excel

Blad 1 van .xls in bijlage is een typisch maandelijks standaardrapport. Ik heb code VBA nodig om Blad 2 (Samenvatting) en Blad 3 (Chronologie) per de handvoorbeelden te creëren. Ik zal 500 punten voor een gecodeerde oplossing voor Blad 2 en nog eens 500 voor Blad 3. toekennen
Attachments:
van
Het Rapport van de activiteit met Samenvatting en Timeline

Antwoord : Nodig de Oplossing van het vba- Rapport van Excel

Ondertussen, hier zijn beide oplossingen.



PS. Dankt DropBearMod: -) Sommige oude namen komen langzaam terug naar mening
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:
Sub MakeSummary ()
Schemerige wb als Werkboek
Schemerige ds als Aantekenvel, os als Aantekenvel
Schemerige lRow zoals lang, I zoals lang, zo Lang j, fRecord zoals lang
Vastgesteld wb = ThisWorkbook
Vastgesteld os = wb. Aantekenvellen („UnattendedActivity“)
Reeks ds = wb. Worksheets.Add (na: =os)
ds. Naam = „Samenvatting“
lRow = os. Waaier („A65536“). Eind (xlUp). Rij
os. Cellen (7, 1). Exemplaar ds. Cellen (1, 1)
ds. Cellen (1, 2). Waarde = os. Cellen (7, 2). Waarde
ds. Cellen (1, 3). Waarde = os. Cellen (7, 9). Waarde
ds. Cellen (1, 1). Exemplaar
ds. Waaier („B1: C1“) .PasteSpecial xlPasteFormats
ds. Van cellen (1, 1) .ColumnWidth = 15.14
ds. Van cellen (1, 2) .ColumnWidth = 18.57
ds. Van cellen (1, 3) .ColumnWidth = 10
ds. Van cellen (1, 4) .ColumnWidth = 1.29
ds. Van cellen (1, 5) .ColumnWidth = 2.29
ds. Van cellen (1, 6) .ColumnWidth = 2.29
ds. Van cellen (1, 7) .ColumnWidth = 4.43
ds. Van cellen (1, 8) .ColumnWidth = 5.57
ds. Van cellen (1, 9) .ColumnWidth = 7
j = lRow - 6
fRecord = j
os. Waaier („A8: “ & lRow). Exemplaar
ds. Waaier („A2“) .PasteSpecial xlPasteValues
ds. Waaier („A2“) .PasteSpecial xlPasteFormats
os. Waaier („B8: B“ & lRow). Exemplaar
ds. Waaier („B2“) .PasteSpecial xlPasteValues
os. Waaier („I8: I“ & lRow). Exemplaar ds. Waaier („C2“)
ds. Waaier („A2: C“ & j). Soort Key1: =Range („A2“), Order1: Het =xlDescending, Key2: =Range („B2“) _
        , Order2: Het =xlDescending, Kopbal: =xlNo, OrderCustom: =1, MatchCase: =False _
        , Richtlijn: =xlTopToBottom, DataOption1: =xlSortNormal, DataOption2: = _
        xlSortNormal


Voor I = lRow aan 8 Stap -1
    ds. Cellen (j, 4) = Uur (ds. Cellen (j, 3))
    ds. Cellen (j, 5) = Minuut (ds. Cellen (j, 3))
    ds. Cellen (j, 6) = Seconde (ds. Cellen (j, 3))
    Als ds. Cellen (j, 1) <> ds. Cellen (j - 1, 1) of ds. Cellen (j, 2) <> ds. Cellen (j - 1, 2) Dan
        ds. Cellen (j, 9). Formule = „=SUM (F“ & j &“: F " & fRecord & „) /60“
        ds. Cellen (j, 8). Formule = „=SUM (E“ & j &“: E " & fRecord & „) +I“ & j &“ /60 "
        ds. Cellen (j, 7). Formule = „=SUM (D“ & j &“: D " & fRecord & „) +H“ & j &“ /60 "
        ds. Cellen (j, 3). Formule = „=G“ & j &“ /24 "
        ds. Cellen (j, 3) .NumberFormat = „h: mm“
        fRecord = j - 1
    Anders
        ds. Waaier („A“ & j) .EntireRow.Hidden = Waar
        ds. Cellen (j, 3) = ""
    Eind als
    j = j - 1
Volgende I
ds. Waaier („D4: I4“) .EntireColumn.Hidden = Waar
Sub van het eind

Sub NewTimeLine ()
Schemerige wb als Werkboek
Schemerige ds als Aantekenvel, os als Aantekenvel
Schemerige lRow zoals lang, I zoals lang, j zoals lang, zo Lang k, tCounter zoals lang, rCounter zoals lang, nCol zoals lang
Schemerige cRange als Waaier
Vastgesteld wb = ThisWorkbook
Vastgesteld os = wb. Aantekenvellen („Samenvatting“)
Reeks ds = wb. Worksheets.Add (na: =os)
ds. Naam = „Chronologie“
ds. Cellen (1, 1) = „CHRONOLOGIE“
ds. Cellen (1, 1). Font.Bold = Waar
ds. Van cellen (1, 1) .ColumnWidth = 12.57
lRow = os. Waaier („A65536“). Eind (xlUp). Rij
tCounter = 2
j = 2
Voor I = 2 aan lRow
    Als os. Cellen (I + 1, 1) <> os. Cellen (I, 1) Dan
        ds. Cellen (j, 1) = os. Cellen (I, 1)
        rCounter = tCounter
        Voor k = rCounter aan I
            Als os. Cellen (k, 2) <> os. Cellen (k + 1, 2) of os. Cellen (k, 1) <> os. Cellen (k + 1, 1) Dan
                Reeks cRange = ds. Waaier („B1: IV1“). Vind (os. Cellen (k, 2))
                Als niet cRange dan niets is
                    ds. Cellen (j, cRange.Column) = os. Cellen (rCounter, 3)
                    ds. Cellen (j, cRange.Column) .NumberFormat = „h: mm“
                Anders
                    nCol = ds. Waaier („IV1“). Eind (xlToLeft). Kolom + 1
                    ds. Cellen (1, nCol) = os. Cellen (k, 2)
                    ds. Cellen (1, nCol). Font.Bold = Waar
                    ds. Van cellen (1, nCol) .ColumnWidth = 11.29
                    ds. Cellen (j, nCol) = os. Cellen (rCounter, 3)
                    ds. Cellen (j, nCol) .NumberFormat = „h: mm“
                Eind als
                rCounter = k + 1
            Eind als
        Volgende k
        j = j + 1
        tCounter = I + 1

    Eind als
Volgende I
ds. Cellen (j, 1) = „Totaal generaal“
Voor I = 2 aan nCol
    ds. Cellen (j, I). Formule = „=Sum (“ & ds. Cellen (2, I). Adres & „: “ & ds. Cellen (j - 1, I). Adres & „)“
Volgende I
ds. Cellen (j, nCol + 1). Formule = „=Sum (“ & ds. Cellen (j, 2). Adres & „: “ & ds. Cellen (j, nCol). Adres & „)“
ds. Waaier (ds. Cellen (j, 1), ds. Cellen (j, nCol + 1)). Font.Bold = Waar
ds. Waaier (ds. Cellen (j, 1), ds. Cellen (j, nCol + 1)).NumberFormat = „[h]: mm: ss; @“
ds.UsedRange.HorizontalAlignment = xlCenter
Sub van het eind
Andere oplossingen  
 
programming4us programming4us