Bonjour tout le monde,
Pour aider un copain, je lui ai travaillé son fichier Excel de suivi des clients. Moi j'ai la version 2010, lui la 2007.
Dans son fichier, j'ai ajouté deux codes qui envoient des mails à deux occasions différentes. J'ai aussi ajouté une macro de tri selon les données de certaines cellules.
Problème constaté : chez moi, tout va bien. Ouvre, ferme, modifie, ajoute des données, envoie les courriels, hop ! ça gaze.
Chez lui : le fichier à fonctionné 2 jours. Le 3ème, fichier corrompu. J'ai renvoyé le fichier original, avec un autre nom. Ça marche deux jours, et maintenant ça ne marche plus du tout, il a "ERROR 400" chaque fois qu'il lance la macro pour envoyer un mail. J'ai envoyé un troisième fichier, il bug dès la première utilisation (et ne cherche même plus à fonctionner au moins une journée).
C'est son Excel ou c'est mon fichier qui a la jaunisse chez lui ?
Voici le code utilisé pour les mails (ils sont exactement pareils, il n'y a que l'objet et le texte qui changent - Le second s'appelle RenouvellementTest()) :
Et voici le code de tri :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 Sub AnniversaireTest() ' Working in Office 2000-2013 Dim OutApp As Object Dim OutMail As Object Dim strbody As String Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(0) strbody = "Bonjour," & _ "<br><br>Texte de bon anniversaire !<br>" & _ "<br>Blablalbalbalba" & _ "<br><br>Avec mes meilleures salutations." On Error Resume Next With OutMail .Display .To = Cells(ActiveCell.Row, 26) '.CC = "" '.BCC = "" .Subject = "Une journée spéciale" .HTMLBody = "<HTML><BODY>" & strbody & "</BODY></HTML>" & "<br>" & .HTMLBody .Display End With On Error GoTo 0 Set OutMail = Nothing Set OutApp = Nothing End Sub
avec dans la Feuil1, l'appel des macros de tris sur changement de valeur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 Sub Tri_OrangeTest() ' ' Affiche les lignes de couleur orange dans le haut du tableau ' ' ActiveWorkbook.Worksheets("Feuil1").AutoFilter.Sort.SortFields.Clear ActiveWorkbook.Worksheets("Feuil1").AutoFilter.Sort.SortFields.Add(Range( _ "V7:V750"), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color _ = RGB(255, 153, 51) ActiveWorkbook.Worksheets("Feuil1").AutoFilter.Sort.SortFields.Add Key:=Range _ ("V7:V750"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal With ActiveWorkbook.Worksheets("Feuil1").AutoFilter.Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub Sub Tri_BleuTest() ' ' Affiche les lignes bleues dans le haut du tableau ' ' ActiveWorkbook.Worksheets("Feuil1").AutoFilter.Sort.SortFields.Clear ActiveWorkbook.Worksheets("Feuil1").AutoFilter.Sort.SortFields.Add(Range( _ "F7:F750"), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color _ = RGB(149, 179, 215) ActiveWorkbook.Worksheets("Feuil1").AutoFilter.Sort.SortFields.Add Key:=Range _ ("F7:F750"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal With ActiveWorkbook.Worksheets("Feuil1").AutoFilter.Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub
Je précise que je ne suis pas programmeuse (ça doit se voir du reste !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Private Sub Worksheet_Change(ByVal Target As Range) If Not Application.Intersect(Target, Range("B1")) Is Nothing Then Tri_OrangeTest End If If Not Application.Intersect(Target, Range("B2")) Is Nothing Then Tri_BleuTest End If End Sub) : je bidouille des codes glanés à droite et à gauche et je demande de l'aide sur ce forum quand ça coince. Par contre, j'aime comprendre ce que je fais alors si j'ai bidouillé un monstre, j'aimerais le savoir.
Je joins un fichier test, si des fois...
Merci !
Partager