Procédure événementielle applicable à toutes les feuilles d'un c la
3 réponses
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
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
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
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 NoSpam-jpmonnier@tele2.fr
"GGAL" <GGAL@discussions.microsoft.com> a écrit dans le message de news:
AD44748B-D0A9-4EDF-B9D3-3A2468FF5059@microsoft.com...
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
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
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
Bonsoir.
Utilise au niveau classeur (ThisWorkbook) l'évènement :
Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Cordialement.
Daniel
"GGAL" <GGAL@discussions.microsoft.com> a écrit dans le message de news:
AD44748B-D0A9-4EDF-B9D3-3A2468FF5059@microsoft.com...
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
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