Lien entre macro
P
Bonjour,
Je n’arrive pas à lier les macros…
Dans l’excel ci-joint le bouton dossier permet de sélectionner un dossier en particulier dans le répertoire. Le lien du dossier s’inscrit en cellule B6.
Ce que je n’arrive pas à faire c’est appliquer le code ci-dessous à tous les fichiers Excel du dossier sélectionner en B6. J’ai créer un bouton démarrer qui doit normalement permettre d’aller chercher le lien en B6 et appliquer le code ci-dessous.
Sub CopieDonnees()
Application.DisplayAlerts = False
Range("C353:BV383").Copy Range("C8:BW38")
Range("C353:BV383").Copy Range("C40:BW67")
Range("C353:BV383").Copy Range("C69:BW99")
Range("C353:BV383").Copy Range("C101:BW130")
Range("C353:BV383").Copy Range("C132:BW162")
Range("C353:BV383").Copy Range("C164:BW193")
Range("C353:BV383").Copy Range("C195:BW225")
Range("C353:BV383").Copy Range("C227:BW257")
Range("C353:BV383").Copy Range("C259:BW289")
Range("C353:BV383").Copy Range("C290:BW320")
Range("C384:BV384").Copy Range("C321:BW321")
Range("C384:BV384").Copy Range("C258:BW258")
Range("C384:BV384").Copy Range("C226:BW226")
Range("C384:BV384").Copy Range("C163:BW163")
Range("C384:BV384").Copy Range("C100:BW100")
Range("C384:BV384").Copy Range("C39:BW39")
Range("C352:BV384").Copy Range("C289:BW289")
Range("C352:BV384").Copy Range("C194:BW194")
Range("C352:BV384").Copy Range("C131:BW131")
Application.DisplayAlerts = True
End SubPouvez vous m’aider ?
Merci beaucoup !!!!
E
Bonjour,
Il vous faut indiquer à quel onglet se réfèrent vos cellules. Pour cela, il vous faut instancier une variable Worksheet et rendre paramétrique la procédure Copie_Donnees. A vérifier que l'onglet à mettre à jour est bien l'onglet 1 dans le code.
Sub Traiter_Dossier()
Dim LigneTraitement As Integer
Dim DossierEnCours As String, FichierEnCours As String
Dim WbEnCours As Workbook
Dim ShTraitement As Worksheet, ShEnCours As Worksheet
On Error GoTo Fin
Application.DisplayAlerts = False
Set ShTraitement = Sheets("Traitement")
With ShTraitement
DossierEnCours = .Range("B6").Value
LigneTraitement = 6
FichierEnCours = Dir(DossierEnCours & "\*.xls*")
End With
Do While FichierEnCours <> ""
Set WbEnCours = Workbooks.Open(DossierEnCours & "\" & FichierEnCours)
Set ShEnCours = WbEnCours.Sheets(1)
CopieDonnees ShEnCours
With ShTraitement
.Cells(LigneTraitement, 7).Value = FichierEnCours
.Hyperlinks.Add Anchor:=.Cells(LigneTraitement, 8), Address:=DossierEnCours & "\" & FichierEnCours, TextToDisplay:=FichierEnCours
.Cells(LigneTraitement, 9).Value = "Ok"
LigneTraitement = LigneTraitement + 1
End With
WbEnCours.Close savechanges:=True
Set WbEnCours = Nothing: Set ShEnCours = Nothing
FichierEnCours = Dir()
Loop
Application.DisplayAlerts = True
MsgBox "Fin de traitement !", vbInformation
GoTo Fin
Fin:
Application.DisplayAlerts = True
Set ShTraitement = Nothing
Set WbEnCours = Nothing: Set ShEnCours = Nothing
End Sub
Sub CopieDonnees(ByVal ShEnCours2 As Worksheet)
With ShEnCours2
.Range("C353:BV383").Copy .Range("C8")
.Range("C353:BV383").Copy .Range("C40")
.Range("C353:BV383").Copy .Range("C69")
.Range("C353:BV383").Copy .Range("C101")
.Range("C353:BV383").Copy .Range("C132")
.Range("C353:BV383").Copy .Range("C164")
.Range("C353:BV383").Copy .Range("C195")
.Range("C353:BV383").Copy .Range("C227")
.Range("C353:BV383").Copy .Range("C259")
.Range("C353:BV383").Copy .Range("C290")
.Range("C384:BV384").Copy .Range("C321")
.Range("C384:BV384").Copy .Range("C258")
.Range("C384:BV384").Copy .Range("C226")
.Range("C384:BV384").Copy .Range("C163")
.Range("C384:BV384").Copy .Range("C100")
.Range("C384:BV384").Copy .Range("C39") ' ?
.Range("C352:BV384").Copy .Range("C289")
.Range("C352:BV384").Copy .Range("C194")
.Range("C352:BV384").Copy .Range("C131")
End With
End Sub