Calcul de somme sous condition en VBA - Page 2

Précédent
  • 1
  • 2
  1. superbaptbapt Messages postés 32 Statut Membre
     
    je vien de regarder les résultats, pour savoir si c'était juste une erreur de 1

    Mais
    1 4:44:15 4:46:14 8
    2 4:46:15 4:48:14 10

    10 est le nombre d'avion sur l'interval

    le nombre d'avion ayant eu une déviation est 7
    3 avion n'ayant pas eu l'ecart suffisant

    on peut garder la colonne donnant le nombre d'avion pour les sources, et savoir sur tant d'avion, il y a en eu tand qui on eu la déviation.

    Mais il faudrait mettre en colonne I, le nb a/c ayant eu une déviation, la sytème métant lui en A1
    le nombre d'avion au total sur tout les intervals, ayant eu cet déviation
    0
  2. superbaptbapt Messages postés 32 Statut Membre
     
    Pour explication voila se qu'il faudrait faire pour la mise ne forme

    Garder les colonnes EFGH pour les mettres en ABCD, étant donnée, qu'après d'autre résultats seront a y ajouter.

    de plus pour la déviation

    entre 16:44:00 à 16:45:59 calcul déviation correspondante en E2
    entre 16:46:00 à 16:47:59 calcul déviation correspondante en E3
    a chaque fois il faut calculer la déviation correspondante a l'interval

    J'ai regardé la script VBA, plus en détail, il faudrait peut etre ajouter un boucle comme pour le calcul du nombre d'avion par tranche

    De plus, quand tout ceci sera fini, et fonctionnera comme sur des roulettes grace a ton aide. Il me faudra ton "nom", juste pour mettre dans les remerciements et explication du programme.
    Et oui toute personne aidant doit etre cité, sauf si tu ne souhaite pas.
    0
  3. Armojax Messages postés 1863 Date d'inscription   Statut Membre Dernière intervention   1 529
     
    Hello,

    J'ai pu m'y remettre un peu ce soir...

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

    J'ai donc modifié la présentation, en échangeant les colonnes.
    Dans la version précédente, la liste des avions devait être bonne. Par contre, pour la répartition par tranches horaires, je prenais la totalité des avions. Pfff... j'ai modifié ça.

    Je me suis dit aussi que quand un avion passe de 357° à 5°, ça fait un écart énorme, mais en fait la déviation est minime. J'ai donc pris une option : si l'écart est > 345°, on laisse tomber, parce qu'en fait ça fait moins de 15°, en sens inverse. Dis-moi si ça colle.

    J'ai rétabli le calcul du temps initial pour avoir une minute juste.

    Je pars vendredi, et demain j'ai pas mal de chats à fesser, comme on dit chez moi.

    A+
    0
  4. superbaptbapt Messages postés 32 Statut Membre
     
    Je vien d'essayer avec mon classeur1, pour vérifier, les calculs montre un problème

    le système recopie sur le feuille3 et les met par période, mais en feuille2, les interval vont de 16:44:00 à 16:45:59
    alors que sur le feuille3,ils vont de 16:44:00 à 16:46:00

    EFL41 FS 16:46:00 319 1
    TBS_EW FS 16:44:15 85 1
    TBS_EW FS 16:44:20 75 1
    TBS_EW FS 16:44:25 73 1
    TBS_EW FS 16:44:30 61 1
    TBS_EW FS 16:44:45 55 1
    TBS_EW FS 16:46:00 40 1
    TBS_EWC FS 16:44:25 85 1
    TBS_EWC FS 16:44:40 47 1
    TBS_EWC FS 16:44:45 49 1
    TBS_EWC FS 16:46:00 26 1

    EFL41 ne devrais pas etre sur cet interval, mais en 2
    tout comme une ligne de TBS_EW et TBS_EWC

    de plus en D, c'est donc le nombre d'avion présent par tranche de 2 minutes

    en E et F, le nombre d'avion ayant eu un changement.
    se nombre et réaliser pour l'ensemble des cellules de temps, alors qu'il le fodrait sur le intervals

    donc calculer le nombre de déviation sur 2 minutes
    et après on recalcul sur les 2 minutes suivantes
    en colonne E

    le nom des avions n'est pas nécessaire

    Merci
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. superbaptbapt Messages postés 32 Statut Membre
     
    J'ai modifié ces lignes pour que le tri se fasse sur les memes intervals que les résultats.
    Le nombre d'avion en D, est juste maintenant.

    With FD
    .Rows(1).Copy
    Range("A1").Select
    ActiveSheet.Paste
    Derlig = .Cells(65536, 1).End(xlUp).Row
    J = 1
    HDeb = Int(.Cells(2, 3).Value * 3600) / 3600
    HFin = HDeb + TimeValue("00:01:59") * NbTr
    For I = 2 To Derlig
    If .Cells(I, 2).Value = Secteur _
    And .Cells(I, 3).Value <= HFin Then
    J = J + 1
    .Rows(I).Copy
    Cells(J, 1).Select
    ActiveSheet.Paste
    Cells(J, 5).Value = Int(((Cells(J, 3).Value - HDeb) / TimeValue("00:01:59")) + 1)
    End If
    Next
    End With

    Par contre, il ne reste plus qu'a calculer le nombre de déviation par interval
    0
  7. superbaptbapt Messages postés 32 Statut Membre
     
    Le nombre en D, c'est le nombre d'avion ayant eu une déviation?
    Je vien de faire le test, c'est a ni plus rien comprendre pour moi.

    Alors tout compte fait, c'est bon, par contre j'aimerais supprimer les lignes E et F, pour les remplacer par le nombre d'avion présent sur l'interval
    et le nombre d'opération qu'il y a eu sur l'interval

    'Order Number
    Dim a As Range, w%

    Range("G2:G" & Range("G65536").End(xlUp).Row).Select
    Selection.ClearContents

    For r = 2 To Range("B65536").End(xlUp).Row
    For Each a In Range("E2:E" & X + 1)
    If Cells(r, 3).Value >= Range("E" & a.Row).Value Then
    If Cells(r, 3).Value < Range("F" & a.Row).Value Then
    If Cells(r, 2).Value = "FS" Then
    Cells(a.Row, 7).Value = Cells(a.Row, 7).Value + 1
    Exit For
    End If
    End If
    End If
    Next a
    Next r

    Par contre, le nombre d'avion présent sur le secteur par interval, tu l'avais fait, le code y est encore sur le VBA, mais il ne s'affiche pas

    merci
    0
  8. superbaptbapt Messages postés 32 Statut Membre
     
    Tout compte fait, ordre number, je n'arrive pas a le mettre

    étant donné que certain éléments sont sur la feuil1, les autre devant etre mis sur la feuil2

    Ti cout de main, please

    Merci
    0
  9. superbaptbapt Messages postés 32 Statut Membre
     
    Y as bien un problème sur la déviation

    Il compte bien le nombre d'avion et la met dans la case correspondante pour l'interval, mais quand il passe eu suivant, il compte toujours du début.

    Quand je prend 1 interval au lieu des 10
    j'ai
    1 16:44:00 16:45:59 5

    quand j'en prend 2
    1 16:44:00 16:45:59 6
    2 16:46:00 16:47:59 8

    pour 3
    1 16:44:00 16:45:59 5
    2 16:46:00 16:47:59 8
    3 16:48:00 16:49:59 8

    petite problème je pense
    je devrai avoir 5 et pour l'autre 6
    0
  10. superbaptbapt Messages postés 32 Statut Membre
     
    Bon j'ai encore regardé en détail

    En colonne D, tu calcul le nombre d'avion par période
    et non pas le heading change

    que tu fait en globale est non pas par interval de temps
    0
  11. superbaptbapt Messages postés 32 Statut Membre
     
    J'ai remis le nombre d'avion par interval en D

    en retirant la ligne
    'If Déviation > 180 Then Déviation = Déviation - 360

    le nombre d'avion présent par interval devient le bon

    mais sur 10 interval, les valeurs seront les bonnes

    mais si je met 1 interval, c'est parti le délire

    Tranche Début Fin Nb a/c 5
    Avions Angles
    1 16:44:00 16:45:59 5 AIRONLY 27
    EFL41 29
    FOL1111 27
    TBS_EW 109
    TBS_EWC 107

    il y a bien 5 déviation

    mais si je met 10 interval

    1 16:44:00 16:45:59 7
    2 16:46:00 16:47:59 10
    3 16:48:00 16:49:59 10
    4 16:50:00 16:51:59 9

    et la 7 est bien le nombre d'avion par inteval, tout comme 10 pour le suivant...

    Je ne comprend plus du tout
    0
    1. Armojax Messages postés 1863 Date d'inscription   Statut Membre Dernière intervention   1 529
       
      Hello superbaptbapt,

      Bon, je suis obligé de décrocher (heureusement je ne suis pas un avion !).
      Je te mets là mes commentaires sur la macro et ce que j'ai compris.
      https://www.cjoint.com/?humSj6tf7B

      Bonne chance pour la suite.
      Amicalement.
      Armojax.

      P.S. Si d'autres veulent prendre le relais...
      0
  12. superbaptbapt Messages postés 32 Statut Membre
     
    Merci de ton aide Armojax

    Est bonne vacance, je pense
    0
  13. superbaptbapt Messages postés 32 Statut Membre
     
    Il y aurait une méthode, afin d'obtenir les bons résultats.

    Lors du calculs du heading par interval, il serait nécessaire d'ajouter des conditions initiales aux intervals suivants.

    C'est a dire ajouter en condition initials, la dernière valeur de chaque avions, afin de faire les comparaisons.

    Cela évitant de faire une comparaison avec 0, s'il n'y a qu'un seul terme.

    Donc il faut reprendre les dernières valeurs de chaques avions, pour chaque interval, et les mettres comme conditions initials, et ainsi de suite

    TBS_EW FS 16:44:15 85
    TBS_EW FS 16:44:20 75
    TBS_EW FS 16:44:25 73
    TBS_EW FS 16:44:30 61
    TBS_EW FS 16:44:45 55
    TBS_EW FS 16:46:00 40
    TBS_EW FS 16:46:05 57
    TBS_EW FS 16:49:00 40

    la on a les conditions global, par interval, on a
    TBS_EW FS 16:44:15 85
    TBS_EW FS 16:44:20 75
    TBS_EW FS 16:44:25 73
    TBS_EW FS 16:44:30 61
    TBS_EW FS 16:44:45 55
    pour le premier, on effectue le calcul

    TBS_EW FS 16:44:45 55 valeur ajouté,cond initial
    TBS_EW FS 16:46:00 40
    TBS_EW FS 16:46:05 57
    pour la seconde période

    TBS_EW FS 16:46:05 57 valeur ajouté
    TBS_EW FS 16:49:00 40
    pour la troisième

    ....

    mais ne sait pas faire, comme d'habitude

    Sinon, on m'a dit qu'il serait possible de le faire par tableau, mais ?

    Merci
    0
Précédent
  • 1
  • 2