Je suis sur un nouveau projet de programme VBA et je coince sur ce que je
vous demande de bien vouloir m'aider:
- mon application créé de nouvelles feuilles.
- ces feuilles sont remplies d'informations et de formules
- l'opérateur doit modifier le contenu de certaine cellule dans ces
nouvelles feuilles.
- je souhaite détecter ces modifications à partir de mon application
principale.
Comme ces feuilles sont créées de façon dynamique, je ne peux pas compter
sur les évènements propres à ces feuilles, ou alors il faut les écrire aussi
de façon dynamique, mais comment ?
Y-a-t'il un moyen dans un module de détecter ces évènements de feuille ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
tissot.emmanuel
Bonsoir,
Tu peux utiliser un module de classe.
1) Dans le module ThisWorkbook: Private Sub Workbook_Open() Set DynamicSheets = New Collection End Sub
2) Dans un module de classe nommé DynamicSheet: Public WithEvents OneSheet As Worksheet
Private Sub OneSheet_Change(ByVal Target As Range) MsgBox OneSheet.Name 'Ton code End Sub
Private Sub OneSheet_SelectionChange(ByVal Target As Range) MsgBox Target.Address 'Ton code End Sub
3) Dans un module standard: Public DynamicSheets As Collection
Sub CreerFeuilleAvecEvenements() Dim DynSheet As DynamicSheet Set DynSheet = New DynamicSheet Set DynSheet.OneSheet = Sheets.Add DynamicSheets.Add DynSheet End Sub
Cordialement,
Manu/
"Michel MORICE" a écrit dans le message de news: 47697e41$0$850$
Bonjour/Bonsoir
Je suis sur un nouveau projet de programme VBA et je coince sur ce que je vous demande de bien vouloir m'aider:
- mon application créé de nouvelles feuilles. - ces feuilles sont remplies d'informations et de formules - l'opérateur doit modifier le contenu de certaine cellule dans ces nouvelles feuilles. - je souhaite détecter ces modifications à partir de mon application principale.
Comme ces feuilles sont créées de façon dynamique, je ne peux pas compter sur les évènements propres à ces feuilles, ou alors il faut les écrire aussi de façon dynamique, mais comment ?
Y-a-t'il un moyen dans un module de détecter ces évènements de feuille ?
Merci d'avance
Michel
Bonsoir,
Tu peux utiliser un module de classe.
1) Dans le module ThisWorkbook:
Private Sub Workbook_Open()
Set DynamicSheets = New Collection
End Sub
2) Dans un module de classe nommé DynamicSheet:
Public WithEvents OneSheet As Worksheet
Private Sub OneSheet_Change(ByVal Target As Range)
MsgBox OneSheet.Name 'Ton code
End Sub
Private Sub OneSheet_SelectionChange(ByVal Target As Range)
MsgBox Target.Address 'Ton code
End Sub
3) Dans un module standard:
Public DynamicSheets As Collection
Sub CreerFeuilleAvecEvenements()
Dim DynSheet As DynamicSheet
Set DynSheet = New DynamicSheet
Set DynSheet.OneSheet = Sheets.Add
DynamicSheets.Add DynSheet
End Sub
Cordialement,
Manu/
"Michel MORICE" <mor.mic@wanadoo.fr> a écrit dans le message de news:
47697e41$0$850$ba4acef3@news.orange.fr...
Bonjour/Bonsoir
Je suis sur un nouveau projet de programme VBA et je coince sur ce que je
vous demande de bien vouloir m'aider:
- mon application créé de nouvelles feuilles.
- ces feuilles sont remplies d'informations et de formules
- l'opérateur doit modifier le contenu de certaine cellule dans ces
nouvelles feuilles.
- je souhaite détecter ces modifications à partir de mon application
principale.
Comme ces feuilles sont créées de façon dynamique, je ne peux pas compter
sur les évènements propres à ces feuilles, ou alors il faut les écrire
aussi de façon dynamique, mais comment ?
Y-a-t'il un moyen dans un module de détecter ces évènements de feuille ?
1) Dans le module ThisWorkbook: Private Sub Workbook_Open() Set DynamicSheets = New Collection End Sub
2) Dans un module de classe nommé DynamicSheet: Public WithEvents OneSheet As Worksheet
Private Sub OneSheet_Change(ByVal Target As Range) MsgBox OneSheet.Name 'Ton code End Sub
Private Sub OneSheet_SelectionChange(ByVal Target As Range) MsgBox Target.Address 'Ton code End Sub
3) Dans un module standard: Public DynamicSheets As Collection
Sub CreerFeuilleAvecEvenements() Dim DynSheet As DynamicSheet Set DynSheet = New DynamicSheet Set DynSheet.OneSheet = Sheets.Add DynamicSheets.Add DynSheet End Sub
Cordialement,
Manu/
"Michel MORICE" a écrit dans le message de news: 47697e41$0$850$
Bonjour/Bonsoir
Je suis sur un nouveau projet de programme VBA et je coince sur ce que je vous demande de bien vouloir m'aider:
- mon application créé de nouvelles feuilles. - ces feuilles sont remplies d'informations et de formules - l'opérateur doit modifier le contenu de certaine cellule dans ces nouvelles feuilles. - je souhaite détecter ces modifications à partir de mon application principale.
Comme ces feuilles sont créées de façon dynamique, je ne peux pas compter sur les évènements propres à ces feuilles, ou alors il faut les écrire aussi de façon dynamique, mais comment ?
Y-a-t'il un moyen dans un module de détecter ces évènements de feuille ?
Merci d'avance
Michel
Michel MORICE
Bonsoir Manu
Merci beaucoup pour cette aide. Je me doutais qu'il fallait passer par un module de classe, mais je ne maîtrise pas du tout ce sujet. A la lecture de ta solution, je comprends;mais j'aurais été incapable de la trouver seul. Je pense que les informations que l'on trouve sur les modules de classe dans les bouquins ou sur le Net ne sont pas très claires. Eventuellement, si tu as un tuyau.....
Merci encore
Michel "tissot.emmanuel" a écrit dans le message de news:
Bonsoir,
Tu peux utiliser un module de classe.
1) Dans le module ThisWorkbook: Private Sub Workbook_Open() Set DynamicSheets = New Collection End Sub
2) Dans un module de classe nommé DynamicSheet: Public WithEvents OneSheet As Worksheet
Private Sub OneSheet_Change(ByVal Target As Range) MsgBox OneSheet.Name 'Ton code End Sub
Private Sub OneSheet_SelectionChange(ByVal Target As Range) MsgBox Target.Address 'Ton code End Sub
3) Dans un module standard: Public DynamicSheets As Collection
Sub CreerFeuilleAvecEvenements() Dim DynSheet As DynamicSheet Set DynSheet = New DynamicSheet Set DynSheet.OneSheet = Sheets.Add DynamicSheets.Add DynSheet End Sub
Cordialement,
Manu/
"Michel MORICE" a écrit dans le message de news: 47697e41$0$850$
Bonjour/Bonsoir
Je suis sur un nouveau projet de programme VBA et je coince sur ce que je vous demande de bien vouloir m'aider:
- mon application créé de nouvelles feuilles. - ces feuilles sont remplies d'informations et de formules - l'opérateur doit modifier le contenu de certaine cellule dans ces nouvelles feuilles. - je souhaite détecter ces modifications à partir de mon application principale.
Comme ces feuilles sont créées de façon dynamique, je ne peux pas compter sur les évènements propres à ces feuilles, ou alors il faut les écrire aussi de façon dynamique, mais comment ?
Y-a-t'il un moyen dans un module de détecter ces évènements de feuille ?
Merci d'avance
Michel
Bonsoir Manu
Merci beaucoup pour cette aide.
Je me doutais qu'il fallait passer par un module de classe, mais je ne
maîtrise pas du tout ce sujet.
A la lecture de ta solution, je comprends;mais j'aurais été incapable de la
trouver seul.
Je pense que les informations que l'on trouve sur les modules de classe dans
les bouquins ou sur le Net ne sont pas très claires. Eventuellement, si tu
as un tuyau.....
Merci encore
Michel
"tissot.emmanuel" <tissot.emmanuel@free.fr> a écrit dans le message de news:
eiKNNQsQIHA.1188@TK2MSFTNGP04.phx.gbl...
Bonsoir,
Tu peux utiliser un module de classe.
1) Dans le module ThisWorkbook:
Private Sub Workbook_Open()
Set DynamicSheets = New Collection
End Sub
2) Dans un module de classe nommé DynamicSheet:
Public WithEvents OneSheet As Worksheet
Private Sub OneSheet_Change(ByVal Target As Range)
MsgBox OneSheet.Name 'Ton code
End Sub
Private Sub OneSheet_SelectionChange(ByVal Target As Range)
MsgBox Target.Address 'Ton code
End Sub
3) Dans un module standard:
Public DynamicSheets As Collection
Sub CreerFeuilleAvecEvenements()
Dim DynSheet As DynamicSheet
Set DynSheet = New DynamicSheet
Set DynSheet.OneSheet = Sheets.Add
DynamicSheets.Add DynSheet
End Sub
Cordialement,
Manu/
"Michel MORICE" <mor.mic@wanadoo.fr> a écrit dans le message de news:
47697e41$0$850$ba4acef3@news.orange.fr...
Bonjour/Bonsoir
Je suis sur un nouveau projet de programme VBA et je coince sur ce que je
vous demande de bien vouloir m'aider:
- mon application créé de nouvelles feuilles.
- ces feuilles sont remplies d'informations et de formules
- l'opérateur doit modifier le contenu de certaine cellule dans ces
nouvelles feuilles.
- je souhaite détecter ces modifications à partir de mon application
principale.
Comme ces feuilles sont créées de façon dynamique, je ne peux pas compter
sur les évènements propres à ces feuilles, ou alors il faut les écrire
aussi de façon dynamique, mais comment ?
Y-a-t'il un moyen dans un module de détecter ces évènements de feuille ?
Merci beaucoup pour cette aide. Je me doutais qu'il fallait passer par un module de classe, mais je ne maîtrise pas du tout ce sujet. A la lecture de ta solution, je comprends;mais j'aurais été incapable de la trouver seul. Je pense que les informations que l'on trouve sur les modules de classe dans les bouquins ou sur le Net ne sont pas très claires. Eventuellement, si tu as un tuyau.....
Merci encore
Michel "tissot.emmanuel" a écrit dans le message de news:
Bonsoir,
Tu peux utiliser un module de classe.
1) Dans le module ThisWorkbook: Private Sub Workbook_Open() Set DynamicSheets = New Collection End Sub
2) Dans un module de classe nommé DynamicSheet: Public WithEvents OneSheet As Worksheet
Private Sub OneSheet_Change(ByVal Target As Range) MsgBox OneSheet.Name 'Ton code End Sub
Private Sub OneSheet_SelectionChange(ByVal Target As Range) MsgBox Target.Address 'Ton code End Sub
3) Dans un module standard: Public DynamicSheets As Collection
Sub CreerFeuilleAvecEvenements() Dim DynSheet As DynamicSheet Set DynSheet = New DynamicSheet Set DynSheet.OneSheet = Sheets.Add DynamicSheets.Add DynSheet End Sub
Cordialement,
Manu/
"Michel MORICE" a écrit dans le message de news: 47697e41$0$850$
Bonjour/Bonsoir
Je suis sur un nouveau projet de programme VBA et je coince sur ce que je vous demande de bien vouloir m'aider:
- mon application créé de nouvelles feuilles. - ces feuilles sont remplies d'informations et de formules - l'opérateur doit modifier le contenu de certaine cellule dans ces nouvelles feuilles. - je souhaite détecter ces modifications à partir de mon application principale.
Comme ces feuilles sont créées de façon dynamique, je ne peux pas compter sur les évènements propres à ces feuilles, ou alors il faut les écrire aussi de façon dynamique, mais comment ?
Y-a-t'il un moyen dans un module de détecter ces évènements de feuille ?
Merci d'avance
Michel
tissot.emmanuel
Bonsoir,
En francais, appliqué à Access mais transposable à Excel.
http://sinarf.developpez.com/access/vbaclass/#L0
En anglais mais compréhensible avec un niveau scolaire.
Manu/ "Michel MORICE" a écrit dans le message de news: 476aebd1$0$866$
Bonsoir Manu
Merci beaucoup pour cette aide. Je me doutais qu'il fallait passer par un module de classe, mais je ne maîtrise pas du tout ce sujet. A la lecture de ta solution, je comprends;mais j'aurais été incapable de la trouver seul. Je pense que les informations que l'on trouve sur les modules de classe dans les bouquins ou sur le Net ne sont pas très claires. Eventuellement, si tu as un tuyau.....
Merci encore
Michel "tissot.emmanuel" a écrit dans le message de news:
Bonsoir,
Tu peux utiliser un module de classe.
1) Dans le module ThisWorkbook: Private Sub Workbook_Open() Set DynamicSheets = New Collection End Sub
2) Dans un module de classe nommé DynamicSheet: Public WithEvents OneSheet As Worksheet
Private Sub OneSheet_Change(ByVal Target As Range) MsgBox OneSheet.Name 'Ton code End Sub
Private Sub OneSheet_SelectionChange(ByVal Target As Range) MsgBox Target.Address 'Ton code End Sub
3) Dans un module standard: Public DynamicSheets As Collection
Sub CreerFeuilleAvecEvenements() Dim DynSheet As DynamicSheet Set DynSheet = New DynamicSheet Set DynSheet.OneSheet = Sheets.Add DynamicSheets.Add DynSheet End Sub
Cordialement,
Manu/
"Michel MORICE" a écrit dans le message de news: 47697e41$0$850$
Bonjour/Bonsoir
Je suis sur un nouveau projet de programme VBA et je coince sur ce que je vous demande de bien vouloir m'aider:
- mon application créé de nouvelles feuilles. - ces feuilles sont remplies d'informations et de formules - l'opérateur doit modifier le contenu de certaine cellule dans ces nouvelles feuilles. - je souhaite détecter ces modifications à partir de mon application principale.
Comme ces feuilles sont créées de façon dynamique, je ne peux pas compter sur les évènements propres à ces feuilles, ou alors il faut les écrire aussi de façon dynamique, mais comment ?
Y-a-t'il un moyen dans un module de détecter ces évènements de feuille ?
Merci d'avance
Michel
Bonsoir,
En francais, appliqué à Access mais transposable à Excel.
http://sinarf.developpez.com/access/vbaclass/#L0
En anglais mais compréhensible avec un niveau scolaire.
Manu/
"Michel MORICE" <mor.mic@wanadoo.fr> a écrit dans le message de news:
476aebd1$0$866$ba4acef3@news.orange.fr...
Bonsoir Manu
Merci beaucoup pour cette aide.
Je me doutais qu'il fallait passer par un module de classe, mais je ne
maîtrise pas du tout ce sujet.
A la lecture de ta solution, je comprends;mais j'aurais été incapable de
la trouver seul.
Je pense que les informations que l'on trouve sur les modules de classe
dans les bouquins ou sur le Net ne sont pas très claires. Eventuellement,
si tu as un tuyau.....
Merci encore
Michel
"tissot.emmanuel" <tissot.emmanuel@free.fr> a écrit dans le message de
news: eiKNNQsQIHA.1188@TK2MSFTNGP04.phx.gbl...
Bonsoir,
Tu peux utiliser un module de classe.
1) Dans le module ThisWorkbook:
Private Sub Workbook_Open()
Set DynamicSheets = New Collection
End Sub
2) Dans un module de classe nommé DynamicSheet:
Public WithEvents OneSheet As Worksheet
Private Sub OneSheet_Change(ByVal Target As Range)
MsgBox OneSheet.Name 'Ton code
End Sub
Private Sub OneSheet_SelectionChange(ByVal Target As Range)
MsgBox Target.Address 'Ton code
End Sub
3) Dans un module standard:
Public DynamicSheets As Collection
Sub CreerFeuilleAvecEvenements()
Dim DynSheet As DynamicSheet
Set DynSheet = New DynamicSheet
Set DynSheet.OneSheet = Sheets.Add
DynamicSheets.Add DynSheet
End Sub
Cordialement,
Manu/
"Michel MORICE" <mor.mic@wanadoo.fr> a écrit dans le message de news:
47697e41$0$850$ba4acef3@news.orange.fr...
Bonjour/Bonsoir
Je suis sur un nouveau projet de programme VBA et je coince sur ce que
je vous demande de bien vouloir m'aider:
- mon application créé de nouvelles feuilles.
- ces feuilles sont remplies d'informations et de formules
- l'opérateur doit modifier le contenu de certaine cellule dans ces
nouvelles feuilles.
- je souhaite détecter ces modifications à partir de mon application
principale.
Comme ces feuilles sont créées de façon dynamique, je ne peux pas
compter sur les évènements propres à ces feuilles, ou alors il faut les
écrire aussi de façon dynamique, mais comment ?
Y-a-t'il un moyen dans un module de détecter ces évènements de feuille ?
Manu/ "Michel MORICE" a écrit dans le message de news: 476aebd1$0$866$
Bonsoir Manu
Merci beaucoup pour cette aide. Je me doutais qu'il fallait passer par un module de classe, mais je ne maîtrise pas du tout ce sujet. A la lecture de ta solution, je comprends;mais j'aurais été incapable de la trouver seul. Je pense que les informations que l'on trouve sur les modules de classe dans les bouquins ou sur le Net ne sont pas très claires. Eventuellement, si tu as un tuyau.....
Merci encore
Michel "tissot.emmanuel" a écrit dans le message de news:
Bonsoir,
Tu peux utiliser un module de classe.
1) Dans le module ThisWorkbook: Private Sub Workbook_Open() Set DynamicSheets = New Collection End Sub
2) Dans un module de classe nommé DynamicSheet: Public WithEvents OneSheet As Worksheet
Private Sub OneSheet_Change(ByVal Target As Range) MsgBox OneSheet.Name 'Ton code End Sub
Private Sub OneSheet_SelectionChange(ByVal Target As Range) MsgBox Target.Address 'Ton code End Sub
3) Dans un module standard: Public DynamicSheets As Collection
Sub CreerFeuilleAvecEvenements() Dim DynSheet As DynamicSheet Set DynSheet = New DynamicSheet Set DynSheet.OneSheet = Sheets.Add DynamicSheets.Add DynSheet End Sub
Cordialement,
Manu/
"Michel MORICE" a écrit dans le message de news: 47697e41$0$850$
Bonjour/Bonsoir
Je suis sur un nouveau projet de programme VBA et je coince sur ce que je vous demande de bien vouloir m'aider:
- mon application créé de nouvelles feuilles. - ces feuilles sont remplies d'informations et de formules - l'opérateur doit modifier le contenu de certaine cellule dans ces nouvelles feuilles. - je souhaite détecter ces modifications à partir de mon application principale.
Comme ces feuilles sont créées de façon dynamique, je ne peux pas compter sur les évènements propres à ces feuilles, ou alors il faut les écrire aussi de façon dynamique, mais comment ?
Y-a-t'il un moyen dans un module de détecter ces évènements de feuille ?