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
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 SubCordialement.
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
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 :
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 :
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,
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 :Cela fonctionne sauf si je veux insérer une nouvelle colonne
Je ne comprends pas toutfranck2003d 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 ?
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.