Question : La solution de compte rendu succinct d'Excel VBA a eu besoin

La feuille 1 du .xls joint est un rapport mensuel typique de défaut. J'ai besoin du code de VBA pour créer la feuille 2 (résumé) et pour couvrir 3 (chronologie) par exemples manuels. J'attribuerai 500 points pour une solution codée pour la feuille des 2 et des 500 différents pour la feuille 3. class= " lastRow de
>Attachments de " nom " de class= de
class= " valeur " de
>

class= " fileInfo " de
le title= " de " nom de fichier de class= " de Rapport--071410-081910-.xls le class= (61 KBS)  Javascript de href= " de " attachmentDetails de class= " de (type de dossier détails)  
class= " description " de
Rapport d'activité avec le résumé et le Timeline
le class= de
de >
class= de

Réponse : La solution de compte rendu succinct d'Excel VBA a eu besoin

En attendant, voici les deux solutions.



Picoseconde. Merci DropBearMod : -) quelques vieux noms viennent lentement de nouveau à l'esprit
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 secondaire ()
Faible wb comme cahier de travail
Faible ds comme feuille de travail, OS comme feuille de travail
Faible lRow aussi longtemps, I que longtemps, j en tant que longtemps, fRecord en tant que longtemps
Placer wb = ThisWorkbook
Placer OS = wb. Feuilles de travail (« UnattendedActivity »)
Placer ds = wb. Worksheets.Add (ensuite : =os)
ds. Nom = « résumé »
lRow = OS. Gamme (« A65536 »). Extrémité (xlUp). Rangée
OS. Cellules (7, 1).Copy ds. Cellules (1, 1)
ds. Cellules (1, 2).Value = OS. Cellules (7, 2).Value
ds. Cellules (1, 3).Value = OS. Cellules (7, 9).Value
ds. Cellules (1, 1).Copy
ds. Gamme (« B1 : xlPasteFormats de C1 ») .PasteSpecial
ds. Cellules (1, 1).ColumnWidth = 15.14
ds. Cellules (1, 2).ColumnWidth = 18.57
ds. Cellules (1, 3).ColumnWidth = 10
ds. Cellules (1, 4).ColumnWidth = 1.29
ds. Cellules (1, 5).ColumnWidth = 2.29
ds. Cellules (1, 6).ColumnWidth = 2.29
ds. Cellules (1, 7).ColumnWidth = 4.43
ds. Cellules (1, 8).ColumnWidth = 5.57
ds. Cellules (1, 9).ColumnWidth = 7
j = lRow - 6
fRecord = j
OS. Gamme (« A8 :  » Et lRow). Copie
ds. xlPasteValues de la gamme (« A2 ») .PasteSpecial
ds. xlPasteFormats de la gamme (« A2 ») .PasteSpecial
OS. Gamme (« B8 : B » et lRow). Copie
ds. xlPasteValues de la gamme (« B2 ») .PasteSpecial
OS. Gamme (« I8 : I » et lRow). Copier le ds. Gamme (« C2 »)
ds. Gamme (« A2 : C » et j). Sorte Key1 : =Range (« A2 »), Order1 : =xlDescending, Key2 : =Range (« B2 ») _
        , Order2 : =xlDescending, en-tête : =xlNo, OrderCustom : =1, MatchCase : _ de =False
        , Orientation : =xlTopToBottom, DataOption1 : =xlSortNormal, DataOption2 : = _
        xlSortNormal


