Insérer ligne quand il y a des doublons (ou plus)

Bonjour,

J'aimerai écrire un programme qui me permette (voir pièce jointe) dans une liste donnée, d'insérer une nouvelle ligne à chaque fois qu'un nom se répète au moins deux fois.

Je précise que les noms sont triés, de plus j'aimerai que la ligne soit créée à chaque début d’événement.

Help pls

Voilà une proposition utilisant une collection =) Ci-joint le fichier d'exemple.

Public Sub neelix()
Dim dico As Scripting.Dictionary
Set dico = New Scripting.Dictionary

Dim nbLignes As Long, numLigne As Long, chaine As String

nbLignes = Cells(Rows.Count, "A").End(xlUp).Row

For numLigne = 1 To nbLignes
    chaine = CStr(Cells(numLigne, "A"))
    If dico.Exists(chaine) Then
        dico.Item(chaine) = dico.Item(chaine) + 1
    Else
        dico.Add chaine, 1
    End If
Next numLigne

Dim i As Long, key As Variant, j As Long, ouEcrire As Long
ouEcrire = 1

For Each key In dico.Keys
    ouEcrire = ouEcrire + 1
    For j = 1 To dico.Item(key)
    'on écrit puis on incrémente
        Cells(ouEcrire, "B").Value = key
        ouEcrire = ouEcrire + 1
    Next j
Next key

End Sub
23neelix.xlsm (16.43 Ko)

Ton programme à l'air sympa. Mais j'avoue avoir essayé de le décrypter et y avoir du mal.

Penses-tu qu'il est possible d'insérer une ligne seulement au dessus des cellules qui sont en double (ou plus) comme sur l'exemple ?

Je vais essayer de m'atteler cet aprem à ce programme et voir comment il serait possible de le modifier

d3d9x a écrit :

Voilà une proposition utilisant une collection =) Ci-joint le fichier d'exemple.

ça ne serait pas plutôt un dictionnaire

P.

Rechercher des sujets similaires à "inserer ligne quand doublons"