Macro avec boucle pour moyenne

Résolu
Bonjour,

Je suis à la recherche d'une macro avec une boucle ( a mon avis), j'ai tout expliqué dans le classeur excel avec un exemple sinon ce n'est pas facile de comprendre mon problème.

https://www.cjoint.com/?0Bfv76OxBgq

Merci à tous

7 réponses

Résumé de la discussion

Problème central : une macro Excel est recherchée pour calculer des moyennes et écarts types via une boucle, mais des anomalies apparaissent à partir de la ligne 315 lorsque RESHAPE intervient. Les réponses indiquent que la macro fonctionne pour les 314 premières lignes puis se dégrade dès que le nom RESHAPE apparaît, entraînant un décalage dans les moyennes enregistrées. Certaines observations pointent que les groupes devraient comporter 24 valeurs et que des données manquantes provoquent des résultats incohérents, ce qui explique les écarts à partir du seuil 315. D'autres échanges portent sur le partage de fichiers, l'envoi d'exemples ou de liens, et la nécessité d'identifier précisément les cas à corriger pour avancer.

Bobot (l’IA à votre service)
  1. N'hesitez pas si vous voulez plus de précisions
    0
    1. Bonjour,

      peux tu envoyer une version excel 2003?
      0
      1. Ce soir oui
        0
      2. Contributeur
        tu as raté la réponse en-dessous...
        eric
        0
    2. Contributeur
      Bonjour à tous,

      Regarde si ça va :
      Sub resultat()
          Dim shD As Worksheet, plage As Range
          Dim numTab As Long, nbTab As Long, i As Long
          Set shD = Worksheets("Feuil2")
          numTab = Application.CountA(shD.[1:1])
          nbTab = (Cells(Rows.Count, "A").End(xlUp).Row - 1) / 24 - numTab
          Application.ScreenUpdating = False
          For i = numTab To numTab + nbTab - 1
              shD.Cells(1, i + 2) = Cells(numTab * 24 + 2, "A")
              Set plage = Cells(i * 24 + 2, "J").Resize(24, 1)
              shD.Cells(2, i + 2) = Application.Average(plage)
              shD.Cells(3, i + 2) = Application.StDev(plage)
          Next i
          Application.ScreenUpdating = True
      End Sub

      https://www.cjoint.com/?CBgkC5YSfWQ

      eric
      0
      1. Je regarde ca et je te tiens au courant.
        merci
        0
    3. J'ai regarder ta macro Eric, c'est exactement ce que je cherche, j'ai juste 3 remarques :

      1) lorsque la moyenne et l' écart type viennent s'incrire dans la feuille 2, elles ont tous le même nom alors qu'elle devrait chacune avoir leur nom

      2) est il possible d'insérer une ligne entre les noms et les moyennes avec les abréviations des noms (pour mettre sur un graphique)
      par exemple, s052-35gr-14-b après-midi deviendra 14b

      3)lorsque on aura terminer tu pourras m'expliquer le premier code plus en détails, j'aimerais bien le comprendre sije m'en ressert un jour

      merci en tout cas
      0
      1. Re

        1) tu es pardonné :)
        2) merci
        3) encore merci

        par contre je me suis rendue compte que sur mon vrai document a partir d'un certain nombre de groupe la moyenne qui est dans mon tableau feuille2 est incorrecte ( l' écart type aussi)
        0
      2. Contributeur
        c'est béta...
        0
      3. Tu insinue quoi par c"est beta ?
        0
      4. Contributeur
        Je n'insinue rien, je commente c'est tout.
        Sans fichier que veux-tu que je dise de plus ?
        Respecte bien les 24 lignes, sans sauter de ligne, peut-être que ça sera meilleur.
        eric
        0
    4. Contributeur
      Bonjour,

      Je récupère les 2 codes précédent l'espace (qui doit toujours être présent) :
      https://www.cjoint.com/?CBhtgm0P9zh
      eric

      Jamais tu ne répondras à un mp non sollicité...
      Bon, ça c'est fait.
      0
      1. bonjour,
        Merci d'être encore la

        je n'ai pas compris ta phrase au dessus, la macro fonctionne mais j'ai toujours ce problème de moyennes éronnées lors de l'apparition de reshape
        0
      2. Contributeur
        Bonjour,

        Je viens d'en contrôler 2 qui sont correctes.
        Puisque tu aimes bien laisser deviner et chercher, que tu es incapable de dire précisément quelle est l'erreur, sur quelles données et à quel emplacement, je te laisse chercher tout seul.
        https://www.cjoint.com/?CBikCuTLkLa

        eric
        0
      3. j'ai précisément évoquer mon problème puisque j'ai expliquer au dessus que la macro donne des moyennes et des ecarts types correctes jusqu'au groupe de la ligne 314. c'est à dire que la macro fonctionnje correctement pour les 314 premières lignes.

        Cependant à partir de la ligne 315 ( ou il y a l'apparition du terme RESHAPE dans les noms) la macro tranmset dans le tableau de la feuille synthèse des moyennes et des ecarts types incorrectes.

        Tu en as trouvé 2 correctes car tu as vérifié les premiers groupes. Moi je l'ai ai tous vérifié et j'en ai concluant qu'à la ligne 315 il y a un problème.
        0
      4. Contributeur
        Si tu avais ouvert le dernier fichier que j'ai joint tu aurais vu que c'est précisément les groupes 14A et 14C que j'ai vérifié.
        Abandon définitif du sujet.

        eric
        0
      5. merci pour tout
        0
    5. Contributeur
      Si en plus tu avais fait l'effort de lire les réponses qu'on te fourni on gagnait du temps tous les 2.
      Dès le début, ici je te disais :
      Respecte bien les 24 lignes, sans sauter de ligne, peut-être que ça sera meilleur.

      eric
      0
      1. normalement le programme fournit forcément 24 lignes, en attendant je vais mettre un code qui vérifie bien les 24 lignes avant de lancer l'autre macro comme ca je serai sur
        0