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
|
Sub ScoreFichier()
'
'*** Déclarations ***
Dim Chemin, Fichier As String
Dim MessageCible, TitreMessageCible As String
Dim RéponseMessageSuite, MessageSuite, TitreMessageSuite As String
Dim CheminBdd, NomFichierBdd, Sauvegarde, ChampCopié As String
Dim MessageSauvegarde, TitreMessageSauvegarde As String
Dim Enregistrements As Long
Dim Wb As Workbook
'
'*** Affections de valeurs ***
'
MessageCible = "Saisir le chemin du répertoire ou dossier à traiter"
TitreMessageCible = "Adresse du répertoire cible"
'
MessageSuite = "Souhaitez-vous continuer avec un autre répertoire ou dossier ? Répondre par 'O' ou 'N'"
TitreMessageSuite = "Choisir un autre dossier ?"
'
MessageSauvegarde = "Saisir le chemin du répertoire où seront stockés les fichiers traités"
TitreMessageSauvegarde = "Adresse du répertoire de sauvegarde"
'
'*** Début de programme ***
'
Reprise:
'
Chemin = InputBox(MessageCible, TitreMessageCible) & "\"
CheminBdd = InputBox(MessageSauvegarde, TitreMessageSauvegarde) & "\"
Fichier = Dir(Chemin & "*.xls")
'
Do While Fichier <> ""
Set Wb = Workbooks.Open(Chemin & Fichier)
NomFichierBdd = Wb.Name & "Bdd"
Sauvegarde = CheminBdd & NomFichierBdd & ".xls"
'Duplication de la feuille de base
Workbooks("TraitementScore.xls").Activate
Sheets("Base").Copy After:=Sheets(1)
Sheets("Base (2)").Select
Sheets("Base (2)").Name = "Données"
'
' Copie de données de la source
Wb.Activate
Enregistrements = Wb.Sheets("Archives").Range("GU1").Value
ChampCopié = "A2:GR" & Enregistrements
Range(ChampCopié).Select
Selection.Copy
'
'Collage des données dans la cible
Workbooks("TraitementScore.xls").Activate
Sheets("Données").Select
Range("A2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A1").Select
Sheets("Données").Select
Sheets("Données").Move
ActiveWorkbook.SaveAs Filename:=Sauvegarde, _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWorkbook.Close
Wb.Activate
Wb.Close True
Set Wb = Nothing
Fichier = Dir
Loop
'
RéponseMessageSuite = InputBox(MessageSuite, TitreMessageSuite)
If RéponseMessageSuite = LCase("o") Then GoTo Reprise Else GoTo Fermeture
'
Fermeture:
'
Workbooks("TraitementScore.xls").Activate
Sheets("Base").Select
Range("A1").Select
ActiveWorkbook.Save
ActiveWorkbook.Close
'
End Sub |
Partager