Erreur de compilation: Type défini par l'utilisateur non défini

leoriviera

XLDnaute Nouveau
Bonjour,

Quand je lance ma macro pour envoyer un mail si le projet arrive à échéance, la macro ne marche pas et j'ai l'erreur suivante :
Erreur de compilation: Type défini par l'utilisateur non défini

Autre question est-il possible d'envoyé le mail automatiquement sans appuyer sur le bouton de commande ?

Merci

Sub Email()

Dim outlookDossier As Outlook.MAPIFolder
Dim outlookMessage As Outlook.MailItem
Dim VAdresse As String
Dim VObjet As String
Dim VMessage As String
Dim VCellule As Object
Dim Lig As Long
Dim DateRef

DateRef = DateAdd("d", 5, Date) ' date du jour +5jours

Lig = 2
Do While Cells(Lig, 1).Value <> ""
If Cells(Lig, 6).Value = "" Then
VMessage = ""
ProjetEnCours = Cells(Lig, 4).Value
VAdresse = Cells(Lig, 6).Value ' adresse du pilote
While ProjetEnCours = Cells(Lig, 4).Value ' On traite les lignes du projet
If Cells(Lig, 10).Value < DateRef Then ' date < date de référence
Cells(Lig, 7).Value = "Envoyé"
VMessage = VMessage & " La tâche :" & Cells(Lig, 4).Value _
& " à échéance prévue le " & Format(Cells(Lig, 10).Value, "DD/MM/YYYY") _
& " arrive à son terme. " & vbCrLf
End If
Lig = Lig + 1
Wend
If VMessage <> "" Then 'envoyer message si existe
VMessage = "Cher monsieur, madame," & vbCrLf & vbCrLf & VMessage
VMessage = VMessage & vbCrLf & "Cordialement"
VObjet = "Echeance projet " 'description

Set outlookDossier = GetObject("", "Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
Set outlookMessage = outlookDossier.Items.Add
With outlookMessage
.Subject = VObjet
.Recipients.Add VAdresse
.Body = VMessage
.OriginatorDeliveryReportRequested = True
.ReadReceiptRequested = True
.Send
End With
End If

Else
Lig = Lig + 1
End If
Loop

Set outlookMessage = Nothing
Set outlookDossier = Nothing

End Sub
 

Softmama

XLDnaute Accro
Re : Erreur de compilation: Type défini par l'utilisateur non défini

Bonjour,

Je pense que la bibliothèque complémentaire n'est simplement pas chargée. Vérifie (Dans l'éditeur VBE, menu Outils, Références) que la référence "Microsoft Outlook xx.x Object Library" (xx.x est le numéro de version qui peut changer) est bien cochée.
 

Softmama

XLDnaute Accro
Re : Erreur de compilation: Type défini par l'utilisateur non défini

Bien sur, c'est possible. Seulement, il t'appartient de préciser à quel moment ou selon quels critères tu souhaites que l'envoi s'effectue ? C'est un élément que l'on ne peut deviner pour toi.
 

Softmama

XLDnaute Accro
Re : Erreur de compilation: Type défini par l'utilisateur non défini

5 jours avant la fin du projet, c'est merveilleux... Mais comment on la connait au juste ? Y a une cellule quelque part ou c'est noté, ou alors autre chose ?
 

leoriviera

XLDnaute Nouveau
Re : Erreur de compilation: Type défini par l'utilisateur non défini

dans chaque ligne de projet (colonne D) il y a une cellule qui stipule la date de fin du projet (colonne J).

Mais tout est décrit dans la macro... sauf qu'aujourd'hui je passe par un bouton activX pour langer la macro, et je préférais sans cliquer sur le bouton, un lancement automatique de la macro dès que le fichier s'ouvre...
 

Staple1600

XLDnaute Barbatruc
Re : Erreur de compilation: Type défini par l'utilisateur non défini

Bonjour

Vi

Lances cette macro
Code:
Sub UNE_IDEE_EN_PASSANT()
Dim a, i&
a = Array(86, 111, 105, 108, 97, 32, 108, 39, 105, 100, 233, 101, 58, 32, 87, 111, 114, 107, 66, 111, 111, 107, 95, 79, 112, 101, 110)
For i = 0 To UBound(a)
idee = idee & Chr(a(i))
Next
MsgBox idee, vbInformation, "EUREKA"
End Sub
 

YANN-56

XLDnaute Barbatruc
Re : Erreur de compilation: Type défini par l'utilisateur non défini

Bonsoir leoriviera, et à ceux qui passeront par ici,

De mon coté, j'ai toujours considéré que Outlook fichait le désordre partout. :mad:
Je me refuse donc de l'installer et procède autrement.

Mon exemple joint date de plus de deux ans, et je ne sais plus où j'en étais!
Il y manque certainement moult compléments, et simplification du code.

Tente-le en mettant dans la Feuille "ADRESSES" ta propre adresse Mail.
(Attention à la référence VBA: "Microsoft CDO for windows 2000 library" )

Quant à l'automatisation, cela ne sera certainement pas compliqué par la suite.

Tu me dis, et à quand tu le pourras et voudras.

Amicalement

Yann

Pardon! J'ai oublié de dire mon "Bonsoir" aux autres participants :(
 
Dernière édition:

YANN-56

XLDnaute Barbatruc
Re : Erreur de compilation: Type défini par l'utilisateur non défini

Re, Je retourne le Classeur modifié, (Modif. expliquée ci-dessus)

J'utilise la Propriété Simple "Auteur" du Classeur pour garder en mémoire la propre adresse Mail
de l'utilisateur. Ce qui permet de ne pas avoir à venir bidouiller dans le code en cas de changement.

Donc si tu veux tester: Il faudra que tu y mettes la tienne.

Amicalement, et à plus si cela te tente.

Yann
 

Pièces jointes

  • MAILS.xls
    58.5 KB · Affichages: 173
  • MAILS.xls
    58.5 KB · Affichages: 168
  • MAILS.xls
    58.5 KB · Affichages: 169

leoriviera

XLDnaute Nouveau
Re : Erreur de compilation: Type défini par l'utilisateur non défini

alors suite aux divers informations que je vous remercie énormément, j'ai finté la chose pour ouvrir automatiquement le fichier en passant par un fichier raccourci du fichier dans Démarrer/Programme/Démarrage ;)

Question : dans ma macro c'est vérifier ligne par ligne si la date ne dépasse pas la fin de projet et si oui envoie le mail au pilote du projet. Par contre si j'ai 2 pilotes est-il possible de mettre dans la cellule 2 adresses mail ? j'ai testé et j'ai échoué... une idée ?
 

leoriviera

XLDnaute Nouveau
Re : Erreur de compilation: Type défini par l'utilisateur non défini

Bonjour,

Est-il possible de me dire quel macro ou quelle info faut-il mettre dans un code vba pour faire référence dans un mail envoyé (via une macro) d'un lien hypertexte faisant référence a des documents sur le réseau de l'ordinateur
 

Discussions similaires

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 104
dernier inscrit
JEMADA