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
|
Sub Ajout_feuil()
Dim Liste_classeurs As String, Dossier_du_classeur As String, Chemin_du_classeur As String
Dim Nom_du_classeur As String, Fichier_source As String, Feuil_source As String
Dim Ligne As Long
Ligne = 2 ' Ici on pointe la ligne sur laquelle on démarre la lecture du classeur Liste_Classeurs
Liste_classeurs = "C:\Test\Liste_classeurs.xlsm" 'Chemin du fichier Liste_classeurs.xlsm
Fichier_source = "C:\Test\source.xlsx" 'Pointage du fichier source
Feuil_source = "Feuil1" ' Pointage de la feuille source
Workbooks.Open (Fichier_source) ' Ouverture du fichier source
Workbooks.Open (Liste_classeurs) 'Ouverture du classeur liste des classeurs
While Cells(Ligne, 1) <> "" ' On reboucle jusqu'à lire une ligne vide en colonne 1
Nom_du_classeur = "" 'on efface toute valeur de la variable
Chemin_du_classeur = "" 'on efface toute valeur de la variable
NomClasseur Nom_du_classeur, Dossier_du_classeur, Chemin_du_classeur, Liste_classeurs, Ligne ' Construction du nom et du chemin du classeur cible
Copie Chemin_du_classeur, Fichier_source, Feuil_source, Nom_du_classeur ' Copie de la feuille source dans le classeur cible
Ligne = Ligne + 1 'Ici on incrémente d'une ligne la lecture
Wend
MsgBox "Plus aucune ligne à traiter", vbOKOnly + vbExclamation, "Fin du traitement"
End Sub
Sub NomClasseur(ByRef Nom_du_classeur As String, ByRef Dossier_du_classeur As String, ByRef Chemin_du_classeur As String, ByRef Liste_classeurs As String, ByRef Ligne As Long)
Workbooks.Open (Liste_classeurs) 'Ouverture du classeur liste des classeurs
Nom_du_classeur = Cells(Ligne, 1).Value ' Sélection du classeur cible dans la liste des classeurs
Dossier_du_classeur = Cells(Ligne, 3).Value ' Sélection du chemin du classeur
Chemin_du_classeur = (Dossier_du_classeur & "\" & Nom_du_classeur) ' Création du chemin du classeur avec son nom
End Sub
Sub Copie(ByRef Chemin_du_classeur As String, ByRef Fichier_source As String, ByRef Feuil_source As String, ByRef Nom_du_classeur As String)
Workbooks.Open (Chemin_du_classeur) ' Ouverture du classeur cible
Workbooks(Fichier_source).Sheets(Feuil_source).Copy After:=Workbooks(Nom_du_classeur).Sheets(Sheets.Count) 'On copie la feuille source à ajouter dans le classeur de destination
End Sub |
Partager