Comment écrire du code VBA dans un module de feuille ?
3 réponses
Claude Trouet
Est-il possible d'écrire du code VBA dans un module de feuille ( général ou
évènement worksheet ) à partir du VBA ?
Si oui, voici mon problème :
Merci d'avance
Exemple : la procédure ci-dessous créée une feuille dans le classeur actif
et je voudrais écrire la procédure évènementielle WorkSheet_SelectionChange
qui interdit à l'utilisateur de modifier le nom de la
feuille ( en fait en y réaffectant son nom stocké dans la ditee procédure )
Sub Ajoute_Feuille()
ActiveWorkbook.Sheets.Add
ActiveSheet.Name = "Nouvelle Feuille"
Ecrire_VBA
End Sub
Sub Ecrire_VBA
???
??? .... de façon à obtenir le code ci-dessous
???
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
feuille = "Nouvelle"
If ActiveSheet.Name <> "Nouvelle" Then
ActiveSheet.Name = "Nouvelle"
MsgBox "Ne pas changer le nom de cette feuille !"
End If
End Sub
Est-il possible d'écrire du code VBA dans un module de feuille ( général ou
évènement worksheet ) à partir du VBA ? Si oui, voici mon problème : Merci d'avance
Exemple : la procédure ci-dessous créée une feuille dans le classeur actif et je voudrais écrire la procédure évènementielle WorkSheet_SelectionChange
qui interdit à l'utilisateur de modifier le nom de la feuille ( en fait en y réaffectant son nom stocké dans la ditee procédure )
Sub Ajoute_Feuille() ActiveWorkbook.Sheets.Add ActiveSheet.Name = "Nouvelle Feuille" Ecrire_VBA End Sub
Sub Ecrire_VBA ??? ??? .... de façon à obtenir le code ci-dessous ??? End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) feuille = "Nouvelle" If ActiveSheet.Name <> "Nouvelle" Then ActiveSheet.Name = "Nouvelle" MsgBox "Ne pas changer le nom de cette feuille !" End If End Sub
Bonjour
Voir un exemple ici :
http://perso.wanadoo.fr/frederic.sigonneau/code/VBE/AjoutFeuilleEtCode.txt
Cordialement
Pascal
"Claude Trouet" <nospam-claude.trouet@wanadoo.fr> a écrit dans le message de
news:evizvpupEHA.348@TK2MSFTNGP15.phx.gbl...
Est-il possible d'écrire du code VBA dans un module de feuille ( général
ou
évènement worksheet ) à partir du VBA ?
Si oui, voici mon problème :
Merci d'avance
Exemple : la procédure ci-dessous créée une feuille dans le classeur actif
et je voudrais écrire la procédure évènementielle
WorkSheet_SelectionChange
qui interdit à l'utilisateur de modifier le nom de la
feuille ( en fait en y réaffectant son nom stocké dans la ditee
procédure )
Sub Ajoute_Feuille()
ActiveWorkbook.Sheets.Add
ActiveSheet.Name = "Nouvelle Feuille"
Ecrire_VBA
End Sub
Sub Ecrire_VBA
???
??? .... de façon à obtenir le code ci-dessous
???
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
feuille = "Nouvelle"
If ActiveSheet.Name <> "Nouvelle" Then
ActiveSheet.Name = "Nouvelle"
MsgBox "Ne pas changer le nom de cette feuille !"
End If
End Sub
Est-il possible d'écrire du code VBA dans un module de feuille ( général ou
évènement worksheet ) à partir du VBA ? Si oui, voici mon problème : Merci d'avance
Exemple : la procédure ci-dessous créée une feuille dans le classeur actif et je voudrais écrire la procédure évènementielle WorkSheet_SelectionChange
qui interdit à l'utilisateur de modifier le nom de la feuille ( en fait en y réaffectant son nom stocké dans la ditee procédure )
Sub Ajoute_Feuille() ActiveWorkbook.Sheets.Add ActiveSheet.Name = "Nouvelle Feuille" Ecrire_VBA End Sub
Sub Ecrire_VBA ??? ??? .... de façon à obtenir le code ci-dessous ??? End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) feuille = "Nouvelle" If ActiveSheet.Name <> "Nouvelle" Then ActiveSheet.Name = "Nouvelle" MsgBox "Ne pas changer le nom de cette feuille !" End If End Sub
PMO
Bonjour,
Faites tourner le code suivant:
'**************************************** Option Explicit Sub Ajoute_Feuille() Dim codeNom$ Dim S As Worksheet Dim C As Object Dim A$ Sheets.Add ActiveSheet.Name = "Nouvelle" For Each S In Worksheets If S.Name = "Nouvelle" Then codeNom$ = S.CodeName Exit For End If Next S A$ = "Private Sub Worksheet_SelectionChange" & _ "(ByVal Target As Range)" & vbCrLf A$ = A$ & "If ActiveSheet.Name <>" & Chr(34) & _ "Nouvelle" & Chr(34) & " Then" & vbCrLf A$ = A$ & "ActiveSheet.Name = " & _ Chr(34) & "Nouvelle" & vbCrLf A$ = A$ & "MsgBox " & Chr(34) & _ "Ne pas changer le nom de cette feuille !" & _ vbCrLf A$ = A$ & "End If" & vbCrLf A$ = A$ & "End Sub" Application.VBE.ActiveVBProject. _ VBComponents(codeNom$). _ CodeModule.AddFromString (A$) End Sub '******************************
Cordialement.
PMO Patrick Morange
-----Message d'origine----- Est-il possible d'écrire du code VBA dans un module de feuille ( général ou
évènement worksheet ) à partir du VBA ? Si oui, voici mon problème : Merci d'avance
Exemple : la procédure ci-dessous créée une feuille dans le classeur actif
et je voudrais écrire la procédure évènementielle WorkSheet_SelectionChange
qui interdit à l'utilisateur de modifier le nom de la
feuille ( en fait en y réaffectant son nom stocké dans la ditee procédure )
Sub Ajoute_Feuille() ActiveWorkbook.Sheets.Add ActiveSheet.Name = "Nouvelle Feuille" Ecrire_VBA End Sub
Sub Ecrire_VBA ??? ??? .... de façon à obtenir le code ci-dessous ??? End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
feuille = "Nouvelle" If ActiveSheet.Name <> "Nouvelle" Then ActiveSheet.Name = "Nouvelle" MsgBox "Ne pas changer le nom de cette feuille !" End If End Sub
.
Bonjour,
Faites tourner le code suivant:
'****************************************
Option Explicit
Sub Ajoute_Feuille()
Dim codeNom$
Dim S As Worksheet
Dim C As Object
Dim A$
Sheets.Add
ActiveSheet.Name = "Nouvelle"
For Each S In Worksheets
If S.Name = "Nouvelle" Then
codeNom$ = S.CodeName
Exit For
End If
Next S
A$ = "Private Sub Worksheet_SelectionChange" & _
"(ByVal Target As Range)" & vbCrLf
A$ = A$ & "If ActiveSheet.Name <>" & Chr(34) & _
"Nouvelle" & Chr(34) & " Then" & vbCrLf
A$ = A$ & "ActiveSheet.Name = " & _
Chr(34) & "Nouvelle" & vbCrLf
A$ = A$ & "MsgBox " & Chr(34) & _
"Ne pas changer le nom de cette feuille !" & _
vbCrLf
A$ = A$ & "End If" & vbCrLf
A$ = A$ & "End Sub"
Application.VBE.ActiveVBProject. _
VBComponents(codeNom$). _
CodeModule.AddFromString (A$)
End Sub
'******************************
Cordialement.
PMO
Patrick Morange
-----Message d'origine-----
Est-il possible d'écrire du code VBA dans un module de
feuille ( général ou
évènement worksheet ) à partir du VBA ?
Si oui, voici mon problème :
Merci d'avance
Exemple : la procédure ci-dessous créée une feuille dans
le classeur actif
et je voudrais écrire la procédure évènementielle
WorkSheet_SelectionChange
qui interdit à l'utilisateur de modifier
le nom de la
feuille ( en fait en y réaffectant son nom stocké dans
la ditee procédure )
Sub Ajoute_Feuille()
ActiveWorkbook.Sheets.Add
ActiveSheet.Name = "Nouvelle Feuille"
Ecrire_VBA
End Sub
Sub Ecrire_VBA
???
??? .... de façon à obtenir le code ci-dessous
???
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As
Range)
feuille = "Nouvelle"
If ActiveSheet.Name <> "Nouvelle" Then
ActiveSheet.Name = "Nouvelle"
MsgBox "Ne pas changer le nom de cette feuille !"
End If
End Sub
'**************************************** Option Explicit Sub Ajoute_Feuille() Dim codeNom$ Dim S As Worksheet Dim C As Object Dim A$ Sheets.Add ActiveSheet.Name = "Nouvelle" For Each S In Worksheets If S.Name = "Nouvelle" Then codeNom$ = S.CodeName Exit For End If Next S A$ = "Private Sub Worksheet_SelectionChange" & _ "(ByVal Target As Range)" & vbCrLf A$ = A$ & "If ActiveSheet.Name <>" & Chr(34) & _ "Nouvelle" & Chr(34) & " Then" & vbCrLf A$ = A$ & "ActiveSheet.Name = " & _ Chr(34) & "Nouvelle" & vbCrLf A$ = A$ & "MsgBox " & Chr(34) & _ "Ne pas changer le nom de cette feuille !" & _ vbCrLf A$ = A$ & "End If" & vbCrLf A$ = A$ & "End Sub" Application.VBE.ActiveVBProject. _ VBComponents(codeNom$). _ CodeModule.AddFromString (A$) End Sub '******************************
Cordialement.
PMO Patrick Morange
-----Message d'origine----- Est-il possible d'écrire du code VBA dans un module de feuille ( général ou
évènement worksheet ) à partir du VBA ? Si oui, voici mon problème : Merci d'avance
Exemple : la procédure ci-dessous créée une feuille dans le classeur actif
et je voudrais écrire la procédure évènementielle WorkSheet_SelectionChange
qui interdit à l'utilisateur de modifier le nom de la
feuille ( en fait en y réaffectant son nom stocké dans la ditee procédure )
Sub Ajoute_Feuille() ActiveWorkbook.Sheets.Add ActiveSheet.Name = "Nouvelle Feuille" Ecrire_VBA End Sub
Sub Ecrire_VBA ??? ??? .... de façon à obtenir le code ci-dessous ??? End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
feuille = "Nouvelle" If ActiveSheet.Name <> "Nouvelle" Then ActiveSheet.Name = "Nouvelle" MsgBox "Ne pas changer le nom de cette feuille !" End If End Sub
.
Claude Trouet
Merci pour la célérité ( on ne parle plus de vitesse ! ) et pour la macro. C'est exactement ce que j'attendais Cordialement CT Claude Trouet
"PMO" a écrit dans le message de news: 0bf101c4a6fd$4fdbfb50$ Bonjour,
Faites tourner le code suivant:
'**************************************** Option Explicit Sub Ajoute_Feuille() Dim codeNom$ Dim S As Worksheet Dim C As Object Dim A$ Sheets.Add ActiveSheet.Name = "Nouvelle" For Each S In Worksheets If S.Name = "Nouvelle" Then codeNom$ = S.CodeName Exit For End If Next S A$ = "Private Sub Worksheet_SelectionChange" & _ "(ByVal Target As Range)" & vbCrLf A$ = A$ & "If ActiveSheet.Name <>" & Chr(34) & _ "Nouvelle" & Chr(34) & " Then" & vbCrLf A$ = A$ & "ActiveSheet.Name = " & _ Chr(34) & "Nouvelle" & vbCrLf A$ = A$ & "MsgBox " & Chr(34) & _ "Ne pas changer le nom de cette feuille !" & _ vbCrLf A$ = A$ & "End If" & vbCrLf A$ = A$ & "End Sub" Application.VBE.ActiveVBProject. _ VBComponents(codeNom$). _ CodeModule.AddFromString (A$) End Sub '******************************
Cordialement.
PMO Patrick Morange
-----Message d'origine----- Est-il possible d'écrire du code VBA dans un module de feuille ( général ou
évènement worksheet ) à partir du VBA ? Si oui, voici mon problème : Merci d'avance
Exemple : la procédure ci-dessous créée une feuille dans le classeur actif
et je voudrais écrire la procédure évènementielle WorkSheet_SelectionChange
qui interdit à l'utilisateur de modifier le nom de la
feuille ( en fait en y réaffectant son nom stocké dans la ditee procédure )
Sub Ajoute_Feuille() ActiveWorkbook.Sheets.Add ActiveSheet.Name = "Nouvelle Feuille" Ecrire_VBA End Sub
Sub Ecrire_VBA ??? ??? .... de façon à obtenir le code ci-dessous ??? End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
feuille = "Nouvelle" If ActiveSheet.Name <> "Nouvelle" Then ActiveSheet.Name = "Nouvelle" MsgBox "Ne pas changer le nom de cette feuille !" End If End Sub
.
Merci pour la célérité ( on ne parle plus de vitesse ! ) et pour la macro.
C'est exactement ce que j'attendais
Cordialement
CT
Claude Trouet
"PMO" <anonymous@discussions.microsoft.com> a écrit dans le message de news:
0bf101c4a6fd$4fdbfb50$a301280a@phx.gbl...
Bonjour,
Faites tourner le code suivant:
'****************************************
Option Explicit
Sub Ajoute_Feuille()
Dim codeNom$
Dim S As Worksheet
Dim C As Object
Dim A$
Sheets.Add
ActiveSheet.Name = "Nouvelle"
For Each S In Worksheets
If S.Name = "Nouvelle" Then
codeNom$ = S.CodeName
Exit For
End If
Next S
A$ = "Private Sub Worksheet_SelectionChange" & _
"(ByVal Target As Range)" & vbCrLf
A$ = A$ & "If ActiveSheet.Name <>" & Chr(34) & _
"Nouvelle" & Chr(34) & " Then" & vbCrLf
A$ = A$ & "ActiveSheet.Name = " & _
Chr(34) & "Nouvelle" & vbCrLf
A$ = A$ & "MsgBox " & Chr(34) & _
"Ne pas changer le nom de cette feuille !" & _
vbCrLf
A$ = A$ & "End If" & vbCrLf
A$ = A$ & "End Sub"
Application.VBE.ActiveVBProject. _
VBComponents(codeNom$). _
CodeModule.AddFromString (A$)
End Sub
'******************************
Cordialement.
PMO
Patrick Morange
-----Message d'origine-----
Est-il possible d'écrire du code VBA dans un module de
feuille ( général ou
évènement worksheet ) à partir du VBA ?
Si oui, voici mon problème :
Merci d'avance
Exemple : la procédure ci-dessous créée une feuille dans
le classeur actif
et je voudrais écrire la procédure évènementielle
WorkSheet_SelectionChange
qui interdit à l'utilisateur de modifier
le nom de la
feuille ( en fait en y réaffectant son nom stocké dans
la ditee procédure )
Sub Ajoute_Feuille()
ActiveWorkbook.Sheets.Add
ActiveSheet.Name = "Nouvelle Feuille"
Ecrire_VBA
End Sub
Sub Ecrire_VBA
???
??? .... de façon à obtenir le code ci-dessous
???
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As
Range)
feuille = "Nouvelle"
If ActiveSheet.Name <> "Nouvelle" Then
ActiveSheet.Name = "Nouvelle"
MsgBox "Ne pas changer le nom de cette feuille !"
End If
End Sub
Merci pour la célérité ( on ne parle plus de vitesse ! ) et pour la macro. C'est exactement ce que j'attendais Cordialement CT Claude Trouet
"PMO" a écrit dans le message de news: 0bf101c4a6fd$4fdbfb50$ Bonjour,
Faites tourner le code suivant:
'**************************************** Option Explicit Sub Ajoute_Feuille() Dim codeNom$ Dim S As Worksheet Dim C As Object Dim A$ Sheets.Add ActiveSheet.Name = "Nouvelle" For Each S In Worksheets If S.Name = "Nouvelle" Then codeNom$ = S.CodeName Exit For End If Next S A$ = "Private Sub Worksheet_SelectionChange" & _ "(ByVal Target As Range)" & vbCrLf A$ = A$ & "If ActiveSheet.Name <>" & Chr(34) & _ "Nouvelle" & Chr(34) & " Then" & vbCrLf A$ = A$ & "ActiveSheet.Name = " & _ Chr(34) & "Nouvelle" & vbCrLf A$ = A$ & "MsgBox " & Chr(34) & _ "Ne pas changer le nom de cette feuille !" & _ vbCrLf A$ = A$ & "End If" & vbCrLf A$ = A$ & "End Sub" Application.VBE.ActiveVBProject. _ VBComponents(codeNom$). _ CodeModule.AddFromString (A$) End Sub '******************************
Cordialement.
PMO Patrick Morange
-----Message d'origine----- Est-il possible d'écrire du code VBA dans un module de feuille ( général ou
évènement worksheet ) à partir du VBA ? Si oui, voici mon problème : Merci d'avance
Exemple : la procédure ci-dessous créée une feuille dans le classeur actif
et je voudrais écrire la procédure évènementielle WorkSheet_SelectionChange
qui interdit à l'utilisateur de modifier le nom de la
feuille ( en fait en y réaffectant son nom stocké dans la ditee procédure )
Sub Ajoute_Feuille() ActiveWorkbook.Sheets.Add ActiveSheet.Name = "Nouvelle Feuille" Ecrire_VBA End Sub
Sub Ecrire_VBA ??? ??? .... de façon à obtenir le code ci-dessous ??? End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
feuille = "Nouvelle" If ActiveSheet.Name <> "Nouvelle" Then ActiveSheet.Name = "Nouvelle" MsgBox "Ne pas changer le nom de cette feuille !" End If End Sub