Simplification de code

criscris11

XLDnaute Accro
Bonjour à tous,
Il y a quelque temps j'avais enregistré ce code avec l'enregistreur de macros.
Y a t'il moyen de simplifier ce code ?
Pour résumer ce code sert à recopier les formats et formules de la ligne située au dessus lors de l'insertion d'une nouvelle ligne dans les onglets dont les noms se trouvent dans la macro :

Sub recopieformules()
'
' recopieformules Macro
' Macro enregistrée le 28/11/2005 par Utilisateur1
'

Application.ScreenUpdating = False
Application.Run "'Matrice BDD BCL.xls'!saisieetatmilitaire"
Selection.FillDown
Selection.SpecialCells(xlCellTypeConstants, 23).Select
Selection.ClearContents
Application.Run "'Matrice BDD BCL.xls'!saisieetatcivil"
Selection.FillDown
Selection.SpecialCells(xlCellTypeConstants, 23).Select
Selection.ClearContents
Application.Run "'Matrice BDD BCL.xls'!saisiediplomesetstages"
Selection.FillDown
Selection.SpecialCells(xlCellTypeConstants, 23).Select
Selection.ClearContents
Application.Run "'Matrice BDD BCL.xls'!saisiepermis"
Selection.FillDown
Selection.SpecialCells(xlCellTypeConstants, 23).Select
Selection.ClearContents
Application.Run "'Matrice BDD BCL.xls'!saisiecontratpasseport"
Selection.FillDown
Selection.SpecialCells(xlCellTypeConstants, 23).Select
Selection.ClearContents
Application.Run "'Matrice BDD BCL.xls'!saisietresorerie"
Selection.FillDown
Selection.SpecialCells(xlCellTypeConstants, 23).Select
Selection.ClearContents
Application.Run "'Matrice BDD BCL.xls'!saisiesante"
Selection.FillDown
Selection.SpecialCells(xlCellTypeConstants, 23).Select
Selection.ClearContents
Application.Run "'Matrice BDD BCL.xls'!saisiechancellerie"
Selection.FillDown
Selection.SpecialCells(xlCellTypeConstants, 23).Select
Selection.ClearContents
Application.Run "'Matrice BDD BCL.xls'!saisiepermissions"
Selection.FillDown
Selection.SpecialCells(xlCellTypeConstants, 23).Select
Selection.ClearContents
Application.Run "'Matrice BDD BCL.xls'!saisienotationorientation"
Selection.FillDown
Selection.SpecialCells(xlCellTypeConstants, 23).Select
Selection.ClearContents
Application.Run "'Matrice BDD BCL.xls'!COVAPI"
Selection.FillDown
Selection.SpecialCells(xlCellTypeConstants, 23).Select
Selection.ClearContents
Sheets(Array("ETAT MILIT", "ETAT CIVIL", "DIP ET STG", "PERMIS", _
"CONTRAT PASSEPORT", "TRESO", "SANTE", "CHANC", "PERMS", "NOT. ORIENTATIONS", "COVAPI")). _
Select
Sheets("ETAT MILIT").Activate
Application.ScreenUpdating = True
End Sub

Merci d'avance pour vos suggestions.
Bon dimanche.
 

Spitnolan08

XLDnaute Barbatruc
Re : Simplification de code

Bonjour CrisCris,

Si j'ai compris la question, Essaye peut être un truc du genre (Non testé) :
Code:
Sub recopieformules()
Dim i As Byte
Dim MyArray()
MyArray = Array("'Matrice BDD BCL.xls'!saisieetatmilitaire", "'Matrice BDD BCL.xls'!saisieetatcivil", "'Matrice BDD BCL.xls'!saisiediplomesetstages", "'Matrice BDD BCL.xls'!saisiepermis", "'Matrice BDD BCL.xls'!saisiecontratpasseport", "'Matrice BDD BCL.xls'!saisietresorerie", "'Matrice BDD BCL.xls'!saisiesante", "'Matrice BDD BCL.xls'!saisiechancellerie", "'Matrice BDD BCL.xls'!saisiepermissions", "'Matrice BDD BCL.xls'!saisienotationorientation", "'Matrice BDD BCL.xls'!COVAPI")
For i = 0 To UBound(MyArray, 1)
    Application.Run MyArray(i)
    Selection.FillDown
    Selection.SpecialCells(xlCellTypeConstants, 23).Select
    Selection.ClearContents
Next
    Sheets(Array("ETAT MILIT", "ETAT CIVIL", "DIP ET STG", "PERMIS", _
    "CONTRAT PASSEPORT", "TRESO", "SANTE", "CHANC", "PERMS", "NOT. ORIENTATIONS", "COVAPI")). _
    Select
    Sheets("ETAT MILIT").Activate
Application.ScreenUpdating = True
End Sub
Cordialement
 
Dernière édition:

criscris11

XLDnaute Accro
Re : Simplification de code

Bonsoir Spit,
Content de te retrouver sur le forum. Merci pour le code qui a l'air de fonctionner comme le mien mais qui a l'avantage d'être beaucoup plus court et moins "usine à gaz".
J'ai oublié de préciser une chose mais je pense que cela n'aura pas d'influence : peut il y avoir des incompatibilités avec Excel 97 ?
Dans le cas où la réponse serait négative, c'est tout bénéf.
Merci pour la simplification et bonne soirée.
 

Discussions similaires

Statistiques des forums

Discussions
314 073
Messages
2 105 354
Membres
109 336
dernier inscrit
JBL_18