Erreur 91:
Fermé
RichardKas
-
19 août 2019 à 13:59
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 - 19 août 2019 à 17:26
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 - 19 août 2019 à 17:26
1 réponse
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
19 août 2019 à 14:54
19 août 2019 à 14:54
Bonjour Richard, bonjour le forum,
Quand on a un message d'erreur il est bon de préciser sur quelle ligne il apparaît. Ça nous permet de mieux situer et comprendre l'erreur...
La variable lign_select n'est pas déclarée mais cela n'engendre pas de bug, c'est juste une remarque.
Je pense que le problème vient du point devant cells dans car = .cells(lign_select, C - 13) car on ne sait pas ce qu'est xOutMail
ou bien la variable c a une valeur inférieure ou égale à 13 et c'est c - 13 qui provoque l'erreur...
Quand on a un message d'erreur il est bon de préciser sur quelle ligne il apparaît. Ça nous permet de mieux situer et comprendre l'erreur...
La variable lign_select n'est pas déclarée mais cela n'engendre pas de bug, c'est juste une remarque.
Je pense que le problème vient du point devant cells dans car = .cells(lign_select, C - 13) car on ne sait pas ce qu'est xOutMail
ou bien la variable c a une valeur inférieure ou égale à 13 et c'est c - 13 qui provoque l'erreur...
19 août 2019 à 15:53
le code permet de générer un mail à partir d'un modèle de mail prédéfini. J'ai tout tenté mais je ne parviens pas à résoudre le pb.
Voici le code en entier:
Sub Creationmail()
Dim obj As String
Dim xMailBody As String
Dim c As Long
Dim sender As Long
Dim otlAppnewnew As Object
Dim otlNewMailnewnewnewnew As Object
c = ActiveCell.Column
lign_selec = ActiveCell.Row
If cells(1, c).Value <> "Subject of correspondance" Then
MsgBox ("Veuillez selectionner la cellule contenant le référence complète")
With otlAppnewnew
==> sender = .cells(lign_selec, c - 13).Value
End With
Else
On Error Resume Next
Set otlAppnewnew = CreateObject("Outlook.Application")
If sender = "Civil Works" Then
Set otlNewMailnewnewnewnew = otlAppnewnew.CreateItemFromTemplate("\\atlas.edf.fr\CO\dpit-cit\200-Ligne-International.200\001-Commun.001\AZITO IV\10.0 LNTP NTP\2_LEVEL 2 Communications\4_Modèle de mails\ Communication between OEP_COE_Civil works.oft")
If sender = "Mechanical Works" Then
Set otlNewMailnewnewnewnew = otlAppnewnew.CreateItemFromTemplate("\\atlas.edf.fr\CO\dpit-cit\200-Ligne-International.200\001-Commun.001\AZITO IV\10.0 LNTP NTP\2_LEVEL 2 Communications\4_Modèle de mails\ Communication between OEP_COE_Mechanical works.oft")
If sender = "Electrical Works" Then
Set otlNewMailnewnewnewnew = otlAppnewnew.CreateItemFromTemplate("\\atlas.edf.fr\CO\dpit-cit\200-Ligne-International.200\001-Commun.001\AZITO IV\10.0 LNTP NTP\2_LEVEL 2 Communications\4_Modèle de mails\ Communication between OEP_COE_Electrical works.oft")
If sender = "Engineering Multidiscipline Works" Then
Set otlNewMailnewnewnewnew = otlAppnewnew.CreateItemFromTemplate("\\atlas.edf.fr\CO\dpit-cit\200-Ligne-International.200\001-Commun.001\AZITO IV\10.0 LNTP NTP\2_LEVEL 2 Communications\4_Modèle de mails\ Communication between OEP_COE_Engineering Multidiscilpline works.oft")
End If
End If
'xMailBody = "Body content" & vbNewLine & vbNewLine & _
"This is line 1" & vbNewLine & _
"This is line 2"
On Error Resume Next
obj = "AZ-OEP-COE-" & ActiveSheet.cells(lign_selec, c - 1).Value
With otlNewMailnewnewnewnew
.Bcc = vEmailsFromSpreadsheet '(set earlier on)
.Display
.Subject = obj
' .Body = xMailBody
.Display 'or use .Send
End With
End If
'otlAppnewnew.Quit
Set otlNewMailnewnewnewnew = Nothing
Set otlAppnewnew = Nothing
Set otlAttach = Nothing
Set otlMess = Nothing
Set otlNSpace = Nothing
End Sub
19 août 2019 à 17:26
Plusieurs erreurs dans ton code. Comme je t'avais dit dans mon premier post, le point devant Cells dans
n'était acceptable que si la variable otlAppnewnew était on objet Worksheet et ce n'est pas le cas. Donc supprime le point.
Ensuite tu utilises With otlAppnewnew avant d'avoir défini cette variable ! Ça plante forcément. J'ai déplacé la ligne :
au dessus du With...
J'ai repéré pas mal de If sans End If. Soit Le If... Then se trouvent sur la même ligne. Soit i faut utiliser des If...ElseIf...ElseIf...End If, soit un Select Case.
Tu as deux fois On Error Resume Next sans aucune gestion des erreurs!?... Ne t'étonne pas si le résultat est incongru.
Le code corrigé :