Extraire Des Colonnes D'un Tableau pour former un autre Tableau

  • Initiateur de la discussion Initiateur de la discussion rigo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

rigo

XLDnaute Nouveau
Bonjour,

Débutant sous Excel et en plein projet, je fais appelle vous pour un petit coup de pouce.
Je voudrais extraire d'un tableau de données des éléments d'une colonne dans laquelle il y a des doublons, supprimer ces derniers et les positionner en têtes de colonne.
Puis sélectionner les éléments d'une autre colonne qui sont eux uniques pour les positionner sous les têtes de colonnes correspondantes.
Pour plus de clarté voici un exemple:
Produit Référence Longueur
As 001 1
As 002 3
Et 105 56
Ad 230 34
Ad 245 20
Ad 231 10
Ad 236 15

A transformer en

As Et Ad
1 56 34
3 20
10
15

Voila j’espère que tout est clair.
Je joins mon Tableau, le feuillet concerné se nomme EQUERRE-RALLONGE et le colonnes visées sont "Produit" et "Longueur Max"

Par Avance Merci

Greg
 

Pièces jointes

Re : Extraire Des Colonnes D'un Tableau pour former un autre Tableau

Bjr Greg

ce n'est pas très clair, est-ce que vous pourriez dans votre fichier joint faire un petit exemple de ce que vous souhaitez avec les données de votre tableau ?

cordialement, Gérard
 
Re : Extraire Des Colonnes D'un Tableau pour former un autre Tableau

Bonjour rigo, Bonjour natorp,
rigo, il faut un peu de patience, le problème n'est pas simple, surtout avec vos explications qui ne sont pas légions.
Je vous fait une proposition avec ce que j'ai compris. Le tableau se crée sur la feuille 2.
VB:
Sub Test()
Dim c, Tablo2(), LstRow#, j#, L#, k, FirstAdress
Set Dico = CreateObject("Scripting.Dictionary")
With Sheets("Feuil1")
    LstRow = .Cells(Rows.Count, 4).End(xlUp).Row
    Set Plg = .Range(.Cells(7, 4), .Cells(LstRow, 4))
    For Each c In Plg
       Dico(c.Value) = c.Value
    Next c
    Tablo = Dico.Keys
    ReDim Tablo2(1 To LstRow, 1 To UBound(Tablo) + 1)
    For i = 0 To UBound(Tablo, 1)
        Tablo2(1, i + 1) = Tablo(i)
    Next i
    For j = 1 To UBound(Tablo2, 2)
        L = 2
        Set k = Plg.Find(Tablo2(1, j), lookat:=xlPart)
        If Not k Is Nothing Then
            FirstAdress = k.Address
            Do
            Tablo2(L, j) = k.Offset(0, 5)
            L = L + 1
            Set k = Plg.FindNext(k)
            Loop While Not k Is Nothing And k.Address <> FirstAdress
        End If
    Next j
End With
With Sheets("Feuil2")
    .UsedRange.ClearContents
    .Range("A1").Resize(UBound(Tablo2, 1), UBound(Tablo2, 2)) = Tablo2
    .Activate
End With
End Sub
Il y a certainement mieux...
Cordialement
 

Pièces jointes

Dernière édition:
Re : Extraire Des Colonnes D'un Tableau pour former un autre Tableau

Bien vu Efgé, je n'arrivais pas à trouver, j'essayais aussi en TCD mais sans solution, je pense que tu as trouvé...
je remarque qu'en appliquant la macro, la première valeur (50) des équerres se retrouve en fin de colonne A sur la feuille 2, tu sais pourquoi ?

cordialement, Gérard
 
Re : Extraire Des Colonnes D'un Tableau pour former un autre Tableau

Re
@ Natorp 🙂
La plage de recherche commence par la première valeur cherchée. Comme le find va chercher les suivants, il ne retrouve sa cellule d'origine qu'à la fin du cycle. Pour éviter cela on peux créer une deuxiéme plage en début de macro :
VB:
Set Plg2 = .Range(.Cells(6, 4), .Cells(LstRow, 4))
et l'utiliser dans la recherche:
VB:
Set k = Plg2.Find(Tablo2(1, j), lookat:=xlPart)
et
VB:
Set k = Plg2.FindNext(k)
Cordialement
 
Dernière édition:
Re : Extraire Des Colonnes D'un Tableau pour former un autre Tableau

Bonjour à tous,

Ne vous inquiétez pas je suis toujours vivant. Je suis en pleins rush pour terminer ma mission à temps!!

Je vous remercie tous pour votre aide, c'est génial!!!🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2013 Aide VBA
Réponses
4
Affichages
1 K
Retour