J'ai besoin de votre aide.
Je recherche comment faire pour copier une colonne d'une autre feuille à partir d'un autre colonne sans doublons.
J'ai une colonne E (dans feuille "JANVIER") Composée de nom de client (avec doublons),
Je souhaite que lorsque je remplis cette colonne, automatiquement la colonne de la feuille "clients" se remplisse automatiquement sans doublons et si possible par ordre alphabétique.
Bonsoir gregguadebois, et bienvenu sur XLD,
Un petit fichier test serait le bienvenu, cela éviterait inévitablement plusieurs allers retours.
Il y a peu de chance qu'une réponse tombe pile poil avec la structure de votre fichier.
J'ai besoin de votre aide.
Je recherche comment faire pour copier une colonne d'une autre feuille à partir d'un autre colonne sans doublons.
J'ai une colonne E (dans feuille "JANVIER") Composée de nom de client (avec doublons),
Je souhaite que lorsque je remplis cette colonne, automatiquement la colonne de la feuille "clients" se remplisse automatiquement sans doublons et si possible par ordre alphabétique.
Si jamais le besoin est en macro que tu peux mettre après un bouton "MaJ liste client" tu peux essayer (j'ai pas tester puisque pas de fichier exemple.
Ci joint un exemple.
mon but,
Copier les clients, dans la feuille clients, sans doublons et par ordre.
Et a partir de cette liste, je créer une liste de choix classique que j'utilise dans la page "janvier" dans la colonne client d'origine.
Ainsi cela ferait une liste en boucle auto-alimentée...
Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fin: If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, [E:E]) Is Nothing Then
Application.ScreenUpdating = False
DL = [E65500].End(xlUp).Row
With Sheets("CLIENTS")
.Range("A1:A" & DL) = Range("E1:E" & DL).Value ' Copie
.Range("A1:A" & DL).RemoveDuplicates Columns:=1, Header:=xlYes ' Supprime doublon
.Range("A1:A" & DL).Sort key1:=.[A1], order1:=xlAscending, Header:=xlYes ' Tri alpha
End With
End If
Fin:
End Sub
Quand on ajoute un client en page Janvier alors la liste de client est reconstituée en feuille Clients, sans doublon, et en ordre alpha.
A noter que si vous avez ensuite des feuilles Février, Mars ... il faut recopier cette macro dans chaque nouvelle feuille. ( ou alors dupliquer la feuille Janvier, la macro suivra )
Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fin: If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, [E:E]) Is Nothing Then
Application.ScreenUpdating = False
DL = [E65500].End(xlUp).Row
With Sheets("CLIENTS")
.Range("A1:A" & DL) = Range("E1:E" & DL).Value ' Copie
.Range("A1:A" & DL).RemoveDuplicates Columns:=1, Header:=xlYes ' Supprime doublon
.Range("A1:A" & DL).Sort key1:=.[A1], order1:=xlAscending, Header:=xlYes ' Tri alpha
End With
End If
Fin:
End Sub
Quand on ajoute un client en page Janvier alors la liste de client est reconstituée en feuille Clients, sans doublon, et en ordre alpha.
A noter que si vous avez ensuite des feuilles Février, Mars ... il faut recopier cette macro dans chaque nouvelle feuille. ( ou alors dupliquer la feuille Janvier, la macro suivra )
cela fonctionne bien mais contre, comme je l'expliqué ci dessus, j'aurais souhaité retransormer cette colonne en liste, ce qui fonctionne mais pourvoir ajouter des nouveaux clients
Est-ce possible?
Re,
Voir PJ.
La liste déroulante est constituée par :
VB:
=DECALER(Liste0;0;0;NB.SI(Liste;"<>"))
et il faut dans Alerte d'erreur décocher Quand les données non valides sont tapées.
Car quand vous entrez un nouveau client, évidemment cette donnée n'est pas dans la liste.
Re,
Voir PJ.
La liste déroulante est constituée par :
VB:
=DECALER(Liste0;0;0;NB.SI(Liste;"<>"))
et il faut dans Alerte d'erreur décocher Quand les données non valides sont tapées.
Car quand vous entrez un nouveau client, évidemment cette donnée n'est pas dans la liste.
Re,
Voir PJ.
La liste déroulante est constituée par :
VB:
=DECALER(Liste0;0;0;NB.SI(Liste;"<>"))
et il faut dans Alerte d'erreur décocher Quand les données non valides sont tapées.
Car quand vous entrez un nouveau client, évidemment cette donnée n'est pas dans la liste.
Je reviens vers vous après 6mois pour que vous m'aidiez à perfectionner mon fichier.
Ce que l'on m'a proposé fonctionne mais pas comme je le souhaiterais.
Les listes clients et la page clients et la même pour les machines ne fonctionne pas correctement et ne se mettent pas à jour correctement.
Je souhaiterais vraiment que la liste se mette à jour par ordre alphabétique et sans doublons de janvier à décembre.
Comment puis-je faire?
Je reste à votre disposition si vous voulez plus d'explication.
Bonjour gregguadebois,
On est assez loin de la demande du post #1.
En fait vous voulez qu'à chaque fois qu'on entre une nouvelle valeur dans une des 4 colonnes, la liste se remette à jour et triée sans doublons ?
En PJ un essai, j'ai pas mal simplifié.
Dans toutes les feuilles de Mois, il y a cette simple macro :
VB:
Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fin: If Target.Count > 1 Or Target = "" Then Exit Sub
Select Case Target.Column
Case 6: TriClients Target
Case 7: TriMachines Target
Case 10: TriTaches Target
Case 11: TriAutres Target
End Select
Fin:
End Sub
Qui appelle une des 4 macros de tri du genre :
Code:
' 4 modules quasi identiques pour chacune des 4 listes
' Le paramètre passé est le contenu de la cellule validée qui est ajoutée à la liste correspondante.
Sub TriClients(Chaine)
Application.ScreenUpdating = False
With Sheets("CLIENTS")
DL = 1 + .[A65500].End(xlUp).Row ' Première ligne vide
.Cells(DL, "A") = Chaine ' Insertion nouvelle donnée
.Range("A1:A" & DL).RemoveDuplicates Columns:=1, Header:=xlYes ' Supprime doublon
.Range("A1:A" & DL).Sort key1:=.[A1], order1:=xlAscending, Header:=xlYes ' Tri alpha
End With
End Sub
Pour les listes Clients, Machines, Taches et Autres taches.
Les listes déroulantes dans les feuilles Mois sont alors :
Dans la PJ j'ai remis à jours toutes les macros dans les feuilles, mais remis à jour les listes déroulantes que dans la feuille Janvier, "YaPuKa" faire pareil sur les 11 autres mois.
Faites un retour s'il y a un quelconque problème.
Bonjour gregguadebois,
On est assez loin de la demande du post #1.
En fait vous voulez qu'à chaque fois qu'on entre une nouvelle valeur dans une des 4 colonnes, la liste se remette à jour et triée sans doublons ?
En PJ un essai, j'ai pas mal simplifié.
Dans toutes les feuilles de Mois, il y a cette simple macro :
VB:
Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fin: If Target.Count > 1 Or Target = "" Then Exit Sub
Select Case Target.Column
Case 6: TriClients Target
Case 7: TriMachines Target
Case 10: TriTaches Target
Case 11: TriAutres Target
End Select
Fin:
End Sub
Qui appelle une des 4 macros de tri du genre :
Code:
' 4 modules quasi identiques pour chacune des 4 listes
' Le paramètre passé est le contenu de la cellule validée qui est ajoutée à la liste correspondante.
Sub TriClients(Chaine)
Application.ScreenUpdating = False
With Sheets("CLIENTS")
DL = 1 + .[A65500].End(xlUp).Row ' Première ligne vide
.Cells(DL, "A") = Chaine ' Insertion nouvelle donnée
.Range("A1:A" & DL).RemoveDuplicates Columns:=1, Header:=xlYes ' Supprime doublon
.Range("A1:A" & DL).Sort key1:=.[A1], order1:=xlAscending, Header:=xlYes ' Tri alpha
End With
End Sub
Pour les listes Clients, Machines, Taches et Autres taches.
Les listes déroulantes dans les feuilles Mois sont alors :
Dans la PJ j'ai remis à jours toutes les macros dans les feuilles, mais remis à jour les listes déroulantes que dans la feuille Janvier, "YaPuKa" faire pareil sur les 11 autres mois.
Faites un retour s'il y a un quelconque problème.
Merci d'être au RDV et d'être aussi réactif. Cela fait plaisir.
En effet j'ai testé ton fichier, ca à l'air de fonctionner très bien. Merci
Par contre, petite question.
Imaginons, La machine "AA" est un prototype et je souhaite remplacer le nom "AA" par son vrai nom, le AA reste la feuille machine et du coup dans la liste de choix.
Je suppose que c'est trop compliqué de remédier à cela?
Bonjour gregguadebois,
Je ne comprends pas bien la question qui peux avoir deux lectures :
1- Dans la feuille MACHINES vous changez AA par ABCD et dans les listes déroulantes vous verrez apparaitre ABCD au lieu de AA.
2- Le changement de nom doit aussi se faire dans toutes les feuilles où elles sont déjà inscrites, alors là, oui, c'est plus complexe, il faut faire un changement sur toutes les feuilles.
Bonjour gregguadebois,
Je ne comprends pas bien la question qui peux avoir deux lectures :
1- Dans la feuille MACHINES vous changez AA par ABCD et dans les listes déroulantes vous verrez apparaitre ABCD au lieu de AA.
2- Le changement de nom doit aussi se faire dans toutes les feuilles où elles sont déjà inscrites, alors là, oui, c'est plus complexe, il faut faire un changement sur toutes les feuilles.
Donc oui cela serait complexe, car je pense votre lecture 2
en effet, si sur la page janvier je change AA en G3 par ABCD, ABCD s'ajoute et se trie dans onglet MACHINES et le AA disparait de celui ci et de liste déroulante ( à la condition bien évidemment que j'ai changer tout les AA dans la colonne machine de tout les mois.
Tans pis alors, au pire cela peux ce faire manuellement