OVH Cloud OVH Cloud

Worksheet_Change

2 réponses
Avatar
Christian Raoux
Salut la liste

J'ai dans 1 feuille :

Sub Worksheet_Change(ByVal Target As Range)

Dim IndexFeuil As Byte

'Affiche ou cache les ligne vides des salaries
'sur les feuilles planning

LigneSalarie = 6
IndexFeuil = 16

For i = 1 To 52


If Salaries.Cells(LigneSalarie, 2) = "" Then
Janvier.Rows(LigneSalarie).Hidden = True
Fevrier.Rows(LigneSalarie).Hidden = True
Decembre.Rows(LigneSalarie).Hidden = True
Sheets(IndexFeuil).Visible = False
Else
Janvier.Rows(LigneSalarie).Hidden = False
Fevrier.Rows(LigneSalarie).Hidden = False
Sheets(IndexFeuil).Visible = True
End If
If i = 15 Then IndexFeuil = IndexFeuil - 1
If i = 37 Then IndexFeuil = IndexFeuil - 1
IndexFeuil = IndexFeuil + 1
LigneSalarie = LigneSalarie + 1
Next i
Call Renommer
End Sub

cette macro s'execute quel que soit la cellule modifiée
je voudrai qu'elle ne séxecute que si ce sont les cellules :
A6:B19 A21:B40

merci d'avance

Christian

2 réponses

Avatar
Dédé
Salut Christian !

Dans mon exemple, la macro qui affiche un message (coucou ...) se déclenche
uniquement lors de la modification des cellules que tu veux ...
Essaie et dis-moi des nouvelles ;-))

Private Sub Worksheet_Change(ByVal DD As Range)
If Not Intersect(DD, [A6:B19]) Is Nothing Then
MsgBox "coucou"
Else: If Not Intersect(DD, [A21:B40]) Is Nothing Then MsgBox "Coucou"
End If
End Sub

Salutations
Dédé

--
Pour répondre, enlever les lettres N O S P A M
"Christian Raoux" a écrit dans le message de
news:
Salut la liste

J'ai dans 1 feuille :

Sub Worksheet_Change(ByVal Target As Range)

Dim IndexFeuil As Byte

'Affiche ou cache les ligne vides des salaries
'sur les feuilles planning

LigneSalarie = 6
IndexFeuil = 16

For i = 1 To 52


If Salaries.Cells(LigneSalarie, 2) = "" Then
Janvier.Rows(LigneSalarie).Hidden = True
Fevrier.Rows(LigneSalarie).Hidden = True
Decembre.Rows(LigneSalarie).Hidden = True
Sheets(IndexFeuil).Visible = False
Else
Janvier.Rows(LigneSalarie).Hidden = False
Fevrier.Rows(LigneSalarie).Hidden = False
Sheets(IndexFeuil).Visible = True
End If
If i = 15 Then IndexFeuil = IndexFeuil - 1
If i = 37 Then IndexFeuil = IndexFeuil - 1
IndexFeuil = IndexFeuil + 1
LigneSalarie = LigneSalarie + 1
Next i
Call Renommer
End Sub

cette macro s'execute quel que soit la cellule modifiée
je voudrai qu'elle ne séxecute que si ce sont les cellules :
A6:B19 A21:B40

merci d'avance

Christian


Avatar
Christian Raoux
Salut Dédé

merci ça marche bien j'ai du l'adapter

christian

"Dédé" écrivait
news::

Salut Christian !

Dans mon exemple, la macro qui affiche un message (coucou ...) se
déclenche uniquement lors de la modification des cellules que tu veux
... Essaie et dis-moi des nouvelles ;-))

Private Sub Worksheet_Change(ByVal DD As Range)
If Not Intersect(DD, [A6:B19]) Is Nothing Then
MsgBox "coucou"
Else: If Not Intersect(DD, [A21:B40]) Is Nothing Then MsgBox "Coucou"
End If
End Sub

Salutations
Dédé