Macro pour moyenne horaire

XkevinX

XLDnaute Junior
Bonjour à vous,

J'en appelle à votre savoir VBA.

Alors voilà, je souhaite obtenir une macro qui réalise la moyenne horaire de chacune de mes feuilles au format hh:mm:ss et affiche le résultat sur une feuille " Récap "( déjà crée).

Pour être plus clair, il faudrait une boucle qui parcourt toutes les feuilles précédant ma feuille Récap et plus précisément les colonnes J et P ( début cellule J13 et P13) et qui me donne la moyenne de chaque feuille sur ma feuille Récap (colonne B pour les colonnes J et colonne C pour les colonnes P)

Je ne connais pas le nom des feuilles précédant ma feuille Récap à l'avance mais seules les colonnes J et P m'intéressent.

En plus, j'aurais besoin d'un bouton " Démarrer le bilan " qui effacerait les valeurs des colonnes A et B de la feuille Récap et qui recommencerait les calculs à souhait.

Lorsque la valeur " - " est présente, cela ne devrait pas perturber le calcul.

Voilà tout ce que j'aimerais obtenir dans la mesure du possible.

J'avoue être exigeant et j'espère que vous pourrez me proposer une solution.

Merci d'avance pour vos réponses.

Cordialement.
 

Pièces jointes

  • NomFichier.xls
    35 KB · Affichages: 43
  • NomFichier.xls
    35 KB · Affichages: 45
  • NomFichier.xls
    35 KB · Affichages: 42

Caillou

XLDnaute Impliqué
Re : Macro pour moyenne horaire

Bonjour,

Essayes ce code :
Code:
Sub Autocars()
  Dim i As Byte           'Indice de boucle
  Dim NumF As Byte        'Index de la feuille Recap
  Dim MoyJ                'Moyenne colonne J
  Dim MoyP                'Moyenne colonne P
  Dim CptR                'Index ligne pour feuille Recap
  
  NumF = Sheets("Recap").Index - 1
  CptR = 3
  
  For i = 1 To NumF
    Sheets(i).Select
    MoyJ = Application.WorksheetFunction.Average(Range("J13:J65536"))
    MoyP = Application.WorksheetFunction.Average(Range("P13:P65536"))
    With Sheets("Recap")
      .Cells(CptR, "B").Value = MoyJ
      .Cells(CptR, "C").Value = MoyP
    End With
    CptR = CptR + 1
  Next
  
End Sub

Caillou
 

XkevinX

XLDnaute Junior
Re : Macro pour moyenne horaire

Rebonjour,

Merci pour vos réponses.

pierrejean, ton fichier me convient mais il me limite à 3 pages.

Or j'en aurais plus dans les 20 - 30.
Je comprends quelques trucs dans ta macro mais pas assez pour effectuer une modification. Je changerais le ligne=3 personnellement mais peux-tu me confirmer ?

Caillou je débute vraiment en macro excel et je ne sais pas où mettre ton code. J'ai crée une nouvelle macro et j'ai copier/coller dans la feuille 4 (Récap) de l'editor mais sa ne fais rien. Je ne sais donc pas si ton code me convient ou non.

Sinon merci de votre aide.
 

Caillou

XLDnaute Impliqué
Re : Macro pour moyenne horaire

Re,

