Créer une feuille par macro et y intégrer une macro

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

A

Anne

Guest
Hello,

pb : je crée une feuille par macro mais je voudrais ajouter un évènement à cette nouvelle feuille créee dans Worksheet_Calculate.

Est-ce possible ?

Merci beaucoup

Anne

PS : j'ai fait une recherche et trouvé un post qui ressemble à mon problème (auquel il ne semblait pas y avoir de solution) mais je n'en suis pas sûre à 100%
 
Bon, comme tu m'avais l'air assez désemparé, je t'ai fait une macro très simplifiée qui insère une nouvelle feuille dans le classeur et qui, dans la foulée, ajoute à cette feuille une macro Worksheet_Calculate

Sub InsertionLignesDeCode()
'Ti 16-01-03
'pour que cette macro fonctionne, il faut aller dans le menu
'Outils...Références de VBA et cocher la référence :
'"Microsoft Visual Basic For Application Extensibility 5.3"

Dim VBComp As VBComponent, WkBk As Workbook
Dim NomFeuille As String, NomCode As String
'le nom de la nouvelle feuille
NomFeuille = "Feuille Test"
Set WkBk = ThisWorkbook
With WkBk
'on l'insère en dernière position dans cet exemple
With .Worksheets.Add(after:=Sheets(.Worksheets.Count))
.Name = NomFeuille
End With
NomCode = .Worksheets(NomFeuille).CodeName
Set VBComp = .VBProject.VBComponents(NomCode)
End With

With VBComp.CodeModule
.InsertLines .CountOfLines + 1, "Private Sub Worksheet_Calculate()"
'ligne de test (à enlever bien sûr)
.InsertLines .CountOfLines + 1, " msgbox ""essai de Worksheet_calculate"""
'ici les autres lignes de la macro
'.InsertLines .CountOfLines+1, " "
'.InsertLines .CountOfLines+1, " "
.InsertLines .CountOfLines + 1, "end sub"
End With

End Sub
 
J'ai récupéré une solution qui marche :

pour éviter d'avoir trop à écrire, j'ai au préalable crée, dans un module, la fonction (qui s'appelle Recalcule_feuille()) que je veux voir s'éxécuter avec la procédure évènementielle Worksheet_Calculate() et je fais appeler cette fonction par le Worksheet_Calculate() que je crée ci-dessous :


Sub Macro_Qui_Cree_Macro_Nouvelle_Feuille()


Dim ws As Worksheet, s As String
Sheets.Add
ActiveSheet.Name = "Nouvelle Feuille"

Sheets("Nouvelle Feuille").Select

Set ws = ActiveSheet
s = "Private Sub Worksheet_Calculate()" & vbLf _
& "Recalcule_feuille" & vbLf _
& "End Sub"

ThisWorkbook.VBProject.VBComponents(ws.CodeName).CodeModule.AddFromString (s)


End Sub
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour