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

Moyenne avec critère

  • Initiateur de la discussion Initiateur de la discussion matrix
  • Date de début Date de début

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 !

matrix

XLDnaute Occasionnel
Bonjour,

J'ai un problème avec un script.

Dans mon fichier excel, je voudrais que dans la feuille "Customer Stops chauffeur", qu'il me copie chaque numéro différent qu'il y a dans la colonne C et qu'il me les colle dans la feuille "Moyenne customer stop chauffeur" dans la colone A, et cela, sans doublons, et qu'ensuite, il me donne la moyenne de temps selon chaque numéro dans la colonne B. Le temps se trouve dans la feuille "Customer Stops chauffeur" colonne M.

Comment faire svp.
 

Pièces jointes

Re : Moyenne avec critère

Bonsoir,

un essai :

Le code :

Code:
Sub moyenn()
With Sheets("Customer Stops chauffeur")
    .Range("C1:C" & .[A65000].End(xlUp).Row).Name = "drivers1"
    .Range("C4:C" & .[A65000].End(xlUp).Row).Name = "drivers"
    .Range("M4:M" & .[A65000].End(xlUp).Row).Name = "stop_time"
End With
With Sheets("Moyenne customer stop chauffeur")
    Range("drivers1").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=.Range( _
        "A1"), Unique:=True
    .Range("A1:A" & .[A65000].End(xlUp).Row).Sort Key1:=.Range("A2"), Header:=xlYes
    .[B2].FormulaR1C1 = _
        "=IF(COUNTIF(drivers,RC[-1])=0,"""",SUMPRODUCT((drivers=RC[-1])*stop_time)/COUNTIF(drivers,RC[-1]))"
    .[B2].AutoFill Destination:=.Range("B2:B" & .[A65000].End(xlUp).Row)
    .Range("B2:B" & .[A65000].End(xlUp).Row).Value = .Range("B2:B" & .[A65000].End(xlUp).Row).Value
End With
End Sub

Le fichier :
 

Pièces jointes

Re : Moyenne avec critère

Re-,

De rien, mais ne dit surtout pas à JMPS que j'ai utilisé :

Code:
.Range("B2:B" & .[A65000].End(xlUp).Row).Value = .Range("B2:B" & .[A65000].End(xlUp).Row).Value

Equivalent de :

Code:
ActiveCell.Value = ActiveCell.Value

😀😀
 
- 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

Discussions similaires

Réponses
9
Affichages
564
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…