coller texte VBA sur le module d'une feuille

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 !!!
 

kjin

XLDnaute Barbatruc
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
 

aurel2chien

XLDnaute Nouveau
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
 

Statistiques des forums

Discussions
312 500
Messages
2 089 010
Membres
104 004
dernier inscrit
mista