Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Macro pour insérer une macro!

  • Initiateur de la discussion Initiateur de la discussion Seb
  • 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 !

Seb

XLDnaute Occasionnel
Bonjour le forum,


J'ai un fichier qui me permet de créer d'autre fichier Excel avec des données. Jusque la tout va bien. Mais dans les nouveaux fichier qui sont crées, j'aimerais ajouter un bout de macro. A savoir que les nouveaux fichier n'ont pas besoin d'être enregistré.

Il me semble que je l'avais déjà fait pour un module mais je ne me souvient plus du tout et je Bugue dessus depuis plusieurs jours.
Voila la structure de mon code et celui que je veux ajouter dans "ThisWorkbook"

Sub ValeurUtiles
.....
Set wkb = Workbooks.Add
wkb.Activate

....
end sub

Je voudrais que dans le nouveau fichier Excel qui est crée, ajouter ce code dans "ThisWorkbook"

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
Dim i As Long, Dl As Long, Valeur As String
Dl = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
Set mondico = CreateObject("Scripting.Dictionary")
For i = 5 To Dl
If Rows(i).EntireRow.Hidden = False Then
mondico(ActiveSheet.Cells(i, "B").Value) = ""
End If
Next i
a = mondico.keys
For i = LBound(a) To UBound(a)
If Valeur <> "" Then
Valeur = Valeur & " #" & a(i)
Else
Valeur = "#" & a(i)
End If
Next i
ActiveSheet.Range("L1") = Valeur
Set mondico = Nothing
End Sub

Je ne sais pas du tout comment m'y prendre.
Merci pour le coup de main !

Seb
 
Bonjour.
Déclarez dans votre ThisWorkbook une Private WithEvents Wbk As Workbook
Ça vous permettrait d'y rendre opérationnelle une Private Sub Wbk_SheetCalculate depuis le classeur qui le crée.
 
Bonjour le fil

Seb
Tu peux aussi peut-être voir du côté de : AddFromString
Faire une recherche sur le forum avec ce mot-clé
(tu peux également g..gler ce mot-clé)
 
Dernière édition:
Pardon, je me suis mal exprimer.

Le fichier de base est utilisé pour plusieurs service qui creer son fichier. Il ferme le fichier source (Celui qui creer le fichier de données utiles). D'autre service utilise ce fichier source.
 
Mais une fois le fichier de données utiles créé, la _SheetCalculate est elle encore nécessaire ?
Si oui le plus simple serait probablement de copier une feuille vierge munie d'une Private Sub Worksheet_Calculate
 
Re

Voici un petit exemple
(pour tester en l'état, tu dois avoir deux classeurs ouverts dans Excel
dont un se nomme Classeur2
VB:
Sub Test_VBA()
Dim vLigCod(2), vStr$
vLigCod(0) = "Private Sub Workbook_Open"
vLigCod(1) = "MsgBox ""Bonjour,"" & Application.UserName"
vLigCod(2) = "End Sub"
vStr = Join(vLigCod, Chr(10))
Workbooks("Classeur2").VBProject.VBComponents("ThisWorkBook").CodeModule.AddFromString vStr
End Sub
Tu mets ce code dans le premier classeur
Tu verras qu'ensuite tu auras une procédure Workbook_Open du classeur2
NB: Ce n'est qu'un test sur un classeur ouvert et non enregistré, il faudra adapter si il s'agit d'un classeur fermé qu'il faudra ouvrir (par VBA) au préalable

PS: Il faut cocher dans les paramètres macro: [X] Accès approuvé au modèle d'objet du projet VBA
(Options/Centre de gestion de la confidentialité/Paramètres macros)
 
On dirait que c'est pile poil ce que j'ai besoin. Je teste immédiatement.
 
- 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

Réponses
10
Affichages
281
Réponses
4
Affichages
177
Réponses
5
Affichages
182
Réponses
8
Affichages
466
Réponses
5
Affichages
232
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…