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

activer macro si changement dans une cellule precise

5 réponses
Avatar
magic-dd
Bonjour

je cherche =E0 faire fonctionner une macro qui ne d=E9marrera uniquement
si je suis sur la cellule N&ligne() et R&ligne()

car lorsque je vais remplir par exemple en ligne 11 mes colonnes B,C,D
puis je vais en N alors ca demarrera ma macro quand je validerai cette
cellule

et ceci pour toutes les feuilles de mon classeur

merci de votre aide

5 réponses

Avatar
michdenis
Bonjour,

à chaque fois qu'une cellule des colonnes N ou R sera modifiée
la macro "MaMacro" sera appelée

à copier dans le module feuille où l'action se déroule.
'-------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range
Set Rg = Intersect(Target, Range("N:N,R:R"))
If Not Rg Is Nothing Then
For Each c In Rg
Call MaMacro
Next
End If
End Sub
'-------------------------------


MichD
--------------------------------------------
"magic-dd" a écrit dans le message de groupe de discussion :


Bonjour

je cherche à faire fonctionner une macro qui ne démarrera uniquement
si je suis sur la cellule N&ligne() et R&ligne()

car lorsque je vais remplir par exemple en ligne 11 mes colonnes B,C,D
puis je vais en N alors ca demarrera ma macro quand je validerai cette
cellule

et ceci pour toutes les feuilles de mon classeur

merci de votre aide
Avatar
magic-dd
bonjour michdenis

merci à toi maitre de l'excel

en revanche , afin d'eviter de le mettre dans mes 12 feuilles, n'est
il pas possible de le mettre dans le thisworkbook?



On 23 déc, 16:37, "michdenis" wrote:
Bonjour,

chaque fois qu'une cellule des colonnes N ou R sera modifi e
la macro "MaMacro" sera appel e

copier dans le module feuille o l'action se d roule.
'-------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range
Set Rg = Intersect(Target, Range("N:N,R:R"))
If Not Rg Is Nothing Then
    For Each c In Rg
        Call MaMacro
    Next
End If
End Sub
'-------------------------------

MichD
--------------------------------------------
"magic-dd"  a crit dans le message de groupe de discussion :


Bonjour

je cherche faire fonctionner une macro qui ne d marrera uniquement
si je suis sur la cellule N&ligne() et R&ligne()

car lorsque je vais remplir par exemple en ligne 11 mes colonnes B,C,D
puis je vais en N alors ca demarrera ma macro quand je validerai cette
cellule

et ceci pour toutes les feuilles de mon classeur

merci de votre aide
Avatar
michdenis
Comme ceci :

Dans le ThisWorkbook
'------------------------------
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

Select Case Sh.CodeName
'Tu énumère toute les feuilles ...
'utilises la propriété Name des objets feuille
'visible seulement en VBA
Case Is = "Sheet1", "sheet3"
'Le reste du code donné


End Select
End Sub
'------------------------------


MichD
--------------------------------------------
"magic-dd" a écrit dans le message de groupe de discussion :


bonjour michdenis

merci à toi maitre de l'excel

en revanche , afin d'eviter de le mettre dans mes 12 feuilles, n'est
il pas possible de le mettre dans le thisworkbook?



On 23 déc, 16:37, "michdenis" wrote:
Bonjour,

chaque fois qu'une cellule des colonnes N ou R sera modifi e
la macro "MaMacro" sera appel e

copier dans le module feuille o l'action se d roule.
'-------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range
Set Rg = Intersect(Target, Range("N:N,R:R"))
If Not Rg Is Nothing Then
For Each c In Rg
Call MaMacro
Next
End If
End Sub
'-------------------------------

MichD
--------------------------------------------
"magic-dd" a crit dans le message de groupe de discussion :


Bonjour

je cherche faire fonctionner une macro qui ne d marrera uniquement
si je suis sur la cellule N&ligne() et R&ligne()

car lorsque je vais remplir par exemple en ligne 11 mes colonnes B,C,D
puis je vais en N alors ca demarrera ma macro quand je validerai cette
cellule

et ceci pour toutes les feuilles de mon classeur

merci de votre aide
Avatar
magic-dd
Quelle rapidité

seulement je suis aussi mauvais que tu es rapide

voici ce que j'ai ecris

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)

Select Case Sh.CodeName
'Tu num re toute les feuilles ...
'utilises la propri t Name des objets feuille
'visible seulement en VBA

Case Is = "Feuil15", "Feuil3", "Feuil4", "Feuil5", "Feuil6",
"Feuil7", "Feuil8", "Feuil9", "Feuil10", "Feuil11", "Feuil12",
"Feuil13"
'Le reste du code donn

fin = Range("F65536").End(xlUp)(2).Row - 1

Dim Rg As Range

Set Rg = Intersect(Target, Range("N:N,R:R"))

If Not Rg Is Nothing Then

For Each c In Rg

Range("V" & fin).Formula = "=$V$6-SUM(N$9:N" & fin & ")+SUM(R$9:R"
& fin & ")"

Range("n5:x500").NumberFormat = "#,##0.00 $"

Next

End If

Application.ScreenUpdating = True

End Select
End Sub



On 23 déc, 17:13, "michdenis" wrote:
Comme ceci :

Dans le ThisWorkbook
'------------------------------
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Rang e)

Select Case Sh.CodeName
    'Tu num re toute les feuilles ...
    'utilises la propri t Name des objets feuille
    'visible seulement en VBA
    Case Is = "Sheet1", "sheet3"
        'Le reste du code donn

End Select
End Sub
'------------------------------

