Changement cellule automatique

chop85

XLDnaute Nouveau
Bonjour,

J'aimerai pouvoir utiliser une macro qui s'exécute lorsque une ou plusieurs cellules changent.

Si les cellules A7, A36, A65 ou A94 .... (tous les 29ème cellules) changent, alors dans la plage voulu, la cellule sur la colonne
'E' change aussi de valeur.

En exemples :
Si A7 a été modifié >> alors dans la plage "A7:A35", toutes les cellules dans la colonne 'E' changent aussi.
Si A36 a été modifié >> alors dans la plage "A36:A65", toutes les cellules dans la colonne 'E' changent aussi.


Si possible en utilisant ce début de code :
Code:
Sub Worksheet_Change(ByVal Target As Range)

On Error GoTo Erreurs

Dim i As Integer, DerniereLigne As Integer
Dim KeyCells As Range

' La variable KeyCells contient les cellules qui déclencheront
' une alerte si elles sont modifiées.
Set KeyCells = Range("A1:H1000")

If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
    Application.EnableEvents = False
    DerniereLigne = Cells(1000, 1).End(xlUp).Row
    For i = 7 To DerniereLigne
        Cells(i, 5) = Cells(i, 5) / 86400
	Cells(i, 5).NumberFormat = "[h]""h"" mm""min"" ss""sec"""
    Next i
    Application.EnableEvents = True
End If
Erreurs:
    If Err <> 0 Then Application.EnableEvents = True
End Sub

Merci pour votre aide.
 
Dernière édition:

Gorfael

XLDnaute Barbatruc
Re : Changement cellule automatique

Salut chop85 et le forum
Testes cette macro sur une feuille vierge
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Plage As Range, Cel As Range
Dim X As Long
Set Plage = Intersect(Target, Columns(1))
If Plage Is Nothing Then Exit Sub
For Each Cel In Plage
    X = Cel.Row - 7
    X = X Mod 29
    If X = 0 Then MsgBox Cel.Row
Next Cel
End Sub
Vérifie en testant que ce soit les bonnes lignes qui t'amènent la boîte de dialogue.
A+
 

chop85

XLDnaute Nouveau
Re : Changement cellule automatique

Merci pour ta réponse.
J'ai bien la boîte de dialogue sur les lignes 7, 36, 65 ...

Par contre, comment je pourrais l'adapter pour mon cas précis, cad en modifiant les cellules de la colonne 'E' quand une cellule (7,36,65...) a été modifié.
 

laetitia90

XLDnaute Barbatruc
Re : Changement cellule automatique

bonjour chop85,Gorfael

peu être comme cela

Code:
Sub Worksheet_Change(ByVal Target As Range)
Dim z As Long, x As Variant, r As Long, c As Long
Application.ScreenUpdating = False
If Not Application.Intersect(Target, Range("A7:A991")) Is Nothing Then
z = (Target.Row - 7) Mod 29
If z = 0 Then
x = Range("e" & Target.Row & ":e" & Target.Row + 28)
     For r = 1 To UBound(x, 1)
     For c = 1 To UBound(x, 2)
           x(r, c) = x(r, c) / 86400
     Next c: Next r
Range("e" & Target.Row & ":e" & Target.Row + 28) = x
Range("E" & Target.Row & ":E" & Target.Row + 28).NumberFormat = "[h]""h"" mm""min"" ss""sec"""
End If: End If
End Sub
 

Discussions similaires

Réponses
5
Affichages
246
Réponses
0
Affichages
178
Réponses
12
Affichages
617

Statistiques des forums

Discussions
312 523
Messages
2 089 306
Membres
104 119
dernier inscrit
karbone57