Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Remise dans le bain : statistiques estivales

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

criscris11

XLDnaute Accro
Re à tous,
Serait-il possible soit par formule ou par macro (je testerai les deux bien entendu) de faire un petit tableau récapitulatif sur des dates entre juin et septembre afin d'effectuer des statistiques de présence concernant cette période.
Merci d'avance : pas facile de se remettre dans le bai après tout ce temps sans pratiquer.
Bonne soirée.
 

Pièces jointes

Re : Remise dans le bain : statistiques estivales

Bonjour tous le monde,

Un exemple par macro : (il risque d'y avoir pas mal de formules, y sont nombreux les militaires😀)

Code:
Sub Cricris()

Dim tablo()
Dim C As Range, Dte As Range
Dim X As Long, K As Long, i As Integer, Z As Integer

X = 1

With Sheets("Feuil1")
  For K = 3 To .Range("B65536").End(xlUp).Row
     ReDim Preserve tablo(3, 1 To X)
     tablo(0, X) = .Cells(K, 2)
     tablo(1, X) = .Cells(K, 5)
     tablo(2, X) = .Cells(K, 6) - .Cells(K, 5)
     tablo(3, X) = .Cells(K, 6)
     X = X + 1
  Next
End With

For Z = 1 To UBound(tablo, 2)
  If CDate(tablo(1, Z)) < "01/06/2008" Then
    MsgBox "Date " & tablo(1, Z) & " hors période pour : " & tablo(0, Z), vbInformation, "Erreur sur les dates"
    Exit Sub
  End If
  If CDate(tablo(3, Z)) > "30/09/2008" Then
    MsgBox "Date " & tablo(3, Z) & " hors période pour : " & tablo(0, Z), vbInformation, "Erreur sur les dates"
    Exit Sub
  End If
Next

With Sheets("Feuil2")
  .Range("C3:DA20") = ""
    For i = 1 To UBound(tablo, 2)
      Set C = .Range("B3:B20").Find(tablo(0, i))
          If Not C Is Nothing Then
             Set Dte = .Range("C2:DA2").Find(tablo(1, i))
               If Not Dte Is Nothing Then
                 .Range(.Cells(C.Row, Dte.Column), .Cells(C.Row, Dte.Column).Offset(0, tablo(2, i))) = "1"
               End If
          End If
      Set C = Nothing
      Set Dte = Nothing
    Next
End With

End Sub
Bonne journée
 
Dernière édition:
Re : Remise dans le bain : statistiques estivales

Bonsoir à tous,
Merci pour votre implication : j'ai le résultat que je cherchais pour la première partie du fichier avec une petite préférence avec l'idée de pierrejean (pour la macro événementielle) que je salue au passage.
Merci également à Pierre-Olivier que je retrouve avec plaisir.
Quant à la solution de départ avec SOMMEPROD, je le mets de côté car je suis sûr qu'elle me servira un jour ou l'autre : merci à ceux qui y ont contribué depuis le départ.
Bonne soirée et bon week-end.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…