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
| Option Explicit
Sub maj()
'Set les variables
Dim oRng As Range
Dim oWksh As Worksheet
'Avec la feuille "DTB WORLD"
With Worksheets("DTB WORLD")
'set "oRng" sur la dernière ligne non vide de la colonne 1
Set oRng = .Cells(Rows.Count, 1).End(xlUp)
'de la ligne 2 à la ligne de "oRng" -1 (c'est-à-dire l'avant-dernière ligne) on supprime toutes les lignes
.Rows("2:" & oRng.Offset(-1, 0).Row).Delete
End With
'Pour chaque onglet du classeur
For Each oWksh In Worksheets
'Si son nom et différent de "DTB WORLD" et que cet onglet a en "A1" la valeur "N° AO" alors...
If oWksh.Name <> "DTB WORLD" And oWksh.Range("A1") = "N° AO" Then
'... on utilise cet onglet.
With oWksh
'On set oRng sur la dernière ligne non-vide de la colonne 1
Set oRng = .Cells(Rows.Count, 1).End(xlUp)
'on copie de la ligne 2 à l'avant-dernière ligne
.Rows("2:" & oRng.Row - 1).Copy
'et on colle en insérant dans l'onglet "DTB WORLD"
Worksheets("DTB WORLD").Rows("2:" & oRng.Row - 1).Insert Shift:=xlDown
End With
End If
Next oWksh
'Avec l'onglet "DTB WORLD"
With Worksheets("DTB WORLD")
'On cherche la dernière ligne non-vide de la colonne 7.
Set oRng = .Cells(Rows.Count, 7).End(xlUp)
'et on réinsère les formules (qui ont disparues lors de la suppression initiale)
oRng.FormulaLocal = "=SOMME(G2:G" & oRng.Row - 1 & ")"
oRng.Offset(0, 1).FormulaLocal = "=SOMME(H2:H" & oRng.Row - 1 & ")"
oRng.Offset(0, 2).FormulaLocal = "=SOMME(I2:I" & oRng.Row - 1 & ")"
End With
End Sub |
Partager