Exporter une macro vers d'autres classeurs

  • Initiateur de la discussion Initiateur de la discussion Arpette
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Arpette

XLDnaute Impliqué
Bonjours à toures et à tous,
j'ai une macro dans ThisWorkbook, qui s'exécute à l'ouverture du classeur. J'aimerais savoir si il est possible de l'exporter vers tous les fichiers d'un dossier.
Merci de votre aide.
@+

Code:
Private Sub workbook_open()
Dim DateDepart As Date
Dim J As Integer
Dim m As String
Dim Number As Integer
Dim bx As Long
bx = MsgBox("Veux-tu changer la date", vbYesNo)
If (bx = 6) Then
    Else
    Exit Sub
End If
J = Format(Date, "d", today)
Cells(45, 9) = Format(Date, "dd-mmmm-yyyy")
DateDepart = DateSerial(Year(Date), Month(Date) + 12, J)
Cells(46, 23) = Format(DateDepart, "dd-mmmm-yyyy")
Sheets("Page 2").Select
Cells(4, 12) = Format(Date, "dd-mmmm-yyyy")
Sheets("Page 5").Select
Cells(4, 12) = Format(Date, "dd-mmmm-yyyy")
Sheets("Page 1").Select
Cells(35, 11).Select
End Sub
 
Re : Exporter une macro vers d'autres classeurs

Bonjour et merci à vous deux, j'ai regardé, mais je ne gagne pas de temps, puisqu'il faut que les classeurs de destination soient ouverts. Est-ce le bon exemple ?
Merci d'avance.
@+

Code:
'Nécessite d'activer la référence "Microsoft Visual Basic for Applications Extensibility 5.3"
Dim Wb As Workbook
Dim oModule As CodeModule
Dim VbComp As VBComponent
Dim x As Integer
Dim Cible As String

Cible = "NomModule"
'Définit le classeur de destination (qui doit être préalablement ouvert).
Set Wb = Workbooks("NomClasseur.xls")

'Charge le module dans le classeur
Set VbComp = Wb.VBProject.VBComponents.Import("C:\ThisWorkbook.cls")
'Le renomme (pour le supprimer plus facilement ultérieurement
VbComp.Name = Cible

Set oModule = VbComp.CodeModule

'Transfère les données chargées dans ThisWorkbook.
'Attention les données existantes dans "ThisWorkbook" sont écrasées.
With Wb.VBProject.VBComponents("ThisWorkbook").CodeModule
    x = .CountOfLines
    .DeleteLines 1, x
    .InsertLines 1, oModule.Lines(1, oModule.CountOfLines)
End With

'Suppression du module précédemment chargé
With Wb.VBProject.VBComponents
    .Remove .Item(Cible)
End With
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Problème macro
Réponses
4
Affichages
433
Réponses
15
Affichages
788
Réponses
5
Affichages
914
Réponses
2
Affichages
411
Réponses
10
Affichages
792
Retour