OVH Cloud OVH Cloud

saisie d'une macro en VB lors de la création d'une nouvelle feuille

12 réponses
Avatar
FRVN
Bonjour =E0 tous,

J'ai encore une question. J'ai une application qui cr=E9=E9=20
et d=E9truit des feuilles de calcul. Lors de la cr=E9ation,=20
je souhaite lui affect=E9 du code pour Worksheet_Activate()=20
et Worksheet_Deactivate() afin d'afficher ou non=20
certaines barres d'outils en fonction du nom de la=20
feuille. Le code en lui m=EAme ne me pose pas de probl=E8me=20
mais c'est la saisie du code =E0 la cr=E9ation de la feuille=20
que je n'ai pas trouv=E9. J'ai bien trouv=E9 un site avec=20
l'ajout d'un module lors de la cr=E9ation d'un classeur=20
(merci J@C) mais pas pour mon cas particulier.

Merci =E0 tous pour votre aide

FRVN

2 réponses

1 2
Avatar
FRVN
Re (Et c'est la dernière fois)

Je te remercie pour ton aide, cela fonctionne
parfaitement.

Encore merci

a bientot

frvn


-----Message d'origine-----
Ah ben non ça ne peut pas marcher, il faut utiliser le
CodeName de la

feuille pour que cela fonctionne.
Donc il faut modifier avec quelque chose comme ça :
With ActiveWorkbook.VBProject.VBComponents(Worksheets
("Tri").CodeName)


Cordialement
Pascal

"FRVN" a écrit
dans le message de

news:4de401c473de$7301ac80$
Re

Merci mais meme avec
ActiveWorkbook.VBProject.VBComponents

("Tri")

il ne veut pas. Dés lors que je lui spécifie un nom, il
refuse. ça fonctionne chez toi ?

Désolé encore pour le dérangement

FRVN
-----Message d'origine-----
With ActiveWorkbook.VBProject.VBComponents(Tri)
il faut ajouter les guillemets "" soit donc

With ActiveWorkbook.VBProject.VBComponents("Tri")

Cordialement
Pascal

"FRVN" a écrit
dans le message de

news:4e3d01c473db$330c6960$
rebonjour,


Merci pour tes réponses.
Je dois etre vraiment pas bon car meme avec ça, je n'y
arrive pas. voici le code complet de test :

Sub create()

Dim DebLigne As Long

On Error Resume Next
x = Sheets("Tri").[A1]
If Err.Number <> 0 Then
Sheets.Add Type:=xlWorksheet, before:¬tiveSheet
ActiveSheet.Name = "Tri"
End If

With ActiveWorkbook.VBProject.VBComponents
(Tri).CodeModule

DebLigne = .CreateEventProc("Activate", "Worksheet")
+ 1
.InsertLines DebLigne, "Msgbox ""Je viens d'être
créé"",vbOkOnly"
.InsertLines DebLigne + 1, "Msgbox ""Ca
marche ?"",vbOkOnly"
End With

End Sub

Si j'utilise que ton code : pas de problème. Si je ne
nomme pas la feuille avant : pas de problème mais dès
lors que je donne un nom : c'est foutu, il ne fait plus
rien. Désolé ! peux tu vérifier mon module ?

Merci d'avance et désolé de t'embeter encore

FRVN

-----Message d'origine-----
re
Dim DebLigne As Long
With ActiveWorkbook.VBProject.VBComponents
(ActiveSheet.Name).CodeModule

DebLigne = .CreateEventProc
("Activate", "Worksheet")



+ 1
.InsertLines DebLigne, "Msgbox ""Je viens d'être
créé"",vbOkOnly"

.InsertLines DebLigne + 1, "Msgbox ""Ca
marche ?"",vbOkOnly"

End With

Cordialement
Pascal

"frvn" a écrit
dans le message de

news:4d0e01c473d1$85330910$
Bonjour Pascal

là je ne vois pas trop, je vais essayer d'etre plus
clair, j'ai le code suivant pour créer une feuille
Sheets.Add Type:=xlWorksheet, before:=Sheets("Questions
niv 1")
ActiveSheet.Name = "Tri"
Je voudrai lui indiquer en VB lors de la création :
un Worksheet_Activate() et un Worksheet_Deactivate()
avec


certaines lignes de code

J'espère avoir été clair
Merci pour les réponses.

frvn


-----Message d'origine-----
Bonjour
Si j'ai bien compris ?
Voir l'évènement Workbook_NewSheet
Cordialement
Pascal

"FRVN" a écrit
dans le message de

news:4d7701c473cf$358bdec0$
Bonjour à tous,

J'ai encore une question. J'ai une application qui
créé




et détruit des feuilles de calcul. Lors de la
création,




je souhaite lui affecté du code pour
Worksheet_Activate




()
et Worksheet_Deactivate() afin d'afficher ou non
certaines barres d'outils en fonction du nom de la
feuille. Le code en lui même ne me pose pas de
problème




mais c'est la saisie du code à la création de la
feuille



que je n'ai pas trouvé. J'ai bien trouvé un site avec
l'ajout d'un module lors de la création d'un classeur
(merci ) mais pas pour mon cas particulier.

Merci à tous pour votre aide

FRVN


.




.




.




.






Avatar
papou
Bonjour
Ca fonctionne avec VBE fermé pour ma part (avec Excel 2003).
Cordialement
Pascal

"Vincent." a écrit dans le message de
news:4e9401c473e0$907f0ad0$
Ah ben non ça ne peut pas marcher, il faut utiliser le
CodeName de la

feuille pour que cela fonctionne.
Donc il faut modifier avec quelque chose comme ça :
With ActiveWorkbook.VBProject.VBComponents(Worksheets
("Tri").CodeName)




A mon avis, ça ne fonctionnera pas si VBE est fermé !
voir mon précédent post pour l'afficher
Sinon, je suis d'accord, ça doit marcher !

1 2