Tu vas dans l'éditeur de macro (Alt F11 par exemple)
Tu insères un Module (Insertion/Module)
Tu colles la procèdure que je t'ai envoyé dans ce module (le nom de la procédure est ici Autocars)
Ensuite tu peux fermer l'éditeur
Dans Excel, sur la feuille Recap, tu traces une forme quelconque (rectangle, rond, ...)
Une fois tracée, clic droit / Affecter une macro
Tu choisis la macro (le nom de la macro (Autocars) est le nom de la procédure)
OK
Ensuite tu cliques en dehors du bouton
Maintenant lorsque tu pointes le bouton, une main apparait (signe qu'une macro est affectée), si tu cliques, la macro est exécutée

Caillou
 

Victor21

XLDnaute Barbatruc
Re : Macro pour moyenne horaire

Bonjour, XkevinX

pierrejean, ton fichier me convient mais il me limite à 3 pages.

Comme toutes les propositions de pierrejean, celle-ci répond totalement à votre demande, quelque soit le nombre de feuilles :
For Each sh In Sheets
If sh.Name <> "Recap" Then
signifie :
pour chaque feuille dans la collection feuilles de ce fichier, sauf "Recap"
.
Essayez d'expliquer ce que vous ne parvenez pas à faire fonctionner.
 

XkevinX

XLDnaute Junior
Re : Macro pour moyenne horaire

Re,

Euh Caillou, j'ai suivi tes étapes mais cela ne fonctionne pas.
J'ai une erreur.


Bonjour Victor21,

Ce que tu dis est vrai, j'avais compris mais j'ai fait un test en rajoutant deux nouvelles pages situées avant ma feuille Recap et j'ai l'erreur 6 " dépassement de capacité".

Merci.
 

pierrejean

XLDnaute Barbatruc
Re : Macro pour moyenne horaire

Re

Merci Victor

Voici la preuve que l'on peut ajouter des feuilles
Peux-tu poster le fichier qui donne le depassement de capacité ?

@ Caillou

pour le bon fonctionnement de ton code , il convient que la feuille Recap soit située derriere toutes les autres.Il faudrait egalement ajouter l'effacement prealable
 

Pièces jointes

  • NomFichier.xls
    92 KB · Affichages: 33
  • NomFichier.xls
    92 KB · Affichages: 38
  • NomFichier.xls
    92 KB · Affichages: 36

Caillou

XLDnaute Impliqué
Re : Macro pour moyenne horaire

Re,

Kevin : peut-etre, n'y a t-il pas de données dans les colonnes spécifiées (d'où l'impossibilité de calculer la moyenne), mais je penses qu'il serait plus judicieux de continuer sur une seul piste (celle de pierrejean si tu veux!)

pierrejean : ok pour l'effacement préalable, par contre pour les feuilles à traiter, j'ai lu dans le post initial,

il faudrait une boucle qui parcourt toutes les feuilles précédant ma feuille Récap

d'où mon code

Caillou
 

pierrejean

XLDnaute Barbatruc
Re : Macro pour moyenne horaire

Re

@ Caillou : OK tu as raison sur le point de la place de Recap
@ XkevinX
Observe ta feuil4 et plus precisement la colonne P

Une version qui fonctionne même avec des colonnes vides
 

Pièces jointes

  • XkevinX_Test.xls
    73 KB · Affichages: 32
  • XkevinX_Test.xls
    73 KB · Affichages: 32
  • XkevinX_Test.xls
    73 KB · Affichages: 31
Dernière édition:

XkevinX

XLDnaute Junior
Re : Macro pour moyenne horaire

Re,


Oui, j'ai loupé mon copier/coller :(.

Néanmoins, les autres colonnes étaient remplies, sa aurait dû me laisser la case C6 vide vu que la colonne P de la Feuille 4 l'était également.
Le reste aurait dû fonctionner, non?

Mais maintenant, cela fonctionne.

Il me faudrait un dernier point si vous pouvez: je voudrais trier les résultats de chaque colonne B et C de Recap par ordre chronologique.

Merci d'avance encore.
 

pierrejean

XLDnaute Barbatruc
Re : Macro pour moyenne horaire

Re

Eh oui , les autres devraient toujours fonctionner !!!

Il m'a semblé que le classement (pas chronologique mais ascendant) de chaque colonne n'aurait guere de sens si on n'associait pas la feuille d'ou les moyennes sont issues
Si toutefois je suis à coté de la plaque donne un exemple du tri que tu souhaites
 

Pièces jointes

  • XkevinX_Test.xls
    77.5 KB · Affichages: 36
  • XkevinX_Test.xls
    77.5 KB · Affichages: 35
  • XkevinX_Test.xls
    77.5 KB · Affichages: 36

Discussions similaires

Réponses
20
Affichages
578
Réponses
12
Affichages
330

Statistiques des forums

Discussions
314 141
Messages
2 106 293
Membres
109 555
dernier inscrit
Aidada