Changer de version pour Macro
Bonjour à tous, Bonjour le Forum,
Grâce à vous j'ai finalisé un dossier qui fonctionne parfaitement bien sur mon ordinateur personnel.
Ce dossier permet d’envoyer depuis mon tableau Excel, un mail aux personnes concernées, 3 mois avant l’échéance d’un prêt.
Maintenant je souhaiterais le transférer sur mon ordinateur professionnel.
Pas très compliqué me direz-vous et c'est chose faite.
Seulement cette macro a été créée sous Windows 7, Excel 2010, Outlook 2007.
Mon ordinateur professionnel est sous Windows XP, Excel 2003, Outlook 2003 et nous utilisons Microsoft Exchange Server ainsi qu’un VPN.
Tout cela me complique énormément la correction des codes et j’ai beau chercher, je ne trouve pas de solutions.
Auriez-vous l’a gentillesse de m’éclaircir ?
Il était écrit sur mon ordi perso :
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
| Private Sub Workbook_Open()
Dim ol As New Outlook.Application
Dim olmail As MailItem, plage As Range
Dim admail As String, cel As Range, j As Long, derlg As Long
Dim messmail As String, secours As String, mess As String
With Sheets("feuil1")
derlg = .Range("A" & .Rows.Count).End(xlUp).Row
Set plage = .Range("D2:D" & derlg)
For Each cel In plage
If cel.Offset(0, 2) = "Vrai" Then
mess = MsgBox("la " & .Range("E1").Value & " est au : " & cel.Offset(0, 1).Value & Chr(10) & Chr(10) _
& "Voulez-vous envoyer la relance?", vbOKCancel)
If mess = 1 Then
admail = InputBox("destinataire", , cel.Offset(0, 3).Value)
On Error Resume Next
Shell """C:\Program Files\Microsoft Office\Office12\OUTLOOK.EXE"""
Set ol = New Outlook.Application
Set olmail = ol.CreateItem(olMailItem)
messmail = "XXX," & Chr(10) & Chr(10) & "XXXXXXX " & cel.Offset(0, -1).Value & Chr(9) & cel.Offset(0, -2).Value & ", XXXXXXX " & cel.Offset(0, 1).Value _
& "." & Chr(10) & Chr(10) & "XXXXXXXX" & Chr(10) & Chr(10) & "XXXXXXXXX," _
& Chr(10) & Chr(10) & Chr(10) & "Lucy"
With olmail
.To = admail
.Subject = "Info. Return loan order"
.Body = messmail
.Send
End With
On Error GoTo 0
End If
Else
End If
Next cel
End With
End Sub |
Sur mon ordinateur professionnel j'ai changé :
Code:
If cel.Offset(0, 2) = "Vrai" Then
par
Code:
If cel.Offset(0, 2) = "True" Then
Car mon tableau Excel se met automatiquement en anglais puisque c'est une formule!
Ainsi que :
Code:
Shell """C:\Program Files\Microsoft Office\Office12\OUTLOOK.EXE"""
par
Code:
Shell """C:\Program Files\Microsoft Office\Office11\OUTLOOK.EXE"""
J'espère que vous comprenez ce que je souhaite faire.
je pense que les codes a changer se trouvent ici :
Code:
1 2 3 4 5 6 7 8 9 10 11
| Private Sub Workbook_Open()
Dim ol As New Outlook.Application
Dim olmail As MailItem, plage As Range
Dim admail As String, cel As Range, j As Long, derlg As Long
Dim messmail As String, secours As String, mess As String
With Sheets("feuil1")
derlg = .Range("A" & .Rows.Count).End(xlUp).Row
Set plage = .Range("D2:D" & derlg)
For Each cel In plage
If cel.Offset(0, 2) = "Vrai" Then
mess = MsgBox |
Faut-il utiser "MAPIFolder ou autre chose.
Comment passer par Microsoft Exchange Server?
Je vous remercie de votre attention et vous souhaite une très bonne soirée.
Cordialement,
Changer de version pour Macro
Bonjour Alain, Bonjour le Forum,
Merci pour ta réponse concernant cette programmation.
Je me suis certainement mal exprimée lors de ma demande précédente aussi je vais essayer d’être plus explicite et peut être de repartir à zéro.
Je reviens vers vous au plus vite car j'ai un problème sur mon Tableau Excel et la fonction MOIS.DECALER en anglais que je cherche à résoudre.
Cordialement,
1 pièce(s) jointe(s)
Changer de version pour Macro
Bonsoir Le Forum, Bonsoir Alain,
J’ai modifié mon tableau Excel sur mon ordinateur Professionnel qui est sous Windows XP et Microsoft Office Pro 2003.
J’ai modifié ce qu’Alain m’avait dit lors de son précèdent message, c'est à dire :
Code:
If cel.Offset(0, 2) Then
Je pensais que mon Shell d'Outlook
Code:
Shell """C:\Program Files\Microsoft Office\Office11\OUTLOOK.EXE""" / M
me permettait d'appeler Microsoft Outlook pour envoyer les mails. Je l'ai retiré et cela ne change rien.
Par contre j'ai modifié les deux premières lignes de la formule :
Code:
1 2
| Dim ol As New Outlook.Application
Dim olmail As MailItem, plage As Range |
et
Code:
Set ol = New Outlook.Application
par:
Code:
1 2
| Dim MonOutlook As Object
Dim MonMessage As Object |
et
Code:
Set ol = MonOutlook = CreateObject(outlook.Application)
Donc lorsque je lance le dossier tout semble fonctionner :
Sur mon tableau Excel une petite fenêtre m'informe que la date d’échéance arrive et me demande si je veux envoyer une relance. Je clique sur OK et une autre fenêtre m'indique la boite mail du destinataire que je dois informer. Je clique sur OK et là plus rien.
C'est à dire que le mail ne part pas (même si Outlook est ouvert avec Cisco AnnyConnect VPN Client) et donc mon destinataire ne reçoit rien.
Effectivement sur mon ordinateur Pro je passe par un VPN pour envoyer mes mail.
Je travaille à la maison et ce même ordinateur est relié à mon Fournisseur d'accès qui est Numéricâble.
Cette première macro fonctionnait parfaitement bien avec mon ordinateur personnel (Windows7, Microsoft Outlook 2007, excel 2010) seulement je ne peux pas envoyer ces relances avec mon adresse mail perso.
Je pense que je n'appelle pas Microsoft Outlook correctement puisque je passe par VPN!
Merci beaucoup pour votre aide, je joins mon fichier à ce message.
Je vous souhaite une très bonne soirée.,
Cordialement,
Changer de version pour Macro
Bonsoir,
Merci pour votre réponse, j'ai supprimé:
Code:
On Error Resume Next
Excel me demande si je veux envoyer ma première relance, je clique sur OK et j’obtiens Run-time error '13' Type mismatch. si je comprends bien cette erreur correspond à une incompatibilité de type, mais je vois vraiment pas où ni quel type!
Je vais chercher plus loin et tenter de l’éloigner.
Si vous avez une idée, je vous serais reconnaissante de bien vouloir m’éclairer. Mais il se fait tard et je vais éteindre mes écrans.
Merci et très bonne soirée,
Changer de version pour Macro
Bonjour à tous,
Que j'écrive :
Code:
Set ol = CreateObject(outlook.Application)
ou
Code:
Set MonOutlook = CreateObject(outlook.Application)
J'ai l'erreur 424 et le curseur jaune se place face à ces codes.
Je ne comprends pas pourquoi je dois supprimer :
Code:
"""C:\Program Files\Microsoft Office\Office11\OUTLOOK.EXE"""
.
Je relis calmement et regarde comment procéder sur plusieurs dossiers en ajoutant et supprimant point par point tout ce que vous m'avez dit.
Cordialement,
Marie
Changer de version pour Macro
Bonjour à tous,
Que je mette
Code:
1 2 3 4 5
| Set MonOutlook = CreateObject(outlook.Application)
'ou
Set ol = CreateObject(outlook.Application
ou
Set ol = MonOutlook = CreateObject(outlook.Application) |
Je bloque et n'arrive pas à déboguer...Le curseur jaune est toujours face à ces lignes!
Le fait d'ajouter
Code:
Shell """C:\Program Files\Microsoft Office\Office11\outlook.exe"""
Appelle ma boite Microsoft Outlook, ce qui me semble normale pour envoyer un mail lorsque la colonne F est vraie.
Je souhaiterais que vous puissiez m'aider car je ne vois plus comment faire!
Merci à vous tous.
Cordialement,
Marie
Changer de version pour Macro
Bonsoir le forum,
Déjà, j'ai mis des guillemets aux différents codes proposés par Theze
Code:
Set MonOutlook = CreateObject("outlook.Application")
, j'aurais du faire attention.
Ceci m'envoie à la ligne suivante :
Code:
Set olmail = ol.CreateItem(olMailItem)
Il y a réellement une incompatibilité que je vais continuer à chercher...
Bon Week End,
Changer de version pour Macro
Re,
Merci, je regarde sous Windows XP et mettrai la réponse sur le Forum.
Sinon pour le reste pas de problème tout fonctionne!
J'ai rajouté des Cc. et Cci.
Et j'ai changé ma signature perso par la pro qui contient un certain nombre d'informations.
Tout va bien, encore merci
Cordialement,
Marie