Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

gestion de doublon

pad01

XLDnaute Occasionnel
Bonjour Forum,
Suite à une extraction, j'ai des doublons dans la colonne des noms mais qui correspondent à des valeurs différentes. Je voudrais n'avoir plus qu'un nom (plus de nom en doublon) et récupérer toutes les valeurs correspondant au nom sur une ligne.
Je joins un fichier avec les données de l'extraction et un tableau avec la présentation souhaitée.
Merci de votre aide
Pad
 

Pièces jointes

  • Tab_Pad.xlsx
    8.3 KB · Affichages: 31
  • Tab_Pad.xlsx
    8.3 KB · Affichages: 27

pad01

XLDnaute Occasionnel
Re : gestion de doublon

Bonjour le Forum, bonjour Dranreb,
Merci de cette réponse rapide, je suis en train de faire des recherches sur vos anciens posts. Cela ne me parait pas aussi simple ou tout simple mes doigts sont trop gros
Merci de votre aide
 

pad01

XLDnaute Occasionnel
Re : gestion de doublon

Bonsoir Forum, Dranreb, Gosselien,
Bien vue Gosselien, je me suis compliqué l’existence. Effectivement, je pense que c'est la solution la plus simple.
Un grand merci à tous de votre aide
 

CPk

XLDnaute Impliqué
Re : gestion de doublon

Bonsoir pad01, gosselien Dranreb.
Euh...Je dois être rond comme une queue de pelle car je ne trouve aucun rapport entre le tableau initiale et le tableau final.
Suis-je bon pour la casse ?
 
Dernière modification par un modérateur:

klin89

XLDnaute Accro
Re : gestion de doublon

Bonsoir le forum,

Comme ceci :
VB:
Option Explicit
Sub test()
Dim a, i As Long, w(), n As Long, t As Long
    With Sheets("Feuil1").Range("a1").CurrentRegion
        a = .Value
        n = 1: t = 2: a(1, 2) = "FONCTION 1"
        With CreateObject("Scripting.Dictionary")
            .CompareMode = 1
            For i = 2 To UBound(a, 1)
                If Not .exists(a(i, 1)) Then
                    n = n + 1
                    a(n, 1) = a(i, 1)
                    a(n, 2) = a(i, 2)
                    .Item(a(i, 1)) = VBA.Array(n, 2)
                Else
                    w = .Item(a(i, 1))
                    w(1) = w(1) + 1
                    .Item(a(i, 1)) = w
                    If UBound(a, 2) < w(1) Then
                        ReDim Preserve a(1 To UBound(a, 1), 1 To w(1))
                    End If
                    a(w(0), w(1)) = a(i, 2)
                    t = Application.Max(t, w(1))
                End If
            Next
        End With
        'Restitution à côté du tableau initial
        With .Offset(, .Columns.Count + 1)
            .CurrentRegion.Clear
            .Resize(n, t).Value = a
            With .CurrentRegion
                If .Columns.Count > 2 Then
                    .Cells(1, 2).AutoFill _
                            Destination:=.Cells(1, 2).Resize(, .Columns.Count - 1)
                End If
                .BorderAround Weight:=xlThin
                .Borders(xlInsideVertical).Weight = xlThin
                .Borders(xlInsideHorizontal).Weight = xlThin
                .VerticalAlignment = xlCenter
                With .Rows(1)
                    .Interior.ColorIndex = 36
                End With
                .Columns.AutoFit
            End With
        End With
    End With
End Sub
klin89
 

pad01

XLDnaute Occasionnel
Re : gestion de doublon

Bonjour Forum, Dranreb, Gosselien, CPk, klin89,
Merci de votre aide
klin89
Top la macro, elle fonctionne. Je l'ai adapté, non sans mal, à mon classeur d'origine.
CPk
Désolé, je n'ai pas dû être très claire dans mes explication. Le but est de regrouper des données différente à un nom.
 

CPk

XLDnaute Impliqué
Re : gestion de doublon

Bonjour pad01...Non non si 3 personnes sur 4 ont compris c'est que tu as été très clair . Mais je vais bientôt m'engager à arrêter de boire avant de venir ici, ca sera peut-être plus simple pour comprendre l'énoncé.
 

Discussions similaires

Réponses
7
Affichages
482
Réponses
19
Affichages
445
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…