XL 2016 Incrémenter des doublons sur la même ligne

Dymouille

XLDnaute Nouveau
Bonjour à Tous !

j'ai une vingtaine de fichier qui arrive par semaine et dans chacun d'entre eux j'ai des doublons dans les noms des colonnes
Exemple : Image, lien image, Image, lien image, Image, lien image

j'aimerais que pour chaque nom de colonne dans la ligne 1, ca incrémente la valeur du nom de la colonne si elle est en double
en reprenant l'exemple : Image, lien image, Image_1, lien image_1, Image_2, lien image_2


j'ai commencé une macro, mais je bloque ! surtout sur le fait d'avoir un compteur pour chaque doublons

Ci-joint le fichier,

Merci d'avance !
 

Pièces jointes

  • incrémenter doublons.xlsm
    21 KB · Affichages: 8

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Si vous importez vos données par Power Query (inclus dans votre version excel dans l'onglets Données) cela pourrait ce faire automatiquement.

En cas de difficultés joignez au moins deux fichiers source anonymisés et sans données confidentielles.

cordialement
 

Dymouille

XLDnaute Nouveau
Bonjour,

Je recois des fichiers csv en.zip
que je dezippe et que je convertis en xlsx avec une macro
et je me vois mal le faire pour chaque fichier a la main chaque semaine (30 fichiers par semaines) !

je vous ai joint la matrice type d'un fichier, il y a énormément de doublons
un parmi tant d'autres : File Name

merci !
 

Pièces jointes

  • exemple.xlsx
    23 KB · Affichages: 3

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Power query sait interroger un (des) dossier(s) pour en extraire tous les ".csv" et les traiter. Mais avec votre matrice et sans exemple du fichier excel final, je ne peux rien pour vous.

Cordialement
 

Dymouille

XLDnaute Nouveau
Re,

Désolé pour la réponse tardive,
Je me suis peut-être mal exprimé, excusez-moi
Je cherche juste a incrémenter les doublons comme indiqué dans mon premier message et la pièce jointe,

Imaginons que dans la ligne 1 nous avons les champs suivants (chaque champ séparé par une virgule) :
Image, Type Image, Nom Image, Image, Largeur, Longueur, Nom Image, Image

Il faudrait qu'une fois la macro lancé, ça me retourne ceci :

Image, Type Image, Nom Image, Image_2, Largeur, Longueur, Nom Image_2, Image_3
 

Dymouille

XLDnaute Nouveau
Hello,

Merci quand même Roblochon !

Pour les petits curieux,
J'ai trouvé un petit bout de code que j'ai adapté à mon problème, on utilise un dico pour l'incrémentation,
utilisable aussi bien pour les colonne que les lignes, à vous de l'adapter !

VB:
Sub Incrémentation()
  
    Dim Plage As Range
    Dim Cel As Range
    Dim Dico As Object
    Dim ListeCle As Variant
    Dim Cle As Variant
    Dim I As Integer
  
    'défini la plage des champs pour la ligne 1
    With ActiveSheet
        Set Plage = .Range(.Cells(1, 1), .Cells(1, .Columns.Count).End(xlToLeft))
    End With
    'crée le dictionnaire
    Set Dico = CreateObject("Scripting.Dictionary")
    'parcour les cellules et ajoute au dico si le champ n'existe pas
    'dans le cas contraire, l'incrémente
    For Each Cel In Plage
        If Dico.exists(Cel.Value) = False Then
            Dico.Add Cel.Value, 0
        Else
            'incrément la valeur de la clé
            Dico.Item(Cel.Value) = Dico.Item(Cel.Value) + 1
            'et crée la nouvelle clé avec l'incrémentation
            Dico.Add Cel.Value & Dico.Item(Cel.Value), 0
        End If
    Next Cel
    'récupère les clés
    ListeCle = Dico.Keys
    'colle les nouveaux champs à la place des anciens
    For I = 0 To Dico.Count - 1
        Plage(I + 1).Offset(0, 0) = ListeCle(I)
    Next I
    Set Dico = Nothing

End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 109
Messages
2 085 383
Membres
102 878
dernier inscrit
asmaa