Probleme avec l'evenement de ma macro

Bonjour a tous

mon événement ne va pas avec ma macro je voudrait que ma macro soit exécuter a chaque modification de cellules

merci d'avance

Private Sub Worksheet_Activate()
Dim T(), L&, C&
T = [I3:AH10].Value
For L = 1 To 8: For C = 1 To 8
If L Mod 3 <> 0 And C Mod 3 <> 0 And IsEmpty(T(L, C)) Then T(L, C) = IIf(IsEmpty(T(L, C)), _
IIf(IsEmpty(T(L, C + 18)), TimeSerial(7, 30, 0), Empty), Empty)
Next C, L
[I3: P10].Value = T
End Sub

Bonsoir,

Utilise l'évènement Change ! Personne ne te contraint à utiliser Activate contre ton gré !

j' ai tenter avec Change et sélection change je rame

Mets un fichier si tu veux qu'on regarde de plus près...

voici le fichier merci pour votre interet

9gestemps.xlsm (23.53 Ko)

Essayer :

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim isect As Range, c As Range
    Set isect = Intersect(Target, [AA3:AH10])
    If Not isect Is Nothing Then
        For Each c In Target.Cells
            If c.Row Mod 3 <> 2 And c.Column Mod 3 <> 2 Then
                c.Offset(, -18) = IIf(IsEmpty(c), TimeSerial(7, 30, 0), Empty)
            End If
        Next c
    Else
        Set isect = Intersect(Target, [I3:P10])
        If Not isect Is Nothing Then
            Application.EnableEvents = False
            For Each c In Target.Cells
                If c.Row Mod 3 <> 2 And c.Column Mod 3 <> 2 Then
                    c = IIf(IsEmpty(c.Offset(, 18)), TimeSerial(7, 30, 0), Empty)
                End If
            Next c
            Application.EnableEvents = True
        End If
    End If
End Sub

Cordialement.

Bonjour à tous

super un grand merci MFerrand

Dans l’opération, on a perdu la possibilité que chacune des cellules de la plage (I3:P10) soit renseignée manuellement.

Merci

Bonjour,

Choix à faire : si tu veux garder cette possibilité, tu réduis la procédure à ça :

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim isect As Range, c As Range
    Set isect = Intersect(Target, [AA3:AH10])
    If Not isect Is Nothing Then
        For Each c In Target.Cells
            If c.Row Mod 3 <> 2 And c.Column Mod 3 <> 2 Then
                c.Offset(, -18) = IIf(IsEmpty(c), TimeSerial(7, 30, 0), Empty)
            End If
        Next c
    End If
End Sub

ce qui te permettra d'avoir l'inscription sur les 2 tableaux simultanément.

Mais tu peux aussi inverser le procédé pour la 2e partie : si on inscrit dans le 1er tableau, ça efface dans l'autre, et si on efface ça inscrit dans l'autre... Ce qui rendra symétrique l'intervention dans un tableau ou l'autre.

Cordialement.

ok merci beaucoup

je autre question

comment concaténer les plages (I3:P10) et (AA3:AH10) dans la plage (R3:Y10)

Qu'est-ce que tu entends par là ? Quel doit être le résultat ?

Re.

le résultat serait la récupération dans la plage (R3:Y10) les valeurs des plages (I3:P10) et (AA3:AH10)

j’ espère être suffisamment explicite

Etant donné qu'elles se complètent, dans cette plage, tu vas avoir 07:30 partout !

AVANT

cap 1

APRES

cap2

Si c'est plus parlant

C'est bien ce que je disais, le résultat sera toujours le même !

Re

oui c'est vrai pour se qui serai récupéré de la plage (I3:P10) et pour la plage (AA3:AH10) se serai les valeur que j' aurai saisie

MFerrand a écrit :

Bonjour,

Choix à faire : si tu veux garder cette possibilité, tu réduis la procédure à ça :

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim isect As Range, c As Range
    Set isect = Intersect(Target, [AA3:AH10])
    If Not isect Is Nothing Then
        For Each c In Target.Cells
            If c.Row Mod 3 <> 2 And c.Column Mod 3 <> 2 Then
                c.Offset(, -18) = IIf(IsEmpty(c), TimeSerial(7, 30, 0), Empty)
            End If
        Next c
    End If
End Sub

ce qui te permettra d'avoir l'inscription sur les 2 tableaux simultanément.

Mais tu peux aussi inverser le procédé pour la 2e partie : si on inscrit dans le 1er tableau, ça efface dans l'autre, et si on efface ça inscrit dans l'autre... Ce qui rendra symétrique l'intervention dans un tableau ou l'autre.

re je n' arrive a l'adapter ! au secours

Cordialement.

Rechercher des sujets similaires à "probleme evenement macro"