Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Evènement sur une feuille nouvelle

3 réponses
Avatar
Michel MORICE
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

3 réponses

Avatar
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



Avatar
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







Avatar
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.

http://msdn2.microsoft.com/en-us/library/aa140954(office.10).aspx

Ensuite il faut mettre les mains dans le camboui.

Bonne fêtes,

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