VBA Erreur 1004

C@thy

XLDnaute Barbatruc
Re bonjour le forum,

j'ai bien des soucis avec ce fichier :
1- j'ai une macro (fabexpedie) qui me produit une erreur 1004 et/ou 400 et je ne sais pas pourquoi
2- je n'arrive pas à associer cette macro à mon bouton et là non plus j'sais pas pourkoi :confused: :confused: :confused:

Avez-vous une petite idée de ce qui cloche???
(c'est encore l'interface clavier/fauteuil !!!)

Merci pour votre aide.

C@thy
 

Pièces jointes

  • inscript.zip
    19.9 KB · Affichages: 74

C@thy

XLDnaute Barbatruc
Re : VBA Erreur 1004

Je lance un appel solennel (c'est pour la rime) à tous les VBistes chevronnés et patentés (c'est pour la rime aussi),
existe-t-il un autre code possible pour que ça ne plante pas en 2003 et 2007???
Si quelqu'un peut m'aider à trouver une solution...

Merci à vous

C@thy
 

job75

XLDnaute Barbatruc
Re : VBA Erreur 1004

Re C@thy,

Une solution serait de ne laisser dans l'adresse du lien hypertexte qu'un bref message, et de mettre le reste dans une pièce jointe.

Mais a priori la propriété Follow ne sait pas joindre une pièce il me semble.

Alors peut-être tout refaire avec une macro SelectionChange...

A+
 

job75

XLDnaute Barbatruc
Re : VBA Erreur 1004

Re,

L'aide VBA sur Follow dit bien qu'il peut y avoir cet argument :

ExtraInfo Argument de type Variant facultatif. Tableau de valeurs de type String ou d'octets qui fournit des informations supplémentaires pour permettre à HTTP de résoudre le lien hypertexte. Par exemple, vous pouvez utiliser ExtraInfo pour indiquer les coordonnées d'une carte, le contenu d'un formulaire, ou un nom de fichier FAT.

A voir, perso je n'ai pas encore essayé.

A+
 

pierrejean

XLDnaute Barbatruc
Re : VBA Erreur 1004

Re

un gag avec extrainfo

Mon vieux 2000 fonctionne bien avec mais en tronquant le string
Peut-etre a tester avec une version ulterieure

Edit : comme quoi Excel peut tout faire :
Raccourcir un String , il faut le faire LOL
 

Pièces jointes

  • Moulinette inscription.zip
    22.5 KB · Affichages: 29
  • Moulinette inscription.zip
    22.5 KB · Affichages: 28
  • Moulinette inscription.zip
    22.5 KB · Affichages: 28

C@thy

XLDnaute Barbatruc
Re : VBA Erreur 1004

Merci pierrejean, je vois que, comme d'habitude, tu ne lâches pas le morceau.

