Bonjour
Novice sur VBA, je me prends à me passionner pour ce monde plein de potentiel, et ce sujet est mon premier que je poste moi-même (habituellement je trouve toutes mes solutions sur la toile, grâce aux forums comme ici, et merci à vous tous au passage).

Contexte:
Je travaille sur Microsoft 365.
Je souhaite mettre en place au moins 2 dispositifs dont le deuxième me paraît le plus dur (et important):

1/ Un mail automatiquement généré destiné à une liste d'adresses avec inclusion d'un bouton de vote ("Valider"/"Refuser" par ex).
Cette liste d'adresses serait référencée dans un classeur Excel et je pensais notamment à du publipostage, mais ne pouvant pas inclure un bouton de vote automatiquement avec le publipostage, je réfléchis à une macro.
J'ai une grossière macro pour la génération de ce mail :

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
Sub envoie_mail()
Dim olApp As Outlook.Application
Dim OLspace As Outlook.Namespace
Dim OLinbox As Outlook.MAPIFolder
Dim OLfolder As Outlook.MAPIFolder
Dim OLmail As Outlook.MailItem
Dim OLpj As Outlook.Attachment
Dim Msg As MailItem
Set objOL = New Outlook.Application
Set Msg = objOL.CreateItem(olMailItem)
Msg.To = Email
Msg.Subject = Range("Mail_subject")
Msg.Body = "Hello," & vbNewLine & vbNewLine & _
"Please be informed that Blablabla" & vbNewLine & vbNewLine & _
'Msg.Attachments.Add Source:=nom_doc
Msg.VotingOptions = "Valider;refuser"
Msg.To = Email
Msg.Display
Set objOL = Nothing
End Sub
2/ Je souhaite faire une exportation automatique sur Excel des résultats de vote par mail évoqué ci-avant, et les voir s'afficher et compilés tout propres sur une feuille de calcul, (dans le but de faire des relances automatiques dans un 3ème temps pour ceux qui n'ont pas voté...).

J'ai donc cette macro, qui me sort une "Erreur d'exécution '13' : incompatibilité de type" en me surlignant le "Next" en jaune...

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
47
48
49
50
51
52
53
54
55
56
57
58
59
Sub chMail()
Set olApp = CreateObject("Outlook.application")
Set OLspace = olApp.GetNamespace("MAPI")
Set OLinbox = OLspace.GetDefaultFolder(olFolderInbox)
Dim OLmail As Outlook.MailItem
For Each OLmail In OLinbox.Items
    If OLmail.Subject = "Valider: " Then
    Dim OLbody As String
    OLbody = OLmail.SenderName
    olresponse = OLmail.VotingResponse
    oltime = OLmail.CreationTime
    olrecus = OLmail.ReceivedTime
    olreceipt = OLmail.ReadReceiptRequested
    Sheets(1).Range("A" & i).Select
    With Selection
    .Value = OLbody
    End With
    Sheets(1).Range("B" & i).Select
    With Selection
    .Value = olresponse
    End With
    Sheets(1).Range("C" & i).Select
    With Selection
    .Value = oltime
    End With
    Sheets(1).Range("D" & i).Select
    With Selection
    .Value = olrecus
    End With
    Sheets(1).Range("E" & i).Select
    With Selection
    .Value = olreceipt
    End With
    ElseIf OLmail.Subject = "Refuser: " Then
    OLbody = OLmail.SenderName
    olresponse = OLmail.VotingResponse
    oltime = OLmail.CreationTime
    olrecus = OLmail.ReceivedTime
    Sheets(1).Range("A" & i).Select
    With Selection
    .Value = OLbody
    End With
    Sheets(1).Range("B" & i).Select
    With Selection
    .Value = olresponse
    End With
    Sheets(1).Range("C" & i).Select
    With Selection
    .Value = oltime
    End With
    Sheets(1).Range("D" & i).Select
    With Selection
    .Value = olrecus
    End With
    Sheets(1).Range("E" & i).Select
    End If
    i = i + 1
Next
End Sub
(Dans un dernier temps, je ne suis pas contre des idées pour organiser les relances de mails si pas de réponses après x jours)

Je précise que je ne comprends évidemment pas tout tout tout des subtilités des lignes de code que je vous écris ici.
Je suis à l'écoute de toute piste intéressante

Merci par avance