Tri adresses mail combobox

Résolu/Fermé
romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023 - 11 mars 2021 à 13:52
romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023 - 15 mars 2021 à 17:07
Bonjour,

J'ai une combobox dans un fichier Excel reprenant une liste d'adresses mail au format :

pierre.dupont@entreprise.fr

Comment puis-je classer la liste de la combo par ordre alphabétique de NOM.

Merci beaucoup

Configuration: Windows / Chrome 89.0.4389.82
A voir également:

14 réponses

yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 Ambassadeur 1 568
11 mars 2021 à 13:55
bonjour,
cette combobox est-elle construite sur le contenu de cellules?
si oui, il suffit de trier les cellules.
0
romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023 2
11 mars 2021 à 14:05
Bonjour,

J'y ai pensé mais il faudrait trier les cellules sur la partie du nom seulement. je sais que ça peut se faire mais la saisie des adresses mails va se faire par des utilisateurs sur une plage.
0
yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 1 568
11 mars 2021 à 14:44
il suffit alors d'ajouter une formule dans une autre plage, afin d'y obtenir ce que tu appelles la partie du nom, et de faire un tri.
quand la formule est en place, tu peux utiliser l'enregistreur de macro pour découvrir comment faire un tri en VBA.
0
romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023 2
12 mars 2021 à 18:14
Bonjour,

Après essai, ce n'est pas satisfaisant. Malgré une une macro fait par l'enregistreur, un message apparait : "Voulez-vous remplacer le contenu des cellules existantes". Si on clique sur OK, c'est bon.
Si on clique dur Annuler ça bug.

Je préfèrerais une macro à la source sur la combobox, plus fluide pour l'utilisateur.
0
yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 1 568
12 mars 2021 à 18:59
peux-tu partager ton fichier, ou, au minimum, le code de la macro?
la macro ne trie pas la plage source de la combobox?
0
yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 1 568 > yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025
12 mars 2021 à 22:02
as-tu répondu à la seconde question?
0
romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023 2 > yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025
12 mars 2021 à 22:14
Si mais elle déclenche la question gérée par Excel : "Voulez-vous remplacer les cellules existantes"
Si on clique sur OK, c'est bon
Si on clique sur Annuler, ça bug.
Pas top pour l'utilisateur.
0
romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023 2
12 mars 2021 à 19:53
Voilà :

Sub Macro6()
'
' Macro6 Macro
'

