XL 2019 transposer une liste de données sans doublons

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 !

pasquetp

XLDnaute Occasionnel
Bonjour,

je travaille sur un projet important pour la boite ou je travaille et j'espere que pourrez m'aider

voila j'ai deux feuilles :

une premiere appelé TABLEAU-REPORT et une seconde PIVOT TABLE

sur la premiere feuille en colonne J a partir de la ligne 2 jusquà la dernière ligne rempli , j'ai une liste de données voici un petit echantillon
sur la seconde page en colonne V a partir de la seconde ligne je veux integrer les données provenant de l'autre feuille et sans doublon

je souhaite optimiser le code au mieux mais je connais tres mal les tableaux a plusieurs dimensions

auriez vous une piste ?

merci infiniment

Pierre

IAD1
IAD101
IAD101
IAD101
DUB110
GRU2
GRU4
GRU4
PDX
BJS20
ICN53
ICN53
ICN54

 
Bonjour @pasquetp 🙂,

Testez le code :
VB:
Sub CopierJenVunique()
Dim der&
   Application.ScreenUpdating = False
   With Sheets("PIVOT TABLE")
      .Range("v2").Resize(Rows.Count - 1).Clear
      der = Sheets("TABLEAU-REPORT").Cells(Rows.Count, "j").End(xlUp).Row
      Sheets("TABLEAU-REPORT").Range("j2:j" & der).Copy .Range("v2")
      .Range("v2:v" & der).RemoveDuplicates Columns:=Array(1), Header:=xlNo
   End With
End Sub
 
Dernière édition:
Bonjour pasquetp
Salut mapomme
Je l'ai fait ,je le publie
VB:
Sub report()
tablo = Sheets("TABLEAU-REPORT").Range("J2:J" & Sheets("TABLEAU-REPORT").Range("J" & Rows.Count).End(xlUp).Row)
For n = LBound(tablo, 1) To UBound(tablo, 1)
  For m = LBound(tablo, 1) To UBound(tablo, 1)
    If tablo(n, 1) < tablo(m, 1) Then
       temp = tablo(n, 1)
       tablo(n, 1) = tablo(m, 1)
       tablo(m, 1) = temp
    End If
  Next
Next
lin = 3
Sheets("PIVOT TABLE").Range("V2") = tablo(LBound(tablo, 1), 1)
For n = LBound(tablo, 1) + 1 To UBound(tablo, 1)
  If tablo(n, 1) <> tablo(n - 1, 1) Then
     Sheets("PIVOT TABLE").Range("V" & lin) = tablo(n, 1)
     lin = lin + 1
  End If
Next
End Sub
 

Pièces jointes

Bonjour

jai regarde et teste les codes, vous etes des magiciens le resultat fonctionne tres bien pour chaque methode proposée, merci a tous le monde

voulant augmenter mes connaissances vba, j'ai particulierement lu et relu le code de Mr PierreJean qui m'a fascine ( cest dailleurs le code que je maitrise le moins de ceux fournis)

serait il possible d'ajouter des lignes commentaires car jai encore du mal a interpreter les lignes de codes et ca m'aidera a mieux comprendre le raisonnement , je sais que j'ai encore bcppp de chose a apprendre sur les tableaux a dimensions

encore une fois merci à vous tous

Pierre
 
- 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

Réponses
6
Affichages
333
Retour