Report de nombre par ligne

Bonjours à tous et à toutes,

Voilà mon petit soucis. Je joins un fichier pour une meilleur compréhension.

Mon tableau se compose de plusieurs lignes incluant des chiffres qui sont parfois répétés plusieurs fois sur une même ligne.Je souhaiterai reporter dans les cases correspondantes le nombre de fois où un même chiffres, sur une même ligne, se répétent.

Exemple : Ligne 3 :

- Le 4 apparaît 4 fois donc : 4 dans la case 4 fois,

Ligne 4 :

- Le 1, 2, 3, 8, 9, apparaîssent 3 fois donc 1, 2, 3, 8, 9 dans la case 4 fois etc.....

Et cela individuellement pour chaque ligne.

Auriez vous des petites astuces à me proposer.

Merci

14report1.xlsx (10.82 Ko)

Salut Frank et bienvenue sur le Forum,

Voici une proposition par macro :

Sub aa()
Dim i As Integer, j As Integer, k As Integer, xx As Integer

Application.ScreenUpdating = False

Range("V3:Z" & Rows.Count).ClearContents

For k = 3 To Range("A" & Rows.Count).End(xlUp).Row
    For i = 1 To 10
        For j = 3 To 6
            xx = WorksheetFunction.CountIf(Range("A" & k & ":T" & k), i)

            If xx > 6 Then
                If Range("Z" & k) = "" Then
                    Range("Z" & k) = i
                    GoTo Etiquette
                Else
                    Range("Z" & k) = Range("Z" & k) & ", " & i
                    GoTo Etiquette
                End If
            End If

            If xx = j Then
                If Cells(k, j + 19) = "" Then
                    Cells(k, j + 19) = i
                Else
                    Cells(k, j + 19) = Cells(k, j + 19) & ", " & i
                End If
            End If

        Next j
Etiquette:
    Next i
Next k

End Sub

Cordialement.

5report-v2.zip (11.34 Ko)

Dans mon premier code, j'ai oublié les 0

Voici le code corrigé :

Sub aa()
Dim i As Integer, j As Integer, k As Integer, xx As Integer

Application.ScreenUpdating = False

Range("V3:Z" & Rows.Count).ClearContents

For k = 3 To Range("A" & Rows.Count).End(xlUp).Row
    For i = 0 To 9
        For j = 3 To 6
            xx = WorksheetFunction.CountIf(Range("A" & k & ":T" & k), i)

            If xx > 6 Then
                If Range("Z" & k) = "" Then
                    Range("Z" & k) = i
                    GoTo Etiquette
                Else
                    Range("Z" & k) = Range("Z" & k) & ", " & i
                    GoTo Etiquette
                End If
            End If

            If xx = j Then
                If Cells(k, j + 19) = "" Then
                    Cells(k, j + 19) = i
                Else
                    Cells(k, j + 19) = Cells(k, j + 19) & ", " & i
                End If
            End If

        Next j
Etiquette:
    Next i
Next k

End Sub
12report-v3.zip (11.36 Ko)

Re,

Je te remercie pour les codes et je vais les essayer ce soir.

Je te dirai quoi et merci.

Bonjour,

J'ai un petit soucis.... Après avoir télécharger ton fichier, j'essaye d'actionner le "bouton controle" mais cela ne fonctionne pas. J'ai ceci qui s'affiche : Impossible d'executer la macro 'Report_V3.xlsx!aa. Il est possible qu'elle ne soit pas disponible dans ce classeur ou que toutes les macros soient désactivées.

Pourtant les mocros sont bien activées. Je suis novice et je m'en excuse.

Une petite solution ?

Merci

Salut,

Lorsque tu charges le fichier sur ton PC tu as probablement un message de ce genre :

capture 27 07

Tu dois alors "activer la modification".

Ensuite, si ça ne joue toujours pas, essaie d'effectuer un clic droit sur le bouton "Contrôle", de choisir l'option "Affecter une macro" et tu devrais avoir une image comme ceci :

capture 27 07 bis

Essaie alors de double-cliquer sur "aa".

Cordialement.

Bonsoir,

Je te remercie grandement. Cela fonctionne sauf si je veux insérer une nouvelle colonne, mais ce n'est pas grave.

Une dernière question. Si je comprends bien, tu organise ton tableau, tu crées une étiquette (contrôle dans mon cas) et tu lui affecte des codes VBA (une macro). C'est ça ?

Merci encore et bonne soirée.

Salut,

franck2003d a écrit :

Cela fonctionne sauf si je veux insérer une nouvelle colonne

Ma macro a effectivement été prévue pour un tableau tel que celui que tu m’as présenté. Si tu veux en modifier la structure, il faut bien évidement modifier mon code. Mais dans un tel cas il serait intéressant de savoir comment peut encore être modifié ton tableau dans le futur avant de corriger la macro par rapport à une seule colonne de plus. Si nécessaire, reviens à la charge à ce sujet.
franck2003d a écrit :

Une dernière question. Si je comprends bien, tu organise ton tableau, tu crées une étiquette (contrôle dans mon cas) et tu lui affecte des codes VBA (une macro). C'est ça ?

Je ne comprends pas tout Non, c’est toi qui a organisé ton tableau et moi j’ai créé un code (ou une macro) qui réalise ton souhait. Comme il faut bien déclencher cette macro à un certain moment donné (une macro peut être déclenchée par toutes sortes d’événements, tel qu’un changement sur une feuille, la sélection d’une nouvelle feuille, à l’ouverture ou à la fermeture d’un fichier, etc.) j’ai pensé que c’était bien dans ton cas de pouvoir la déclencher sur demande et t’ai proposé la solution d’un bouton. Afin de voir le code, tu peux effectuer un clic droit sur l’onglet de la feuille et choisir un texte du genre « Voir le code ».

Par contre si tu modifies ton tableau de base (non pas dans sa structure, mais dans les chiffres qui y sont inscrits), il est évident que le résultat sera réactualisé.

Cordialement.

Rechercher des sujets similaires à "report nombre ligne"