IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

classement de nombres en fonction de leur freq d'apparition


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 22
    Points : 12
    Points
    12
    Par défaut classement de nombres en fonction de leur freq d'apparition
    bonsoir à tous et à toutes

    dans le fichier joint j'ai une liste de serie composée de nombre.
    j'essaie de classer de maniere decroissante ou croissante (au choix)les nombres presents en par leur frequence.
    celui qui est cite le plus fois en premier, etc.......

    merci d'avance
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Points : 9 402
    Points
    9 402
    Par défaut
    Ci dessous la macro qui devrait faire ce que tu désir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
    Public Sub frequence()
     
    Dim freq() As Integer
    Dim icol As Integer, iLigne As Integer
    Dim i As Integer
     
    icol = 1
    iLigne = 6
     
    ReDim freq(0)
     
    Do While Range("A" & iLigne).Value <> ""
        icol = 1
     
        Do While Cells(iLigne, icol).Value <> ""
            'Regarde si la valeur rentre dans le tableau
            If UBound(freq) < Cells(iLigne, icol).Value Then
                ReDim Preserve freq(Cells(iLigne, icol).Value)
            End If
     
            freq(Cells(iLigne, icol).Value) = freq(Cells(iLigne, icol).Value) + 1
     
            icol = icol + 1
        Loop
     
        iLigne = iLigne + 1
    Loop
     
    'Insere les infos ligne 18
     
    icol = 8
    iLigne = 22
     
    For i = 0 To UBound(freq)
     
        If freq(i) > 0 Then
            'Infos num avec frequence
            Cells(18, icol).Value = i & "(" & freq(i) & ")"
            icol = icol + 1
            Cells(iLigne, 3).Value = i
            Cells(iLigne, 4).Value = freq(i)
            iLigne = iLigne + 1
        End If
     
    Next i
     
    'Tri les infos
    Cells(22, 4).Select
    Selection.CurrentRegion.Select
    Selection.Sort Key1:=Range("D22"), Order1:=xlDescending, Header:= _
        xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
     
    'Copie les infos
    Range("C22:C" & iLigne).Select
    Selection.Copy
    Range("H20").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=True
     
    Cells(22, 4).Select
    Selection.CurrentRegion.Select
    Selection.Clear
     
    Range("A1").Select
     
    End Sub

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 22
    Points : 12
    Points
    12
    Par défaut freq
    ok merci Jfontaine
    pourrais tu me mettre qql commentaire pour mieux comprendre
    merci

  4. #4
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Points : 9 402
    Points
    9 402
    Par défaut
    Le mieux c'est de renvoyer ce que tu ne comprend pas

Discussions similaires

  1. Réponses: 10
    Dernier message: 09/11/2010, 14h38
  2. trouve la note du classement en fonction de leur note
    Par popofpopof dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 05/01/2009, 19h10
  3. [SQL] Classement par nombre de points avec la fonction array_multisort
    Par mayers dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 29/07/2007, 15h13
  4. Réponses: 4
    Dernier message: 03/09/2006, 19h12
  5. Réponses: 11
    Dernier message: 27/06/2006, 20h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo