Tri adresses mail combobox
Résolu
romanza
Messages postés
249
Date d'inscription
Statut
Membre
Dernière intervention
-
romanza Messages postés 249 Date d'inscription Statut Membre Dernière intervention -
romanza Messages postés 249 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Tri adresses mail combobox
- Tri sur excel - Guide
- Créer une adresse mail hotmail - Guide
- Publipostage mail - Accueil - Word
- Windows live mail - Télécharger - Mail
- Logiciel tri photo - Guide
14 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 583
bonjour,
cette combobox est-elle construite sur le contenu de cellules?
si oui, il suffit de trier les cellules.
cette combobox est-elle construite sur le contenu de cellules?
si oui, il suffit de trier les cellules.
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.
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.
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.
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.
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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
merci d'utiliser les balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
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
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:
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
Bonjour,
Je te joins mon fichier, ce sera plus simple :
https://mon-partage.fr/f/Hxgsiuts/
Merci à toi
Je te joins mon fichier, ce sera plus simple :
https://mon-partage.fr/f/Hxgsiuts/
Merci à toi
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?
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?
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"?
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"?
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")
Non, voir l'onglet "Mail actualisation"
La macro suivante empêche cela :
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
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).
- 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).
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
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
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
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