je bloque sur
Selection.Hyperlinks(1).Follow NewWindow:=True, AddHistory:=True, extrainfo:=Var, Method:=msoMethodGet
(une "erreur inattendue" à ce qu'il paraît... comme si on attendait des erreurs! Pffff!)
il faut cocher quelquechose???

Moi j'ai réussi à faire un truc, mais je ne sais pas aller à la ligne...
voici l'état de mes errances en ce moment :
Sub fabexpedie()
Dim Var As String, Var1 As String, Var2 As String, HyperLien As String
' je commence par copier coller les bonnes valeurs depuis "APPR_INSCR_CG" dans "Mailing
' Je nettoie d'abord cet onglet
Sheets("Mailing").Rows("2:9216").ClearContents
' je fais une boucle tant qu'il y a des nouveaux inscrits dans "APPR..."
i = 2
While (Sheets("APPR_INSCR_CG").Cells(i, 2) <> "")
Sheets("Mailing").Cells(i, 2) = Sheets("APPR_INSCR_CG").Cells(i, 14)
Sheets("Mailing").Cells(i, 3) = Sheets("APPR_INSCR_CG").Cells(i, 1)
Sheets("Mailing").Cells(i, 4) = "igpde"

i = i + 1
Wend
Sheets("Mailing").Select
i = 2
While (Cells(i, 2) <> "")
'Var = "mailto:" & Cells(i, 2) & "?subject=Inscription au parcours de 'e-formation' au Contrôle de Gestion"
'Var = Var & "&body=Bonjour,%0A%0A"
Var1 = "mailto:" & Cells(i, 2)
Var2 = "Inscription au parcours de 'e-formation' au Contrôle de Gestion"

Var = "Comme Mme Marie-Ange R.... vous l'a précisé, l'IGPDE s'organise, en prévision de l'éventuelle pandémie de grippe, pour assurer la continuité des formations, et, en ce qui vous concerne, pour vous permettre de vous présenter, dans les meilleures conditions, à l'épreuve orale d'admission de PAU. "
Var = Var & "En cas d'annulation de votre stage en présentiel, votre formation sera accessible via la plate-forme de e-formation de l'IGPDE. "
Var = Var & "Je vous communique donc les informations vous permettant de vous connecter. "
Var = Var & "Il convient de cliquer sur le lien suivant (ou de le recopier dans votre navigateur) :"
Var = Var & "Ce lien n'existe plus "
Var = Var & "Votre identifiant est : " & Cells(i, 3) & " "
Var = Var & "Votre mot de passe est : " & Cells(i, 4) & " . "

Var = Var + "Pour suivre cette formation, vous devez avoir accès à Internet, "
Var = Var + "et votre navigateur doit accepter l'ouverture des fenêtres (en Anglais 'popup'). "
Var = Var + "Enfin, votre poste doit être équipé d'un lecteur Flash (en Anglais 'FlashPlayer'). "

Var = Var & "Conservez ce courriel dans une archive personnelle. "
Var = Var & "Je vous informerai de l'ouverture du site "

Var = Var & "Je suis à votre disposition pour tout renseignement complémentaire. "
Var = Var & "Bien cordialement. "

Var = Var + "Nadine V........... Responsable de Form@tic 01 .. .. .. .. n......v...........@finances.gouv.fr"

Cells(i, 1).Select
ActiveCell = "envoi"
EnvoiMail Var1, Var2, Var
'***
HyperLien = Var1 & "?"
HyperLien = HyperLien & "Subject=" & Var2
HyperLien = HyperLien & "&Body=" & Var

'ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=Var1, Subject:=Var2 'Address:=Var '

'***
'Selection.Hyperlinks(1).Follow NewWindow:=True, AddHistory:=True
ActiveWorkbook.FollowHyperlink HyperLien ', NewWindow:=True, AddHistory:=True
MsgBox ("Suivant ?")
i = i + 1
Wend
End Sub

J'ai coché Microsoft Oulook11.Object Library (sais pas si c'est utile ou non, mais à tout hasard...

Bises

C@thy
 

job75

XLDnaute Barbatruc
Re : VBA Erreur 1004

Re, salut pierrejean,

J'avais essayé, comme tu le fais pierrejean, avex ExtraInfo:=Var mais ça n'a pas marché.

Mais Cathy, pourquoi vouloir à tout prix créer un lien hypertexte ? Je ne vois pas l'intérêt si tu utilises un bouton...

Avec une macro déclanchée par le bouton ou un double-clic, on peut envoyer un mail de diverses manières. J'ai par exemple trouvé ce fil (pour Outlook) :

https://www.excel-downloads.com/threads/excel-envoi-mail.27410/

Désolé mais je dois m'absenter 2 heures.

A+
 

Ashaar

XLDnaute Junior
Re : VBA Erreur 1004

Bonjour,

Pour m'amuser, j'ai essayé de re-coder ce mail en HTML (dans une macro VBE) pour un envoi via CDO. Ca passe bien.

Ca pourrait être une bonne alternative. Avec l'avantage d'envoyer le mail directement sans passer par l'interface de la messagerie.
 

C@thy

XLDnaute Barbatruc
Re : VBA Erreur 1004

Merci à toi, job75,
j'ai essayé ça aussi, car je l'ai trouvé en faisant une recherche sur le site, mais pas moyen de faire mes retours à la ligne, les %0A s'affichent dans le corps du message au lieu des retours à la ligne.
Arf!!! Grrrr...

C@thy
 

Ashaar

XLDnaute Junior
Re : VBA Erreur 1004

ci-dessous le code : (je ne sais pas envoyer de PJ)

Je l'ai sommairement adapté à ton sujet

Il y a au préalable des références à activer :
- Visual Basic For Applications
'- OLE Automation
'- Microsoft CDO For Exchange 2000 Library
'- Microsoft ActiveX Data Objects 2.5 Library

Le code :

Sub fabexpedie_2()
'*********************************************************************************************
'S 'assurer de la présence préalable des Références nécessaires à la bonne exécution du code :
'- Visual Basic For Applications
'- OLE Automation
'- Microsoft CDO For Exchange 2000 Library
'- Microsoft ActiveX Data Objects 2.5 Library
'*********************************************************************************************

Dim strDe As String
Dim TDest As Variant
Dim strSujet As String
Dim strHTML As String
Dim strAdrFic As String
Dim FlgFic As Boolean
Dim MessageErreur As String
Dim bErreur As Boolean
Dim AdrFichier As String, NomFichier As String
Dim Sujet As String, Msg As String
Dim T As Variant, CmdLine As String

bErreur = False

' Code de C@thy
Dim var As Variant
' je commence par copier coller les bonnes valuers depuis "APPR_INSCR_CG" dans "Mailing

' Je nettoie d'abord cet onglet
Sheets("Mailing").Rows("2:9216").ClearContents
' je fais une boucle tant qu'il y a des niouveaux inscrits dans "APPR..."
i = 2
While (Sheets("APPR_INSCR_CG").Cells(i, 2) <> "")
Sheets("Mailing").Cells(i, 2) = Sheets("APPR_INSCR_CG").Cells(i, 14)
Sheets("Mailing").Cells(i, 3) = Sheets("APPR_INSCR_CG").Cells(i, 1)
Sheets("Mailing").Cells(i, 4) = "igpde"

i = i + 1
Wend
Sheets("Mailing").Select
i = 2
While (Cells(i, 2) <> "")


'Informations requises pour l'envoi du Mail
'******************************************

'Spécifier l'Emetteur du maily
strDe = "Emetteur@emetteur.fr"

'Spécifier l'Objet du mail
strSujet = "Inscription au parcours de 'e-formation' au Contrôle de Gestion"

'Spécifier le Corps du mail en HTML
strHTML = "<HTML>"
strHTML = strHTML & "<HEAD>"
strHTML = strHTML & "<BODY>"
strHTML = strHTML & "Bonjour,</b></br></b></br>"
strHTML = strHTML & "Comme Mme Marie-Ange R vous l'a précisé, l'IGPDE s'organise, en prévision de l'éventuelle pandémie de grippe, pour assurer la continuité des formations, et, en ce qui vous concerne, pour vous permettre de vous présenter, dans les meilleures conditions, à l'épreuve orale d'admission de PAU </b></br>"
strHTML = strHTML & "En cas d'annulation de votre stage en présentiel, votre formation sera accessible via la plate-forme de e-formation de l'IGPDE.</b></br>"
strHTML = strHTML & "Je vous communique donc les informations vous permettant de vous connecter. </b></br>"
strHTML = strHTML & "Il convient de cliquer sur le lien suivant (ou de le recopier dans votre navigateur) :</b></br>"
strHTML = strHTML & "https://e-formation.institut.minefi.gouv.fr/</b></br>"
strHTML = strHTML & "Votre identifiant est : " & Cells(i, 3) & "</b></br>"
strHTML = strHTML & "Votre mot de passe est : " & Cells(i, 4) & "</b></br></b></br>"
strHTML = strHTML & "Pour suivre cette formation, vous devez avoir accès à Internet,</b></br>"
strHTML = strHTML & "et votre navigateur doit accepter l'ouverture des fenêtres (en Anglais 'popup').</b></br>"
strHTML = strHTML & "Enfin, votre poste doit être équipé d'un lecteur Flash (en Anglais 'FlashPlayer').</b></br></b></br>"
strHTML = strHTML & "Conservez ce courriel dans une archive personnelle.</b></br>"
strHTML = strHTML & "Je vous informerai de l'ouverture du site</b></br></b></br>"
strHTML = strHTML & "Je suis à votre disposition pour tout renseignement complémentaire.</b></br></b></br>"
strHTML = strHTML & "Bien cordialement.</b></br></b></br>"
strHTML = strHTML & "toto</b></br>IGPDE</b></br>Responsable de Form@tic</b></br>01 58 64 82 07</b></br>toto@finances.gouv.fr"
strHTML = strHTML & "</BODY>"
strHTML = strHTML & "</HTML>"


'Spécifier le(s) destinataire(s) du mail si tout se passe bien
TDest = Array(Cells(i, 2))
'Flag à Vrai si un fichier est joint
FlgFic = False 'True

On Error GoTo erreur3

'***********************************************************************************

Call EnvoiMessage(strDe, TDest, strSujet, strHTML)

i = i + 1
Wend
Exit Sub

'Gestion des Messages d'Erreur
erreur3: 'Erreur lors de l'enregistrement EXCEL du document sur Serveur Devt&Intégration
bErreur = True
MessageErreur = "Probleme. " & "Erreur N°" & Err.Number & ". Description " & Err.Description
MsgBox (MessageErreur)
Resume Next ' Passe à l ’instruction qui suit celle où l ’erreur s ’est produite

End Sub



Sub EnvoiMessage(strFrom As String, strTo As Variant, strSubject As String, strBody As String)
'Send using the Port on a SMTP server
Dim iMsg As New CDO.Message
Dim iConf As New CDO.Configuration
Dim Flds As ADODB.Fields
'Dim strHTML

Set Flds = iConf.Fields

With Flds
.Item(cdoSendUsingMethod) = cdoSendUsingPort
.Item(cdoSMTPServer) = "ADRESSE DU PROVIDER"
.Item(cdoSMTPConnectionTimeout) = 10
.Update
End With

With iMsg
Set .Configuration = iConf
.From = strFrom
.To = strTo(0) 'Destinataires
.Subject = strSubject
.HTMLBody = strBody
.Send
End With

' cleanup des variables
Set iMsg = Nothing
Set iConf = Nothing
Set Flds = Nothing

End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 545
Messages
2 089 459
Membres
104 169
dernier inscrit
Philippe Mattia