Récupération dates début et fin

rudymagny

XLDnaute Occasionnel
Bonjour le forum,
Je ne savais pas comment nommé la discussion:-(
Voilà j'aurai besoin encore une fois de votre aide concernant un traitement par macro VBA d'un fichier excel...
J'ai un tableau avec des données :
- référence ticket
- dates opérations
- référence avis
- dates planifiées.

Pour 1 même ticket on peut avoir plusieurs avis

J'aurai besoin de récupérer pour le ticket la 1ère date des avis et la dernière date...

Je met un fichier en exemple car je doit surement mal m'expliquer.

Merci d'avance à vous
 

Pièces jointes

  • Récupération dates.xls
    23.5 KB · Affichages: 33

rudymagny

XLDnaute Occasionnel
Re : Récupération dates début et fin

Je pensais partir su un truc dans ce genre:
Code:
        For i = L3 + 3 To L4
            'Traitement des dates de début et fin opérations en fonction des dates de début et fin des avis
            Ref_Ticket = Cells(i, 5).Value
            avis_date_début = Cells(i, 18).Value
            avis_date_fin = Cells(i, 19).Value
            
                
            While Cells(i, 5).Value = Cells(i - 1, 5).Value
                If avis_date_début < Cells(i - 1, 18).Value Then
                    debut_ope = avis_date_début
                Else
                    debut_ope = Cells(i - 1, 18).Value
                End If
                If avis_date_fin < Cells(i - 1, 19).Value Then
                    fin_opé = avis_date_fin
                Else
                    fin_opé = Cells(i - 1, 19).Value
                End If
            Wend
end if

mais je ne traite pas tous les tickets s'ils ne sont pas triés...
 

rudymagny

XLDnaute Occasionnel
Re : Récupération dates début et fin

Bonjour ERIC S et merci pour ta réponse.
En appliquant la formule tel quel ça fonctionne très bien.
J'essaye de faire le code VBA (avous boucle) qui appliquera cette formule mais je ne sais pas comment traiter les formules matricielles

Code:
    Range("D2").Select
    Selection.FormulaLocal = "=MIN(SI(B2:B7=$B$2;(G2:G7);100000))"
    Range("E2").Select
    Selection.FormulaLocal = "=MAX((B2:B7=$B$2)*H2:H7)"

Ci dessus en exemple, la formule est bien insérée mais le CTRL+MAJ ENTREE ne s'applique pas

Merci encore
 
Dernière édition:

ERIC S

XLDnaute Barbatruc
Re : Récupération dates début et fin

Re

désolé pour le moment je sèche un peu côté vba

si c'est pour écrire la formule en I2 par exemple, tu peux faire

derligne = Range("B" & Rows.Count).End(xlUp).Row
i = 2
Cells(i, 9).FormulaArray = "=MAX((R" & i & "C2:R" & derligne & "C2=R" & i & "C2)*R" & i & "C8:R" & derligne & "C8)"

par contre tout vba (avec evaluate) je n etrouve pas la synthaxe
 

ERIC S

XLDnaute Barbatruc
Re : Récupération dates début et fin

Re

en réfléchissant un peu, avec sommeprod

derligne = Range("B" & Rows.Count).End(xlUp).Row
i = 2
a = Evaluate("=SUMPRODUCT(max((B2:B" & derligne & " = B2 )*H2:H" & derligne & "))")
MsgBox a

donne la même chose que la formule

A tester
 

ERIC S

XLDnaute Barbatruc
Re : Récupération dates début et fin

Re

à tester

Code:
derligne = Range("B" & Rows.Count).End(xlUp).Row
 i = 2
 a = Evaluate("=SUMPRODUCT(max((B2:B" & derligne & " = B2 )*H2:H" & derligne & "))")
 MsgBox a
 b = Evaluate("=SUMPRODUCT(min(if(B2:B" & derligne & " = B2 ,D2:D" & derligne & ",100000)))")
 MsgBox b
 

Discussions similaires

Statistiques des forums

Discussions
312 332
Messages
2 087 367
Membres
103 528
dernier inscrit
maro