Liste sans doublon trier sur la 4ème colonne [Résolu/Fermé]

Signaler
Messages postés
215
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
6 septembre 2020
-
Messages postés
9745
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 juillet 2020
-
Bonjour,
Je cherche à récupérer une liste (feuille BdD) extraite d'une autre liste (feuille Infos).
J'ai trouvé un code que j'ai voulu adapter, mais je n'y arrive pas.

Dim DeBlg As Long, DerLg As Long
DeBlg = Sheets("BdD").Range("D65000").End(xlUp).Row + 1
DerLg = Sheets("infos").Range("D65000").End(xlUp).Row + DeBlg - 1
Sheets("BdD").Activate
Sheets("Infos").Range("TabAg[[Expérim]:[Sct]]").AdvancedFilter Action:=xlFilterCopy _
, CopyToRange:=Range("B" & DeBlg), Unique:=Truele


Le pb, c'est que je voudrai désigner la colonne qui contient les doublons et en plus, j'ai des exigences :
1.que le filtre se fasse sur la 4ème colonne (Nom) et non sur la 1ère
2.que la liste vienne s'intégrer au tableau7 en gardant si possible la mise en forme (mais ça je pourrai le reprendre avec une mise en forme conditionnelle).
3.Enfin que la colonne Sct soit déplacer en colonne O du tableau7 de destination
https://www.cjoint.com/c/CIjlmrjbM2L
Merci pour votre aide

13 réponses

Messages postés
1941
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
23 août 2020
138
Bonjour,

Ce n'est pas limpide pour moi...
Au final, tu auras juste les onglets 'Infos' et 'BdD' ?
L'onglet 'Infos' ne comprend pas à chaque instant les lignes de 'BdD' ?
Sct correspond à un identifiant unique ? => Si on évite les doublons sur ce nombre, c'est bon ?

A+
Messages postés
215
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
6 septembre 2020
13
Bonjour Zoul67,
Merci de ta réponse.
L'onglets Infos est ma table de références qui me sert dans d'autres onglets et même d'autres tableurs. Elle sert également à des menus déroulants

il y a effectivement des doublons dans la colonne Sct, mais ce sont les mêmes que ceux de la colonne Nom ; donc si on supprime les doublons à partir de la colonne Nom, cela supprime ceux de la colonne Sct.

Chaque mois, je prends la liste dans l'onglet Infos, je la copie (sans doublons) sur l'onglet BdD, ensuite je vais remplir les autres colonnes de la BdD avec des données provenant d'autres sources.

J'espère avoir été plus claire
Messages postés
9745
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 juillet 2020
1 074
Bonjour,
C'est tout sauf claire comme explication !
Est-ce que par hasard vous voulez réaliser ce qui suit :
Copier les colonnes [N°, Nom et Sct] sans doublons de la feuille [Infos] et les coller sur la feuille [BdB] dans les colonnes [Dépt, Agences et Secteur] ..... ?

