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

Procédure événementielle applicable à toutes les feuilles d'un c la

3 réponses
Avatar
GGAL
Bonjour,

J'ai une procédure pour une feuille, que je souhaite appliquer pour les
toutes feuilles du classeur, correspondant aux douze mois de l'année. Le
fonctionnment est parfaitement identique pour chacune d'elles. Existe-t-il
une procédure élégante dans un module à part applicable à l'ensemble des
feuilles, plutôt que de copier la procédure pour chaque feuille ?
Par exemple (j'ai raccouci) :

Sub Worksheet_Change(ByVal Target As Excel.Range)
For i = 6 to 36
If Target.Address = "$B$" & i Then
Range("C" & i) = Range("B" & i) - Range("A" & i)
End If
Next
End Sub

Merci
GGal

3 réponses

Avatar
JP25
Bonsoir,
Je ne vois pas, mais en copiant cette proc sur chaque feuille, ça fonctionne
sur toutes les feuilles de lig 6 à 26
Sub Worksheet_Change(ByVal Target As Excel.Range)
For i = 6 To 36
If Target.Address = Cells(i, 2).Address Then
Cells(i, 3) = Cells(i, 2) - Cells(i, 1)
End If
Next
End Sub
--
Cordialement
JP25


"GGAL" a écrit dans le message de news:

Bonjour,

J'ai une procédure pour une feuille, que je souhaite appliquer pour les
toutes feuilles du classeur, correspondant aux douze mois de l'année. Le
fonctionnment est parfaitement identique pour chacune d'elles. Existe-t-il
une procédure élégante dans un module à part applicable à l'ensemble des
feuilles, plutôt que de copier la procédure pour chaque feuille ?
Par exemple (j'ai raccouci) :

Sub Worksheet_Change(ByVal Target As Excel.Range)
For i = 6 to 36
If Target.Address = "$B$" & i Then
Range("C" & i) = Range("B" & i) - Range("A" & i)
End If
Next
End Sub

Merci
GGal


Avatar
Daniel
Bonsoir.
Utilise au niveau classeur (ThisWorkbook) l'évènement :
Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Cordialement.
Daniel
"GGAL" a écrit dans le message de news:

Bonjour,

J'ai une procédure pour une feuille, que je souhaite appliquer pour les
toutes feuilles du classeur, correspondant aux douze mois de l'année. Le
fonctionnment est parfaitement identique pour chacune d'elles. Existe-t-il
une procédure élégante dans un module à part applicable à l'ensemble des
feuilles, plutôt que de copier la procédure pour chaque feuille ?
Par exemple (j'ai raccouci) :

Sub Worksheet_Change(ByVal Target As Excel.Range)
For i = 6 to 36
If Target.Address = "$B$" & i Then
Range("C" & i) = Range("B" & i) - Range("A" & i)
End If
Next
End Sub

Merci
GGal


Avatar
GGAL
Impec
Merci beaucoup

GGal