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
| Private Sub Consol_Click()
Dim awbk As Workbook, wbk As Workbook
Dim sht As Worksheet, ws As Worksheet
Dim Chemin As String, Fichier As String
Dim i As Long, LastLig As Long
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set awbk = ThisWorkbook 'Le fichier Final
Set sht = awbk.Sheets("Conso") 'sht la feuille Conso
Chemin = awbk.Path & "\" 'Le dossier des fichiers formulaire et du fichier final
Fichier = Dir(Chemin & "*.xls") 'Les fichier excel de ce dossier
Do While Len(Fichier) > 0
If Fichier <> awbk.Name Then 'Pour passer le fichier Final
Set wbk = Workbooks.Open(Chemin & Fichier) 'On ouvre le fichier formulaire
For Each ws In awbk.Worksheets 'Teste si la feuille du fichier formulaire est déjà existant
If ws.Name = Left(wbk.Name, Len(wbk.Name) - 4) Then
ws.Delete 'Si elle existe, elle sera supprimée
Exit For
End If
Next ws
wbk.Sheets("Feuil1").Copy After:=awbk.Sheets(awbk.Sheets.Count) 'On copie la feuil1 dans notre fichier final
ActiveSheet.Name = Left(wbk.Name, Len(wbk.Name) - 4) 'On renomme la feuille
wbk.Close 'On ferme le fichier formulaire
Set wbk = Nothing
End If
Fichier = Dir() 'On passe au fichier formulaire suivant
Loop
sht.Select
LastLig = sht.Range("A65536").End(xlUp).Row
'On boucle sur les feuilles importée et on insère la moyenne (les N/A ne sont pas pris en considération)
For i = 1 To LastLig Step 2
sht.Range("B" & i).Formula = "=average('" & Sheets(2).Name & ":" & Sheets(Sheets.Count).Name & "'!B" & i & ")"
Next i
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub |
Partager