Pour I = lRow 8 à l'étape -1
    ds. Cellules (j, 4) = heure (ds. Cellules (j, 3))
    ds. Cellules (j, 5) = minute (ds. Cellules (j, 3))
    ds. Cellules (j, 6) = en second lieu (ds. Cellules (j, 3))
    Si ds. Cellules (j, 1) <> ds. Cellules (j - 1, 1) ou ds. Cellules (j, 2) <> ds. Cellules (j - 1, 2) puis
        ds. Cellules (j, 9).Formula = « =SUM (F » et j et » : F " et fRecord et ")/60 »
        ds. Cellules (j, 8).Formula = « =SUM (E » et j et » : E " et fRecord et ")+I » et j et » /60 "
        ds. Cellules (j, 7).Formula = « =SUM (D » et j et » : D " et fRecord et ")+H » et j et » /60 "
        ds. Cellules (j, 3).Formula = « =G » et j et » /24 "
        ds. Cellules (j, 3).NumberFormat = « h : millimètre »
        fRecord = j - 1
    Autrement
        ds. Gamme (« A » et j).EntireRow.Hidden = rectifient
        ds. Cellules (j, 3) = ""
    Finir si
    j = j - 1
Après i
ds. Gamme (« D4 : I4 ») .EntireColumn.Hidden = rectifient
Sous-marin d'extrémité

NewTimeLine secondaire ()
Faible wb comme cahier de travail
Faible ds comme feuille de travail, OS comme feuille de travail
Faible lRow aussi longtemps, I que longtemps, j en tant que longtemps, k en tant que longtemps, tCounter en tant que longtemps, rCounter en tant que longtemps, nCol en tant que longtemps
Faible cRange comme gamme
Placer wb = ThisWorkbook
Placer OS = wb. Feuilles de travail (« résumé »)
Placer ds = wb. Worksheets.Add (ensuite : =os)
ds. Nom = « chronologie »
ds. Cellules (1, 1) = « CHRONOLOGIE »
ds. Cellules (1, 1).Font.Bold = rectifient
ds. Cellules (1, 1).ColumnWidth = 12.57
lRow = OS. Gamme (« A65536 »). Extrémité (xlUp). Rangée
tCounter = 2
j = 2
Pour I = 2 au lRow
    Si OS. Cellules (I + 1, 1) <> OS. Cellules (I, 1) puis
        ds. Cellules (j, 1) = OS. Cellules (I, 1)
        rCounter = tCounter
        Pour k = rCounter à I
            Si OS. Cellules (k, 2) <> OS. Cellules (k + 1, 2) ou OS. Cellules (k, 1) <> OS. Cellules (k + 1, 1) puis
                Placer le cRange = le ds. Gamme (« B1 : IV1 »). Trouvaille (OS. Cellules (k, 2))
                Sinon le cRange n'est rien alors
                    ds. Cellules (j, cRange.Column) = OS. Cellules (rCounter, 3)
                    ds. Cellules (j, cRange.Column) .NumberFormat = « h : millimètre »
                Autrement
                    nCol = ds. Gamme (« IV1 »). Extrémité (xlToLeft). Colonne + 1
                    ds. Cellules (1, nCol) = OS. Cellules (k, 2)
                    ds. Cellules (1, nCol). Font.Bold = rectifient
                    ds. Cellules (1, nCol) .ColumnWidth = 11.29
                    ds. Cellules (j, nCol) = OS. Cellules (rCounter, 3)
                    ds. Cellules (j, nCol) .NumberFormat = « h : millimètre »
                Finir si
                rCounter = k + 1
            Finir si
        Prochain k
        j = j + 1
        tCounter = I + 1

    Finir si
Après i
ds. Cellules (j, 1) = « totaux généraux »
Pour I = 2 au nCol
    ds. Cellules (j, i). Formule = « =Sum ( » et ds. Cellules (2, i). Adresse et « :  » et ds. Cellules (j - 1, i). Adresse et ") »
Après i
ds. Cellules (j, nCol + 1).Formula = « =Sum ( » et ds. Cellules (j, 2).Address et « :  » et ds. Cellules (j, nCol). Adresse et ") »
ds. Gamme (ds. Cellules (j, 1), ds. Cellules (j, nCol + 1)). Font.Bold = rectifient
ds. Gamme (ds. Cellules (j, 1), ds. Cellules (j, nCol + 1)) .NumberFormat = « [h] : millimètre : solides solubles ; @ »
ds.UsedRange.HorizontalAlignment = xlCenter
Sous-marin d'extrémité
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us