Générer une liste à partir d'un tableau

Zodiac35

XLDnaute Nouveau
Bonjour à tous,

Je suis débutant en macro et je fais appel à vous pour avoir un peu d'aide, après des recherches non fructueuses !

Je cherche à créer une liste à partir de 4 colonnes. J'aimerais que cette liste se créait sur une nouvelles feuilles et que les doublons de cette liste soit supprimer ainsi que les vides. La difficulté c'est que je voudrais que si l'on rajoute des lignes au tableau cela soit pris en compte quand je génère ma liste. En gros que le tableau ne soit pas considéré comme une variable "fixe" en terme de dimension.

Pourriez - vous me donner un coup de main svp ?

P.S: j'ai mis un fichier pour que vous compreniez comment est fait le tableau !

Merci beaucoup pour votre aide,

A bientôt

Antoine
 

Pièces jointes

  • Exemple.xlsx
    9.1 KB · Affichages: 81
  • Exemple.xlsx
    9.1 KB · Affichages: 65
  • Exemple.xlsx
    9.1 KB · Affichages: 73

Zodiac35

XLDnaute Nouveau
Re : Générer une liste à partir d'un tableau

Merci beaucoup pour ta solution c'est parfait !

Est ce que tu pourrais en quelques mots expliquer la formule car je ne la comprends pas ?

Sinon c'est pas grave et merci pour tout.

A bientôt
 

Zodiac35

XLDnaute Nouveau
Re : Générer une liste à partir d'un tableau

Finalement je n'arrive pas à utiliser cette formule. Tout d'abord parce que le tableau en pièce jointe est 4 colonnes d'un plus grand tableau et quand j'essaie de l'adapter je n'y arrive pas. De plus c'est un tableau de 3800 lignes et j'ai l'impression que la formule ne fonctionne pas avec beaucoup de données.

Je joints un fichier pour que vous compreniez.

Je tiens à vous préciser que le contenu de mes cellules sont générés par des formules.

P.S: C'est avec les colonnes Ach1, Ach2, Ach3 et Ach4 que je veux générer une liste.

Merci pour votre aide
 

Pièces jointes

  • Exemple2.xlsx
    9.8 KB · Affichages: 68
  • Exemple2.xlsx
    9.8 KB · Affichages: 66
  • Exemple2.xlsx
    9.8 KB · Affichages: 72

R@chid

XLDnaute Barbatruc
Re : Générer une liste à partir d'un tableau

Bonjour,
La formule est Matricielle qui se valide par la combinaison de touche Ctrl+Maj+Entree, les formules matricielles sont un peu gourmandes en ressources....
Voir PJ...
J'ai crée un champ Dynamique "Tab_Ach", mais il ne faut pas avoir de vide dans la colonne A...
Amicalement
 

Pièces jointes

  • Zodiac_2.xlsx
    11.3 KB · Affichages: 72

Zodiac35

XLDnaute Nouveau
Re : Générer une liste à partir d'un tableau

Merci beaucoup Rachid,

Cependant, Excel rame environ 5 minutes pour obtenir ma liste. Est ce qu'il existe un autre moyen plus rapide d'obtenir le même résultat (macro ?) ?

Merci pour vos réponses
 

Zodiac35

XLDnaute Nouveau
Re : Générer une liste à partir d'un tableau

Si jamais ça peut inspirer quelqu’un: Ce que j'essaie de faire depuis le début, c'est une macro qui d'abord, créé une liste à partir de mes colonnes puis qui tri ma liste de A à Z et enfin supprime les vides et les doublons de cette liste...

Cependant cette solution va peut être être encore plus lente que celle de Zodiac...
 

JCGL

XLDnaute Barbatruc
Re : Générer une liste à partir d'un tableau

Bonjour à tous,

Peux-tu essayer ceci sur ton dernier fichier ?

VB:
Option Explicit


Sub Test()
    With Feuil1
        Range("O2:O4000").Copy Range("T2")
        Range("P2:P4000").Copy Range("T4000")
        Range("Q2:Q4000").Copy Range("T8000")
        Range("R2:R4000").Copy Range("T12000")
        With .Sort
            .SortFields.Clear
            .SortFields.Add Key:=Range("T2"), SortOn:=xlSortOnValues, Order:=xlAscending
            .SetRange Range("T2:T16000")
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        ActiveSheet.Range("$T$1:$T$12000").RemoveDuplicates Columns:=1, Header:=xlNo
        Range("T1").Select
    End With
End Sub

A + à tous
 

Zodiac35

XLDnaute Nouveau
Re : Générer une liste à partir d'un tableau

C'est pas mal du tout et instantané ! Je vais travailler dessus pour l'adapter parfaitement à mes besoins et je vous tiens au courant.

En tout cas un grand merci à vous deux !

Bonne soirée,

Amicalement.
 

Zodiac35

XLDnaute Nouveau
Re : Générer une liste à partir d'un tableau

Bonjour à tous,
J'ai encore un petit probleme c'est que le code fonctionne si ce sont des valeurs dans le tableau mai pas des formules.

Une petite idée ?

Je pense qu'il faudrait au miment de generer la premiere liste la generer en faisant une copy en valeur mais je ne sais pas faire.

Merci
 

JCGL

XLDnaute Barbatruc
Re : Générer une liste à partir d'un tableau

Bonjour à tous,

Peux-tu essayer :

VB:
Option Explicit
Sub Test()
    With Feuil1
        Range("O2:O4000").Copy
        Range("T2").PasteSpecial Paste:=xlPasteValues, SkipBlanks:=True
        Range("P2:P4000").Copy
        Range("T4000").PasteSpecial Paste:=xlPasteValues, SkipBlanks:=True
        Range("Q2:Q4000").Copy
        Range("T8000").PasteSpecial Paste:=xlPasteValues, SkipBlanks:=True
        Range("R2:R4000").Copy
        Range("T12000").PasteSpecial Paste:=xlPasteValues, SkipBlanks:=True
    
        With .Sort
            .SortFields.Clear
            .SortFields.Add Key:=Range("T2"), SortOn:=xlSortOnValues, Order:=xlAscending
            .SetRange Range("T1:T16000")
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        ActiveSheet.Range("$T$1:$T$12000").RemoveDuplicates Columns:=1, Header:=xlNo
        Range("T1").Select
    End With
End Sub

A+ à tous
 

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 092
Membres
103 116
dernier inscrit
kutobi87