Fréquence de sortie et problèmes d'affichage

Bonjour,

Avec l'aide d' Algoplus, j'ai réussi à scinder une ligne de données ( fréquence) pour l'afficher sur deux lignes. Si je reviens vers vous, les experts, c'est qu'en jouant sur une période donnée, les valeurs sous zéro s'affiche plus d'une fois et n'indique pas forcément son nombre de fréquence réel pour la période en question. Dans l'exemple proposé, le numéro 3 = 0 mais il s'affiche 3 fois alors que le 2 = 1 et s'affiche avant et après le numéro 3 plusieurs fois également. Les numéros apparaissant en bas ou en haut des carrés représentent le nombre de fois que ce chiffre est sortie pour une période donnée. Est-il possible de corriger le problème pour que ces numéros ne s'affichent qu'une seule fois et avec la bonne valeur? Libre à vous d'améliorer au passage les aberrations de mon code.

Merci

Mon fichier explique mieux, je crois, mon problème de code.

Bonjour,

Initialement, on était parti sur l'affichage de 70 N° sur deux lignes soit deux fois 35.

Il y a des cas où il y a moins de 70 N° à afficher (entre 60 et 69). ce qui peut expliquer les incohérences rencontrées.

Veux tu deux lignes identiques à */+ la moitié des N° ou bien une ligne de 35 et le reliquat sur la deuxième?

A+

Bonjour Algoplus,

Je préférerais une ligne de 35 et le reliquat sur la deuxième ligne.

un essai à replacer dans le code

ReDim T3(1 To UBound(T2, 1), 1 To 2)
For i = 1 To 35
    TEMP = T2(i, 1)
    T2(i, 1) = T2(i, 2)
    T2(i, 2) = TEMP
Next

For i = 36 To UBound(T2, 1)
    T3(i - 35, 1) = T2(i, 1)
    T3(i - 35, 2) = T2(i, 2)
Next
.[d2].Resize(2, 35) = Application.Transpose(T2)
.[D4].Resize(2, 35) = Application.Transpose(T3)

End With

le nombre de fois ou le N° apparait figurera au dessus de la première ligne et sous la deuxième.

Tu peux donc supprimer la boucle Do Until x = 34 avec ses countif.

A+

AlgoPlus, vous êtes génial! Le seul hic c'est que les numéros qui ne sont pas dans la période, autrement qui s'afficherait normalement zéro pour la période donnée ne sont pas présent dans la liste. Cela dit, je suis grandement satisfait du changement de code. Il me semble moins lourd. Merci.

Par ailleurs, je vous écris en utilisant la version beta de Microsoft Edge Chromium. J'adore! Simple et vite.

La der !

avec affichage 0 des N° non sortis (ils ne sont pas triés) et modification de la préparation du tableau résultat

Public Sub Fréquence()
Dim i, J, Dico, tmp1, tmp2, T, T2
Dim OK As Boolean
Dim T3, TEMP

With Application
    .DisplayAlerts = False
    .CutCopyMode = False
    .EnableEvents = False
    .ScreenUpdating = False
End With

    'On Error Resume Next
[d2:al5].ClearContents

Set Dico = CreateObject("Scripting.Dictionary")
'*** initilisation du dico 1 à 70 = 0
For i = 1 To 70
    Dico(i) = 0
Next

'*** comptage nb sortie de chaque N°
With Worksheets("Fréquence")
T = .Range("d" & .Range("ar3") + 10 & ":w" & .Range("ar4") + 10)
For i = LBound(T, 1) To UBound(T, 1)
    For J = LBound(T, 2) To UBound(T, 2)
        If T(i, J) <= 70 And T(i, J) >= 1 Then Dico(T(i, J)) = Dico(T(i, J)) + 1
    Next
Next
T2 = Application.Transpose(Array(Dico.keys, Dico.Items))

'** tri décroissant sur Nb sortie
    While OK = False
        OK = True
    For i = LBound(T2, 1) To UBound(T2, 1) - 1
        If T2(i, 2) < T2(i + 1, 2) Then
            tmp1 = T2(i, 1)
            tmp2 = T2(i, 2)
            T2(i, 1) = T2(i + 1, 1)
            T2(i, 2) = T2(i + 1, 2)
            T2(i + 1, 1) = tmp1
            T2(i + 1, 2) = tmp2
            OK = False
        End If
    Next
    Wend
'********** préparation du tableau affichage
ReDim T3(1 To 4, 1 To UBound(T2, 1))
For i = 1 To 35
    T3(1, i) = T2(i, 2)
    T3(2, i) = T2(i, 1)
    T3(3, i) = T2(i + 35, 1)
    T3(4, i) = T2(i + 35, 2)
Next
'*** collage des résultats
.[d2].Resize(4, 35) = T3

End With

With Application
    .DisplayAlerts = True
    .CutCopyMode = True
    .EnableEvents = True
    .ScreenUpdating = True
End With

End Sub

A+

Merci encore AlgoPlus,

Ça marche à merveille et, en plus, je gagne en vitesse.

Rechercher des sujets similaires à "frequence sortie problemes affichage"