MichD
--------------------------------------------
"magic-dd"  a crit dans le message de groupe de discussion :


bonjour michdenis

merci toi maitre de l'excel

en revanche , afin d'eviter de le mettre dans mes 12 feuilles, n'est
il pas possible de le mettre dans le thisworkbook?

On 23 d c, 16:37, "michdenis" wrote:



> Bonjour,

> chaque fois qu'une cellule des colonnes N ou R sera modifi e
> la macro "MaMacro" sera appel e

> copier dans le module feuille o l'action se d roule.
> '-------------------------------
> Private Sub Worksheet_Change(ByVal Target As Range)
> Dim Rg As Range
> Set Rg = Intersect(Target, Range("N:N,R:R"))
> If Not Rg Is Nothing Then
>     For Each c In Rg
>         Call MaMacro
>     Next
> End If
> End Sub
> '-------------------------------

> MichD
> --------------------------------------------
> "magic-dd"  a crit dans le message de groupe de discussion :
>

> Bonjour

> je cherche faire fonctionner une macro qui ne d marrera uniquement
> si je suis sur la cellule N&ligne() et R&ligne()

> car lorsque je vais remplir par exemple en ligne 11 mes colonnes B,C,D
> puis je vais en N alors ca demarrera ma macro quand je validerai cette
> cellule

> et ceci pour toutes les feuilles de mon classeur

> merci de votre aide
Avatar
michdenis
Dans le ThisWorkbook
'------------------------------
Private Sub Workbook_SheetChange(ByVal Sh As Object, _
ByVal Target As Range)
Dim Rg As Range, C As Range
aa = Sh.CodeName
Select Case Sh.CodeName
Case Is = "Feuil15", "Feuil3", "Feuil4", _
"Feuil5", "Feuil6", "Feuil7", "Feuil8", _
"Feuil9", "Feuil10", "Feuil11", _
"Feuil12", "Feuil13"

Set Rg = Intersect(Target, Range("N:N,R:R"))
If Not Rg Is Nothing Then
For Each C In Rg
Call MaMacro(C)
Next
End If
End Select
End Sub
'------------------------------

Dans un module standard : Ne te gêne pas pour apporter
des modifications s'il manque un ou des éléments à ce que
tu veux réaliser !
'------------------------------
Sub MaMacro(Rg As Range)
Dim Fin As Long
With Worksheets(Rg.Parent.Name)
Fin = .Cells(65536, Rg.Column).End(xlUp).Row
Application.EnableEvents = False
.Range("V" & Fin).Formula = "=$V$6-SUM(N$9:N" & _
Fin & ")+SUM(R$9:R" & Fin & ")"
Application.EnableEvents = False
End With
End Sub
'------------------------------



MichD
--------------------------------------------
"magic-dd" a écrit dans le message de groupe de discussion :


Quelle rapidité

seulement je suis aussi mauvais que tu es rapide

voici ce que j'ai ecris

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)

Select Case Sh.CodeName
'Tu num re toute les feuilles ...
'utilises la propri t Name des objets feuille
'visible seulement en VBA

Case Is = "Feuil15", "Feuil3", "Feuil4", "Feuil5", "Feuil6",
"Feuil7", "Feuil8", "Feuil9", "Feuil10", "Feuil11", "Feuil12",
"Feuil13"
'Le reste du code donn

fin = Range("F65536").End(xlUp)(2).Row - 1

Dim Rg As Range

Set Rg = Intersect(Target, Range("N:N,R:R"))

If Not Rg Is Nothing Then

For Each c In Rg

Range("V" & fin).Formula = "=$V$6-SUM(N$9:N" & fin & ")+SUM(R$9:R"
& fin & ")"

Range("n5:x500").NumberFormat = "#,##0.00 $"

Next

End If

Application.ScreenUpdating = True

End Select
End Sub



On 23 déc, 17:13, "michdenis" wrote:
Comme ceci :

Dans le ThisWorkbook
'------------------------------
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

Select Case Sh.CodeName
'Tu num re toute les feuilles ...
'utilises la propri t Name des objets feuille
'visible seulement en VBA
Case Is = "Sheet1", "sheet3"
'Le reste du code donn

End Select
End Sub
'------------------------------

MichD
--------------------------------------------
"magic-dd" a crit dans le message de groupe de discussion :


bonjour michdenis

merci toi maitre de l'excel

en revanche , afin d'eviter de le mettre dans mes 12 feuilles, n'est
il pas possible de le mettre dans le thisworkbook?

On 23 d c, 16:37, "michdenis" wrote:



> Bonjour,

> chaque fois qu'une cellule des colonnes N ou R sera modifi e
> la macro "MaMacro" sera appel e

> copier dans le module feuille o l'action se d roule.
> '-------------------------------
> Private Sub Worksheet_Change(ByVal Target As Range)
> Dim Rg As Range
> Set Rg = Intersect(Target, Range("N:N,R:R"))
> If Not Rg Is Nothing Then
> For Each c In Rg
> Call MaMacro
> Next
> End If
> End Sub
> '-------------------------------

> MichD
> --------------------------------------------
> "magic-dd" a crit dans le message de groupe de discussion :
>

> Bonjour

> je cherche faire fonctionner une macro qui ne d marrera uniquement
> si je suis sur la cellule N&ligne() et R&ligne()

> car lorsque je vais remplir par exemple en ligne 11 mes colonnes B,C,D
> puis je vais en N alors ca demarrera ma macro quand je validerai cette
> cellule

> et ceci pour toutes les feuilles de mon classeur

> merci de votre aide