Affecter du code à toutes les feuilles d'un classe

R

Renaud

Guest
ur

Bonjour à tous

J'aimerai affecter à toutes les feuilles d'un classeur du code.
Y compris celle qui seraient créées après.
J'imagine que c'est avec le 'this workbook' mais je ne suis pas sur.
Pour l'instant, j'ecris le code et le copie dans chaque feuille, y compris à la création d'une de ces dernières, mais j'aimerai que ça soit automatique.


Voilà merci.
 

Abel

XLDnaute Accro
Bonjour Renaud,

Essaie en mettant le code effectivement dans ThisWorkbbok dans une procédure 'Workbook_SheetSelectionChange' (encore merci Hervé).

Dans ce cas, cela a pour effet de se déclencher dès qu'il y a un changement de sélection dans n'importe quelle feuille du classeur.

Qu'est-ce qui déclenche la (ou les) macro ?

Abel.
 

Creepy

XLDnaute Accro
Bonjour le Forum, Abel, Renaud,

si j'ai bien compris la question tu veux que ta macro s'execute sur toutes les feuilles de ton classeur.

Ajoute un module, et place ce code dedans par exemple
Code:
Sub AllFeuille()
Dim Ws As Worksheet

For Each Ws In Worksheets
   Ws.Range('a1').Value = 'dede'
Next
End Sub

Le code compris entre for eache et next s'appliquera à toutes tes feuilles de ton classeur.

Est-ce cela que tu veux ?

++

Creepy
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonjour renaud, Abel, Creepy, le forum

voici un code fonctionnel avec un code stocké dans Feuil1
Code:
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Dim Code_Feuille As String
With ThisWorkbook.VBProject.VBComponents(ThisWorkbook.Sheets('Feuil1').CodeName).CodeModule
Code_Feuille = .Lines(1, .CountOfLines)
End With
ThisWorkbook.VBProject.VBComponents(Sh.CodeName).CodeModule.AddFromString Code_Feuille
End Sub
à placer dans thisworkbook, il agira à chaque création de feuille et copiera le code de la feuille référencée( Feuil1 dans l'exemple) dans le module de la feuille créée. Par contre, ne pas oublier de cocher faire confiance au projet visual basic dans outils/macros/sécurité/sources fiables.

Cordialement, A+

Ps: cette macro peut être prise pour un virus et effacée par un antivirus lors de l'enregistrement du fichier, les autres macros ne seront pas touchées (cela m'est arrivé).

Message édité par: yeahou, à: 11/07/2005 10:42
 
R

Renaud

Guest
Merci à tous, on s' approche,

Pour répondre à Abel :
Pour l'instant ce qui déclenche les macro c 'est un before double clique (mais peut etre que la macro fera autre chose par la suite)

Ce que propose Yeahou m'a l'air d'être très proche mais,
(je suis peut-être un peu exigeant mais ça me parait indispensable)

Ce que je voudrais vraiment c est un endroit ou je tape mon code (un seul) et que ce code soit valable dans toutes les feuilles (comme si je l'avais ecrit dans toute les feuilles) ça évite de faire un copier coller dans chaque feuille quand tu en as 10 c 'est relou.

Le truc c est que a chaque modification du code il faut que ce soit à nouveau valable dans toutes les feuilles ...

... et aussi dans une feuille créée.

Au passage puisque workbook ne sert pas à ça, ça sert à quoi ?
(parce que je le verrai vraiment bien pour ça)
 

Abel

XLDnaute Accro
Re,

Place ce code dans 'ThisWorkbook' et fais un double-clic n'importe où dans le classeur.

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
If Not Target Is Nothing Then MsgBox 'Coucou !'
End Sub


Abel.
 
R

Renaud

Guest
Cool cool cool.

La fonction va fonctionner pour moi je pense.

Malgré tout, ça ne marchera pas si le code comporte autre chose que un before double clique ...

C'ets dommage que ce ne soit pas évident ou déjà prévu par excel:
Une feuille où le code est valble pour toute les feuiles ...

Merci Abel,

mais si quelqu un trouve le top du top je suis preneur

+
 

Discussions similaires

Statistiques des forums

Discussions
312 519
Messages
2 089 266
Membres
104 083
dernier inscrit
hecko