'
Sheets("JoursFériés et mails").Select
Range("I9:I22").Select
Selection.TextToColumns Destination:=Range("K9"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:=".", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1)), _
TrailingMinusNumbers:=True
Range("K8:L21").Select
ActiveWorkbook.Worksheets("JoursFériés et mails").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("JoursFériés et mails").Sort.SortFields.Add Key:= _
Range("L9:L21"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("JoursFériés et mails").Sort
.SetRange Range("K8:L21")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Sheets("Mail actualisation").Select
End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023 2
12 mars 2021 à 20:14
REctificatif :

Sub Macro10()
'
' Macro10 Macro
'

'
Sheets("JoursFériés et mails").Select
Range("I9:I22").Select
Selection.TextToColumns Destination:=Range("K9"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:=".", FieldInfo:=Array(Array(1, 2), Array(2, 1), Array(3, 1)), _
TrailingMinusNumbers:=True
Range("K8:M22").Select
ActiveWorkbook.Worksheets("JoursFériés et mails").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("JoursFériés et mails").Sort.SortFields.Add Key:= _
Range("L9:L22"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("JoursFériés et mails").Sort
.SetRange Range("K8:M22")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("L24").Select
Sheets("Mail actualisation").Select
End Sub
0
yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 1 568
12 mars 2021 à 21:21
0
romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023 2 > yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025
12 mars 2021 à 21:53
Sub Macro10()
'
' Macro10 Macro
'

'
Sheets("JoursFériés et mails").Select
Range("I9:I22").Select
Selection.TextToColumns Destination:=Range("K9"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:=".", FieldInfo:=Array(Array(1, 2), Array(2, 1), Array(3, 1)), _
TrailingMinusNumbers:=True
Range("K8:M22").Select
ActiveWorkbook.Worksheets("JoursFériés et mails").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("JoursFériés et mails").Sort.SortFields.Add Key:= _
Range("L9:L22"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("JoursFériés et mails").Sort
.SetRange Range("K8:M22")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("L24").Select
Sheets("Mail actualisation").Select
End Sub
 
0
yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 1 568 > romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023
13 mars 2021 à 09:23
pour du VBA, il faut préciser "basic" comme langage.
0
yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 1 568 > romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023
13 mars 2021 à 09:37
si je devine bien ce que fait ton code, tu as choisi d'utiliser "text to columns" plutôt qu'une formule afin d'isoler le nom.

as-tu investigué et déterminé quelle est la ligne de code qui déclenche la question "gérée" par Excel?

je pense qu'il suffit de vider la plage de destination avant de faire TextToColumns:
Sheets("JoursFériés et mails").Range("K8:M22").Clear
0
romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023 2
13 mars 2021 à 10:37
Bonjour,

Je te joins mon fichier, ce sera plus simple :

https://mon-partage.fr/f/Hxgsiuts/

Merci à toi
0
yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 1 568
13 mars 2021 à 10:50
as-tu testé ma suggestion avant d'envoyer le fichier?
est-elle incluse dans le fichier envoyé?
0
romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023 2
13 mars 2021 à 14:23
Ok j'ai intégré le code supplémentaire à l'endroit précisé et cela fonctionne (pour info, je ne maîtrise pas du tout les macros). Merci.

Y-a t'il un moyen, quand on défiltre dans l'onglet "rétroplanning", de ne plus avoir l message :

"Voulez-vous remplacer le contenu des cellules de destination dans Mail actualisation?"
et donc d'être obligé de faire "OK" à chaque fois?
0
yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 1 568
13 mars 2021 à 15:32
ta nouvelle question a-t-elle un rapport avec la macro?
0
romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023 2 > yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025
13 mars 2021 à 16:10
Non, sur le premier sujet c'est réglé....
0
yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 1 568 > romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023
13 mars 2021 à 16:16
j'ai commencé à regarder pour ta nouvelle question.
j'ai arrêté, le fichier est trop désordonné, avec du code dans tous les sens.
0
romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023 2
14 mars 2021 à 11:11
Bonjour,

Hormis la complexité du fichier, on pourrait prendre la question à part, non?

Quand on filtre un TCD, peut-on empêcher, par macro, le message : "Voulez-vous remplacer le contenu des cellules existantes"?
0
yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 1 568
14 mars 2021 à 12:38
Me message est produit parce que l'extension du TCD va effacer des données hors du TCD existant.
Je pense que le plus simple est d'effacer ces données avant d'étendre le TCD.
0
romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023 2
14 mars 2021 à 18:35
Non parce qu'il y a juste la macro qui permet de ne pas écraser ces données même si on clique OK (onglet Mail actualisation")
0
yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 1 568
14 mars 2021 à 19:27
Tu réponds non, alors que je n'ai pas posé de question.
0
romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023 2
15 mars 2021 à 08:34
Bonjour.

Je réponds non au fait qu'il faille effacer les données avant d'étendre le TCD.
0
yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 1 568
15 mars 2021 à 10:35
Ces données sont effacées quand on répond "ok".
0
romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023 2
15 mars 2021 à 10:38
Non, voir l'onglet "Mail actualisation"

La macro suivante empêche cela :

'Adapte le texte sous le TCD à la hauteur du TCD
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
'
Dim d&, t&
Const p$ = "Bien cordialement"
Const f$ = "=CONCATENATE(""Date de retour souhaitée le "")&TEXT(WORKDAY(Rétroplanning!C8,J2,'JoursFériés et mails'!B9:B17),""jj mmmm aaaa"")"

    t = Target.TableRange2.Row + Target.TableRange2.Rows.Count - 1
    d = Cells(Rows.Count, "B").End(xlUp).Row
    Do While d > t
        Cells(d, "B").Clear
        d = Cells(Rows.Count, "B").End(xlUp).Row
    Loop
    With Cells(t + 2, "B")
        .Formula = f
        .Font.Bold = True
        .Font.Underline = True
    End With
    Cells(t + 4, "B").Value = p
    With Shapes("Signature")
      .Top = Cells(t + 7, "B").Top
      .Left = Cells(t + 7, "B").Left
    End With

End Sub

0
yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 1 568
15 mars 2021 à 10:53
comme tu le vois, cette macro fait deux choses, après la mise à jour du TCD:
- elle efface d'abord toutes les données en dessous du nouveau TCD
- elle ajoute ensuite de nouvelles données en dessous du nouveau TCD

ce que tu dois ajouter, c'est du code qui est exécuté avant de mettre le TCD à jour, pour effacer les données qui vont disparaitre à cause de l'extension du TCD (ou effacer toutes les données en dessous de l'ancien TCD).
0
romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023 2 > yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025
15 mars 2021 à 11:11
Oui mais là je ne sais pas faire.

les macros que tu as pu voir dans mon fichier ne sont pas de ma science mais de helpers sur ce forum....
0
yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 1 568 > romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023
15 mars 2021 à 11:35
le fichier est trop désordonné, avec du code dans tous les sens, sans logique globale.
très probablement avec beaucoup de code inutile.

comment se fait-il que ce TCD se mette à jour, qu'est-ce qui déclenche cette mise à jour?
quand tu auras déterminé quelle ligne de code déclenche cela, il sera probablement simple d'adapter le code pour éviter de recevoir la question.

ceci t'aidera peut-être:
https://www.commentcamarche.net/contents/1381-debogage
0
romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023 2
15 mars 2021 à 11:42
Bon OK.

Je n'ai malheureusement pas le temps d'attaquer une formation en macro.

Je vais repositionner la question sur le forum.

Merci pour le temps passé.

Bonne journée
0
yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 1 568
15 mars 2021 à 11:57
peux-tu alors marquer la discussion comme résolue?
0
romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023 2
15 mars 2021 à 11:58
Oui même si Ce n'est pas le terme exact
0
yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 1 568
15 mars 2021 à 14:59
tu as pourtant obtenu une excellente solution à ta question de départ, me semble-t-il.
0
romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023 2
15 mars 2021 à 17:07
Oui tu as raison puisque j'ai formulé ensuite une seconde question qui n'était pas dans le sujet
0