Messages postés
215
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
6 septembre 2020
13
Bonjour Le Pingou,
Merci de ta réponse.
Dans le fichier joint, il y a 3 onglets :
Infos (données à copier - colonnes A:E, soit TabAg[[Expérim]:[Sct]]
BdD Feuille où doivent être coller, sans doublons, les données à partir de la 1ère ligne disponible (ici 8) sur les colonnes B à E pour les données Expérim, N° Dép, Pôle, Nom et colonne O pour les Sct.
Résultats svp, pour montrer le résultat attendu.

J'ai de mon côté continué à chercher, j'y arrive semble t'il en créant une feuille pour le travail intermédiaire, mais je pense qu'avec des variables tableaux, ce serait plus propre et plus rapide.
Pour info, voici mon code :
Sub RécupTabAgNom()
Dim DeBlg As Long, DerLg As Long
'On crée une feuille provisoire de transfert sans doublon
Sheets.Add.Name = "ListAg"

DeBlg = Sheets("BdD").Range("D65000").End(xlUp).Row + 1
DerLg = Sheets("infos").Range("D65000").End(xlUp).Row + DeBlg - 1
'Copie de la liste des agences d'après Infos sur ListAg
' Sheets("BdD").Activate
Worksheets("infos").Range("TabAg[[Expérim]:[Sct]]").Copy
Worksheets("ListAg").Range("A1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
'suppression des doublons
Sheets("ListAg").Range("A:F").RemoveDuplicates Columns:=4, Header:=xlNo
'déplacement de la colonne Sct
Range("E:E").Cut Destination:=Range("N:N")
'Transfert de la liste dans BdD
Range("A1:N" & Range("N" & Rows.Count).End(xlUp).Row + 2).Cut Destination:=Sheets("BdD").Range("B" & DeBlg)
Application.displayalert = False
Sheets("ListAg").Delete
End Sub

A la sortie, mes données sont bonnes et ajoutées au tableau7. j'ai encore des soucis de mise en forme, il faut que j'efface toute la mise en forme et que je la refasse (j'ai une colonne ("C2") qui n'a plus les couleurs du tableau...)
Merci
Messages postés
9745
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 juillet 2020
1 074
Bonjour,
Merci pour l'information.
Il me semble avoir compris ce que vous voulez réaliser, cependant votre code n'est pas bon, je regarderai demain.
Note : ce n'est vraiment pas une bonne idée d'avoir des titres de colonne qui sont différents entre la source et la cible... !

Messages postés
215
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
6 septembre 2020
13
Merci Le Pingou,
Je suis autodidacte, cela me semblait bien de mettre des noms légèrement différents (Sct = Secteur) pour ne pas mélanger me mélanger dans les sources, mais je vois le pb, je vais donc changer de procéder.
A bientôt donc.
Messages postés
9745
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 juillet 2020
1 074
Bonjour,
Ne changer rien, cela marche aussi, il faut juste faire attention.
Je dois m'absenter et je pense en fin de journée ce sera terminé

Messages postés
9745
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 juillet 2020
1 074
Bonjour,
Ma proposition sur la base de votre fichier : https://www.cjoint.com/?3InrP6UkK6Z

Messages postés
215
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
6 septembre 2020
13
Bonjour Le Pingou,
C'est exactement ce que je voulais ; même si je ne maîtrise pas encore les Array, j'ai déjà à peu près tout compris de ta procédure ; avec qq autres exo, j'y arriverai...
Je n'ai plus qu'à faire une mise en forme conditionnelle par dessus.
Y a pas à dire, faut que j'arrive à faire des tableaux Array, c'est super rapide.

Mille fois merci pour tes explications, ta patience et ton boulot bien sûr.
Messages postés
9745
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 juillet 2020
1 074
Bonjour,
Comme vous travaillez avec un tableau Excel inséré sur la feuille, qu'elle est le problème de mise en forme ....?
Messages postés
215
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
6 septembre 2020
13
Merci Le Pingou pour ta proposition de continuer à m'aider.
je désire simplement garder les mises en forme de la feuille Infos pour les noms : * certains noms sont surlignés en jaune,
* toutes les noms commençant par Tota la ligne doit être avec une police gras et en bleu,
* toutes les lignes dont le N° Dép est 98 doivent avoir un fond rose clair
* toutes les lignes dont le N° Dép est 99 doivent avoir un fond rose foncé

le but est de mettre en valeur certaines références on compare chaque secteur, puis chaque dép, puis chaque région et enfin l'entreprise
Messages postés
9745
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 juillet 2020
1 074
Bonjour,
Avec la mise en forme conditionnelle cela devrait marcher.
C'est presque tout clair sauf pour : * certains noms sont surlignés en jaune,
Est-ce que cela concerne les noms dont la cellule de la colonne [Expérim] contient la valeur [Exp.. ! ?

Messages postés
9745
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 juillet 2020
1 074
Bonjour,
Est-ce que cela correspond à votre demande : https://www.cjoint.com/?3IqxMldvdtI