1 pièce(s) jointe(s)
VBA - ERROR 400 chez un autre mais pas chez moi
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). :aie:
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()) :
Code:
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 |
Et voici le code de tri :
Code:
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 |
avec dans la Feuil1, l'appel des macros de tris sur changement de valeur :
Code:
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 précise que je ne suis pas programmeuse (ça doit se voir du reste ! :mouarf:) : 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 !