Partage
  • Partager sur Facebook
  • Partager sur Twitter

VBA Compter nombre de modification dans la semaine

Sujet résolu
    24 mai 2022 à 8:47:51

    Bonjour,

    J'ai un document excel partagé modifié regulierement par de nombreuses personnes. J'aimerais compter combien de case (en 1 semaine), prenne la valeur "annule", et reporter ce compte dans un autre excel en temps reel, afin de pouvoir voir par exemple le vendredi soir, voir combien de fois le statut "annule" a été rentré. Est-ce possible ?

    Voila ce a quoi j'ai pensé, ce n'est peut-etre pas la bonne solution :

    Mon idée serait de commencer a compter le lundi matin, en appelant une fonction "delete" qui, a une certaine heure, efface la valeur de la semaine précédente :

    Sub delete()
        Range("P18").Value = "0"
    End Sub
    
    Private Sub Workbook_Open()
    
        
        date_test = CDate(Now)
    
        If Weekday(date_test, 2) = "1" Then
    
            Application.OnTime TimeValue("07:00:00"), "delete"
        End If
    End Sub
    

    Ainsi, puisque ce fichier est tres souvent ouvert, il sera forcement ouvert le lundi, et cela remettra ainsi le compteur a zero.

    Ensuite, j'aimerais qu'une procedure soit active toute la semaine afin de compter lorsque "annule" est ajouté

    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim xRg As Range, xCell As Range, xCount As Long
        On Error Resume Next
        
        If Target = Range("O18") And Target.Value = "ANNULE" Then
            Range("P18").Value = Range("P18").Value + 1
        End If
        Application.EnableEvents = False
        Set xRg = Application.Intersect(Target.Dependents, Me.Range("O18"))
        If Not xRg Is Nothing Then
            xCount = xCount + 1
            Range("P18").Value = xCount
        End If
        Application.EnableEvents = True
    End Sub
    
    


    Cette procédure a l'air de marcher mais je ne sais pas comment mettre en oeuvre tout ensemble.

    Merci d'avance pour votre aide !

    -
    Edité par yamak9 24 mai 2022 à 9:48:12

    • Partager sur Facebook
    • Partager sur Twitter
      30 mai 2022 à 15:52:04

      pourquoi tu veux en temps réel ? pourquoi pas seulement le vendredi soir ?

      Avec ton Application.OnTime, il sera mis à 0 le lundi à 7h si il est ouvert avant (il faut aussi il me semble que excel soit ouvert à ce moment là)

      J'opterais peut-être pour une seconde valeur définissant l'état (1ère ouverture ce lundi (ou de la semaine, en cas de lundi férié), déjà ouvert le lundi), ou en réfléchissant, le numéro de semaine de la dernière ouverture (si c'est la dernière ouverture était la semaine précédente, on réinitialise le compteur)

      Dans ton code worksheet_change, j'ai l'impression que ça ajoute parfois 2 (le but c'est de regarder si la cellule de la colonne 18 de la ligne modifiée (target.row) vaut bien ANNULE ?) 

      Si une case passe de ANNULE à autre chose, on doit la décompter (-1) ?

      • Partager sur Facebook
      • Partager sur Twitter

      VBA Compter nombre de modification dans la semaine

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown