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

coller texte VBA sur le module d'une feuille

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 !

aurel2chien

XLDnaute Nouveau
Bonjour bonjour tout le monde

Les utilisateurs de mon fichier doivent importer leur feuille dans mon fichier template.
Quand ils importent cette feuille il n'y a pas de macro derrière cette feuille.

J'ai besoin qu'ils aient le texte suivant:

"Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
ACTV_WORKBOOK = ActiveWorkbook.Name
ACTV_WORKSHEET = ActiveSheet.Name
UserForm1.Show
End Sub"
Ainsi un double clic sur cette feuille va activer un userform.

Je ne veux pas qu'ils copient/collent tout simplement ce texte dans le VBA. Je veux éviter au maximum les intéractions avec VBA.

ma question:
  • comment ajouter ce texte VBA en automatique pour cette feuille
  • est-ce que ce code peut être placé ailleur que dans la feuille qu'ils importent?

Merci pour vos réponses
Belle journée à vous !!!
 
Re : coller texte VBA sur le module d'une feuille

Bonjour,
Explication plutôt lapidaire...
Dans un module du classeur contenant la feuille à exporter (?!)
Code:
Sub Zyva()
Dim texte$, x&
texte = texte & "ACTV_WORKBOOK = ActiveWorkbook.Name" & vbLf
texte = texte & "ACTV_WORKSHEET = ActiveSheet.Name" & vbLf
texte = texte & "UserForm1.Show"

With ActiveWorkbook.VBProject.VBComponents("CodeNamedelaFeuille").CodeModule
    x = .CreateEventProc("BeforeDoubleClick", "WorkSheet")
    .InsertLines x + 1, texte
End With

End Sub
A+
kjin
 
Re : coller texte VBA sur le module d'une feuille

Merci pour ta réponse kjin

au final j'ai utilisé le code suivant dans Thisworbook:

"Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
ACTV_WORKBOOK = ActiveWorkbook.Name
ACTV_WORKSHEET = ActiveSheet.Name

If ACTV_WORKSHEET = "Test Results" Then UserForm1.Show
End Sub
"

Merci bonne fin de journée
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…