Evènement sur une feuille nouvelle

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
tissot.emmanuel
Le #5377411
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" 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
Le #5376531
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"
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" 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
Le #5376461
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" 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" 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" 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











Publicité
Poster une réponse
Anonyme