Bonjour à tous !
J'ai une macro qui crée en automatique un grand nombre d'onglet s(sur le
même modèle mais avec des données différentes) et je voudrais qu'à la
création de chacun, ma fonction lui ajoute en plus un script VBA (sub
événementiel pour surveiller les changements de sélection).
Savez-vous comment procéder ?
Merci à tous
Sylvain Caillet
Bonjour à tous !
J'ai une macro qui crée en automatique un grand nombre d'onglet s(sur le
même modèle mais avec des données différentes) et je voudrais qu'à la
création de chacun, ma fonction lui ajoute en plus un script VBA (sub
événementiel pour surveiller les changements de sélection).
Savez-vous comment procéder ?
Merci à tous
Sylvain Caillet
Bonjour à tous !
J'ai une macro qui crée en automatique un grand nombre d'onglet s(sur le
même modèle mais avec des données différentes) et je voudrais qu'à la
création de chacun, ma fonction lui ajoute en plus un script VBA (sub
événementiel pour surveiller les changements de sélection).
Savez-vous comment procéder ?
Merci à tous
Sylvain Caillet
Bonjour Sylvain,
Suppose que tu veuilles ajouter 5 feuilles à ton projet et insérer dans
chaque module feuille le même code. Copie la procédure
suivante dans le module de ton classeur .
'-------------------------------------
Sub AjouterCodeAUneFeuille()
Dim A As Integer, Nom As String
Nom = ActiveSheet.Name
Application.ScreenUpdating = False
For A = 1 To 5 ' à déterminer
Worksheets.Add after:=Sheets(Sheets.Count)
AjouterLeCode ThisWorkbook, ActiveSheet
Next
Worksheets(Nom).Activate
End Sub
'-------------------------------------
Sub AjouterLeCode(Wk As Workbook, Sh As Worksheet)
Dim Code As String
'Tu inscris le code que tu désires sous cette forme ...
Code = "Private Sub Worksheet_SelectionChange(ByVal Target As Range)"
Code = Code & vbCrLf & "MsgBox Me.Name"
Code = Code & vbCrLf & "End Sub"
With Wk
With .VBProject.VBComponents(Sh.Name).CodeModule
.AddFromString Code
End With
End With
End Sub
'-------------------------------------
Salutations!
"Sylvain" a écrit dans le message de news:
42fcba7a$0$25033$
Bonjour à tous !
J'ai une macro qui crée en automatique un grand nombre d'onglet s(sur le
même modèle mais avec des données différentes) et je voudrais qu'à la
création de chacun, ma fonction lui ajoute en plus un script VBA (sub
événementiel pour surveiller les changements de sélection).
Savez-vous comment procéder ?
Merci à tous
Sylvain Caillet
Bonjour Sylvain,
Suppose que tu veuilles ajouter 5 feuilles à ton projet et insérer dans
chaque module feuille le même code. Copie la procédure
suivante dans le module de ton classeur .
'-------------------------------------
Sub AjouterCodeAUneFeuille()
Dim A As Integer, Nom As String
Nom = ActiveSheet.Name
Application.ScreenUpdating = False
For A = 1 To 5 ' à déterminer
Worksheets.Add after:=Sheets(Sheets.Count)
AjouterLeCode ThisWorkbook, ActiveSheet
Next
Worksheets(Nom).Activate
End Sub
'-------------------------------------
Sub AjouterLeCode(Wk As Workbook, Sh As Worksheet)
Dim Code As String
'Tu inscris le code que tu désires sous cette forme ...
Code = "Private Sub Worksheet_SelectionChange(ByVal Target As Range)"
Code = Code & vbCrLf & "MsgBox Me.Name"
Code = Code & vbCrLf & "End Sub"
With Wk
With .VBProject.VBComponents(Sh.Name).CodeModule
.AddFromString Code
End With
End With
End Sub
'-------------------------------------
Salutations!
"Sylvain" <s.caillet_nospam@free.fr> a écrit dans le message de news:
42fcba7a$0$25033$8fcfb975@news.wanadoo.fr...
Bonjour à tous !
J'ai une macro qui crée en automatique un grand nombre d'onglet s(sur le
même modèle mais avec des données différentes) et je voudrais qu'à la
création de chacun, ma fonction lui ajoute en plus un script VBA (sub
événementiel pour surveiller les changements de sélection).
Savez-vous comment procéder ?
Merci à tous
Sylvain Caillet
Bonjour Sylvain,
Suppose que tu veuilles ajouter 5 feuilles à ton projet et insérer dans
chaque module feuille le même code. Copie la procédure
suivante dans le module de ton classeur .
'-------------------------------------
Sub AjouterCodeAUneFeuille()
Dim A As Integer, Nom As String
Nom = ActiveSheet.Name
Application.ScreenUpdating = False
For A = 1 To 5 ' à déterminer
Worksheets.Add after:=Sheets(Sheets.Count)
AjouterLeCode ThisWorkbook, ActiveSheet
Next
Worksheets(Nom).Activate
End Sub
'-------------------------------------
Sub AjouterLeCode(Wk As Workbook, Sh As Worksheet)
Dim Code As String
'Tu inscris le code que tu désires sous cette forme ...
Code = "Private Sub Worksheet_SelectionChange(ByVal Target As Range)"
Code = Code & vbCrLf & "MsgBox Me.Name"
Code = Code & vbCrLf & "End Sub"
With Wk
With .VBProject.VBComponents(Sh.Name).CodeModule
.AddFromString Code
End With
End With
End Sub
'-------------------------------------
Salutations!
"Sylvain" a écrit dans le message de news:
42fcba7a$0$25033$
Bonjour à tous !
J'ai une macro qui crée en automatique un grand nombre d'onglet s(sur le
même modèle mais avec des données différentes) et je voudrais qu'à la
création de chacun, ma fonction lui ajoute en plus un script VBA (sub
événementiel pour surveiller les changements de sélection).
Savez-vous comment procéder ?
Merci à tous
Sylvain Caillet
Merci !
La technique est la bonne à une toute petite modif près : j'ai dû utiliser
sh.codeName au lieu de sh.name. Mais il reste un problème à surmonter car
à l'exécution, j'ai un message d'erreur persistent à la ligne du
.addCode(code) :
"Impossible d'entrer en mode arrêt maintenant" et je ne trouve pas le
déblocage.
J'ai réussi à le faire marcher une fois de la manière suivante :
- point d'arrêt sur ligne du .addCode
- ajout de l'objet ActiveWorkbook.VBProject.VBComponents(Sh.CodeName)
comme espion
- dans la fenêtre espion, j'explore l'objet codeModule, ce qui a pour
effet d'ouvrir visuellement la page Script de la feuille en question
- puis F8 et le addCode s'éxécute correctement
- fin du prog
Si ça peut aider ...
Merci de ton aide
Sylvain
"michdenis" a écrit dans le message de news:Bonjour Sylvain,
Suppose que tu veuilles ajouter 5 feuilles à ton projet et insérer dans
chaque module feuille le même code. Copie la procédure
suivante dans le module de ton classeur .
'-------------------------------------
Sub AjouterCodeAUneFeuille()
Dim A As Integer, Nom As String
Nom = ActiveSheet.Name
Application.ScreenUpdating = False
For A = 1 To 5 ' à déterminer
Worksheets.Add after:=Sheets(Sheets.Count)
AjouterLeCode ThisWorkbook, ActiveSheet
Next
Worksheets(Nom).Activate
End Sub
'-------------------------------------
Sub AjouterLeCode(Wk As Workbook, Sh As Worksheet)
Dim Code As String
'Tu inscris le code que tu désires sous cette forme ...
Code = "Private Sub Worksheet_SelectionChange(ByVal Target As Range)"
Code = Code & vbCrLf & "MsgBox Me.Name"
Code = Code & vbCrLf & "End Sub"
With Wk
With .VBProject.VBComponents(Sh.Name).CodeModule
.AddFromString Code
End With
End With
End Sub
'-------------------------------------
Salutations!
"Sylvain" a écrit dans le message de news:
42fcba7a$0$25033$
Bonjour à tous !
J'ai une macro qui crée en automatique un grand nombre d'onglet s(sur le
même modèle mais avec des données différentes) et je voudrais qu'à la
création de chacun, ma fonction lui ajoute en plus un script VBA (sub
événementiel pour surveiller les changements de sélection).
Savez-vous comment procéder ?
Merci à tous
Sylvain Caillet
Merci !
La technique est la bonne à une toute petite modif près : j'ai dû utiliser
sh.codeName au lieu de sh.name. Mais il reste un problème à surmonter car
à l'exécution, j'ai un message d'erreur persistent à la ligne du
.addCode(code) :
"Impossible d'entrer en mode arrêt maintenant" et je ne trouve pas le
déblocage.
J'ai réussi à le faire marcher une fois de la manière suivante :
- point d'arrêt sur ligne du .addCode
- ajout de l'objet ActiveWorkbook.VBProject.VBComponents(Sh.CodeName)
comme espion
- dans la fenêtre espion, j'explore l'objet codeModule, ce qui a pour
effet d'ouvrir visuellement la page Script de la feuille en question
- puis F8 et le addCode s'éxécute correctement
- fin du prog
Si ça peut aider ...
Merci de ton aide
Sylvain
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
un2yuC3nFHA.2540@TK2MSFTNGP15.phx.gbl...
Bonjour Sylvain,
Suppose que tu veuilles ajouter 5 feuilles à ton projet et insérer dans
chaque module feuille le même code. Copie la procédure
suivante dans le module de ton classeur .
'-------------------------------------
Sub AjouterCodeAUneFeuille()
Dim A As Integer, Nom As String
Nom = ActiveSheet.Name
Application.ScreenUpdating = False
For A = 1 To 5 ' à déterminer
Worksheets.Add after:=Sheets(Sheets.Count)
AjouterLeCode ThisWorkbook, ActiveSheet
Next
Worksheets(Nom).Activate
End Sub
'-------------------------------------
Sub AjouterLeCode(Wk As Workbook, Sh As Worksheet)
Dim Code As String
'Tu inscris le code que tu désires sous cette forme ...
Code = "Private Sub Worksheet_SelectionChange(ByVal Target As Range)"
Code = Code & vbCrLf & "MsgBox Me.Name"
Code = Code & vbCrLf & "End Sub"
With Wk
With .VBProject.VBComponents(Sh.Name).CodeModule
.AddFromString Code
End With
End With
End Sub
'-------------------------------------
Salutations!
"Sylvain" <s.caillet_nospam@free.fr> a écrit dans le message de news:
42fcba7a$0$25033$8fcfb975@news.wanadoo.fr...
Bonjour à tous !
J'ai une macro qui crée en automatique un grand nombre d'onglet s(sur le
même modèle mais avec des données différentes) et je voudrais qu'à la
création de chacun, ma fonction lui ajoute en plus un script VBA (sub
événementiel pour surveiller les changements de sélection).
Savez-vous comment procéder ?
Merci à tous
Sylvain Caillet
Merci !
La technique est la bonne à une toute petite modif près : j'ai dû utiliser
sh.codeName au lieu de sh.name. Mais il reste un problème à surmonter car
à l'exécution, j'ai un message d'erreur persistent à la ligne du
.addCode(code) :
"Impossible d'entrer en mode arrêt maintenant" et je ne trouve pas le
déblocage.
J'ai réussi à le faire marcher une fois de la manière suivante :
- point d'arrêt sur ligne du .addCode
- ajout de l'objet ActiveWorkbook.VBProject.VBComponents(Sh.CodeName)
comme espion
- dans la fenêtre espion, j'explore l'objet codeModule, ce qui a pour
effet d'ouvrir visuellement la page Script de la feuille en question
- puis F8 et le addCode s'éxécute correctement
- fin du prog
Si ça peut aider ...
Merci de ton aide
Sylvain
"michdenis" a écrit dans le message de news:Bonjour Sylvain,
Suppose que tu veuilles ajouter 5 feuilles à ton projet et insérer dans
chaque module feuille le même code. Copie la procédure
suivante dans le module de ton classeur .
'-------------------------------------
Sub AjouterCodeAUneFeuille()
Dim A As Integer, Nom As String
Nom = ActiveSheet.Name
Application.ScreenUpdating = False
For A = 1 To 5 ' à déterminer
Worksheets.Add after:=Sheets(Sheets.Count)
AjouterLeCode ThisWorkbook, ActiveSheet
Next
Worksheets(Nom).Activate
End Sub
'-------------------------------------
Sub AjouterLeCode(Wk As Workbook, Sh As Worksheet)
Dim Code As String
'Tu inscris le code que tu désires sous cette forme ...
Code = "Private Sub Worksheet_SelectionChange(ByVal Target As Range)"
Code = Code & vbCrLf & "MsgBox Me.Name"
Code = Code & vbCrLf & "End Sub"
With Wk
With .VBProject.VBComponents(Sh.Name).CodeModule
.AddFromString Code
End With
End With
End Sub
'-------------------------------------
Salutations!
"Sylvain" a écrit dans le message de news:
42fcba7a$0$25033$
Bonjour à tous !
J'ai une macro qui crée en automatique un grand nombre d'onglet s(sur le
même modèle mais avec des données différentes) et je voudrais qu'à la
création de chacun, ma fonction lui ajoute en plus un script VBA (sub
événementiel pour surveiller les changements de sélection).
Savez-vous comment procéder ?
Merci à tous
Sylvain Caillet
Merci !
La technique est la bonne à une toute petite modif près : j'ai dû utiliser
sh.codeName au lieu de sh.name. Mais il reste un problème à surmonter car
à l'exécution, j'ai un message d'erreur persistent à la ligne du
.addCode(code) :
"Impossible d'entrer en mode arrêt maintenant" et je ne trouve pas le
déblocage.
J'ai réussi à le faire marcher une fois de la manière suivante :
- point d'arrêt sur ligne du .addCode
- ajout de l'objet ActiveWorkbook.VBProject.VBComponents(Sh.CodeName)
comme espion
- dans la fenêtre espion, j'explore l'objet codeModule, ce qui a pour
effet d'ouvrir visuellement la page Script de la feuille en question
- puis F8 et le addCode s'éxécute correctement
- fin du prog
Si ça peut aider ...
Merci de ton aide
Sylvain
"michdenis" a écrit dans le message de news:Bonjour Sylvain,
Suppose que tu veuilles ajouter 5 feuilles à ton projet et insérer dans
chaque module feuille le même code. Copie la procédure
suivante dans le module de ton classeur .
'-------------------------------------
Sub AjouterCodeAUneFeuille()
Dim A As Integer, Nom As String
Nom = ActiveSheet.Name
Application.ScreenUpdating = False
For A = 1 To 5 ' à déterminer
Worksheets.Add after:=Sheets(Sheets.Count)
AjouterLeCode ThisWorkbook, ActiveSheet
Next
Worksheets(Nom).Activate
End Sub
'-------------------------------------
Sub AjouterLeCode(Wk As Workbook, Sh As Worksheet)
Dim Code As String
'Tu inscris le code que tu désires sous cette forme ...
Code = "Private Sub Worksheet_SelectionChange(ByVal Target As Range)"
Code = Code & vbCrLf & "MsgBox Me.Name"
Code = Code & vbCrLf & "End Sub"
With Wk
With .VBProject.VBComponents(Sh.Name).CodeModule
.AddFromString Code
End With
End With
End Sub
'-------------------------------------
Salutations!
"Sylvain" a écrit dans le message de news:
42fcba7a$0$25033$
Bonjour à tous !
J'ai une macro qui crée en automatique un grand nombre d'onglet s(sur le
même modèle mais avec des données différentes) et je voudrais qu'à la
création de chacun, ma fonction lui ajoute en plus un script VBA (sub
événementiel pour surveiller les changements de sélection).
Savez-vous comment procéder ?
Merci à tous
Sylvain Caillet
Merci !
La technique est la bonne à une toute petite modif près : j'ai dû utiliser
sh.codeName au lieu de sh.name. Mais il reste un problème à surmonter car
à l'exécution, j'ai un message d'erreur persistent à la ligne du
.addCode(code) :
"Impossible d'entrer en mode arrêt maintenant" et je ne trouve pas le
déblocage.
J'ai réussi à le faire marcher une fois de la manière suivante :
- point d'arrêt sur ligne du .addCode
- ajout de l'objet ActiveWorkbook.VBProject.VBComponents(Sh.CodeName)
comme espion
- dans la fenêtre espion, j'explore l'objet codeModule, ce qui a pour
effet d'ouvrir visuellement la page Script de la feuille en question
- puis F8 et le addCode s'éxécute correctement
- fin du prog
Si ça peut aider ...
Merci de ton aide
Sylvain
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
un2yuC3nFHA.2540@TK2MSFTNGP15.phx.gbl...
Bonjour Sylvain,
Suppose que tu veuilles ajouter 5 feuilles à ton projet et insérer dans
chaque module feuille le même code. Copie la procédure
suivante dans le module de ton classeur .
'-------------------------------------
Sub AjouterCodeAUneFeuille()
Dim A As Integer, Nom As String
Nom = ActiveSheet.Name
Application.ScreenUpdating = False
For A = 1 To 5 ' à déterminer
Worksheets.Add after:=Sheets(Sheets.Count)
AjouterLeCode ThisWorkbook, ActiveSheet
Next
Worksheets(Nom).Activate
End Sub
'-------------------------------------
Sub AjouterLeCode(Wk As Workbook, Sh As Worksheet)
Dim Code As String
'Tu inscris le code que tu désires sous cette forme ...
Code = "Private Sub Worksheet_SelectionChange(ByVal Target As Range)"
Code = Code & vbCrLf & "MsgBox Me.Name"
Code = Code & vbCrLf & "End Sub"
With Wk
With .VBProject.VBComponents(Sh.Name).CodeModule
.AddFromString Code
End With
End With
End Sub
'-------------------------------------
Salutations!
"Sylvain" <s.caillet_nospam@free.fr> a écrit dans le message de news:
42fcba7a$0$25033$8fcfb975@news.wanadoo.fr...
Bonjour à tous !
J'ai une macro qui crée en automatique un grand nombre d'onglet s(sur le
même modèle mais avec des données différentes) et je voudrais qu'à la
création de chacun, ma fonction lui ajoute en plus un script VBA (sub
événementiel pour surveiller les changements de sélection).
Savez-vous comment procéder ?
Merci à tous
Sylvain Caillet
Merci !
La technique est la bonne à une toute petite modif près : j'ai dû utiliser
sh.codeName au lieu de sh.name. Mais il reste un problème à surmonter car
à l'exécution, j'ai un message d'erreur persistent à la ligne du
.addCode(code) :
"Impossible d'entrer en mode arrêt maintenant" et je ne trouve pas le
déblocage.
J'ai réussi à le faire marcher une fois de la manière suivante :
- point d'arrêt sur ligne du .addCode
- ajout de l'objet ActiveWorkbook.VBProject.VBComponents(Sh.CodeName)
comme espion
- dans la fenêtre espion, j'explore l'objet codeModule, ce qui a pour
effet d'ouvrir visuellement la page Script de la feuille en question
- puis F8 et le addCode s'éxécute correctement
- fin du prog
Si ça peut aider ...
Merci de ton aide
Sylvain
"michdenis" a écrit dans le message de news:Bonjour Sylvain,
Suppose que tu veuilles ajouter 5 feuilles à ton projet et insérer dans
chaque module feuille le même code. Copie la procédure
suivante dans le module de ton classeur .
'-------------------------------------
Sub AjouterCodeAUneFeuille()
Dim A As Integer, Nom As String
Nom = ActiveSheet.Name
Application.ScreenUpdating = False
For A = 1 To 5 ' à déterminer
Worksheets.Add after:=Sheets(Sheets.Count)
AjouterLeCode ThisWorkbook, ActiveSheet
Next
Worksheets(Nom).Activate
End Sub
'-------------------------------------
Sub AjouterLeCode(Wk As Workbook, Sh As Worksheet)
Dim Code As String
'Tu inscris le code que tu désires sous cette forme ...
Code = "Private Sub Worksheet_SelectionChange(ByVal Target As Range)"
Code = Code & vbCrLf & "MsgBox Me.Name"
Code = Code & vbCrLf & "End Sub"
With Wk
With .VBProject.VBComponents(Sh.Name).CodeModule
.AddFromString Code
End With
End With
End Sub
'-------------------------------------
Salutations!
"Sylvain" a écrit dans le message de news:
42fcba7a$0$25033$
Bonjour à tous !
J'ai une macro qui crée en automatique un grand nombre d'onglet s(sur le
même modèle mais avec des données différentes) et je voudrais qu'à la
création de chacun, ma fonction lui ajoute en plus un script VBA (sub
événementiel pour surveiller les changements de sélection).
Savez-vous comment procéder ?
Merci à tous
Sylvain Caillet