Bonjour,
Plutôt débutant en Excel VBA, j'arrive habituellement à bidouiller des trucs qui fonctionnent. Là, je sèche complétement sur un problème apparemment simple.
J'ai un fichier dans lequel je souhaite exploiter les données des quatre premières colonnes. Comme je ne peux pas vous le transmettre pour le moment (je viens juste de m'inscrire), je vous le décris....
Colonne A : Date de début
Colonne B : Date de fin
Colonne C : Nombre (systématiquement 1, mais que je dois multiplier par 1 dans une autre colonne, car valeur non numérique)
Colonne D : Code correspondant à un type de trajet (c'est pour mon boulot, en rapport avec le transport de voyageurs...)
Je voudrais simplement additionner (total colonne C) les trajets par type (Colonne D) sur une période donnée, en l’occurrence les trajets "actifs" entre le 01/01/23 et le 31/07/23 inclus.
Ma macro (ci-dessous) ne me renvoie par d'erreur mais me donne comme résultat "0" alors que mon fichier comporte bien des lignes répondant aux critères ci-dessus.
J'ai compris qu'il y avait un souci avec les dates qui n'ont pas l'air d'être prise en compte comme telles (le 06/03/2023 n'a pas l'air d'être situé entre le 01/01/2023 et le 01/08/2023 ???), mais je ne comprend pas pourquoi ?
Voici ma macro :
Sub Macro_Test_V3()
Dim DerLigne As Long
DerLigne = Range("A1048576").End(xlUp).Row
Columns("C").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("C1") = "Période 2 - 22/23"
Range("C2").Select
For cpt = 2 To DerLigne
If (ActiveCell.Offset(0, -2) > #1/1/2023# And ActiveCell.Offset(0, -2) < #1/8/2023#) Or (ActiveCell.Offset(0, -1) > #1/1/2023# And ActiveCell.Offset(0, -1) < #1/8/2023#) Then
ActiveCell = 1
Else
ActiveCell = 0
End If
ActiveCell.Offset(1, 0).Select
Next
ActiveCell = Application.WorksheetFunction.SumIf(Range("E2:E" & DerLigne), "CD77_T1V9", Range("C2:C" & DerLigne))
End Sub
Merci d'avance pour votre aide !