Attachements.Add erreur -2147024773 (8007007b)
Bonjour à tous,
Suite à un changement de version d'Office (de la 32bit à la 64bit) je me retrouve avec une erreur
Erreur d'exécution '-2147024773 (8007007b)' : Nom de fichier ou de répertoire non valide
Pourtant, ma variable "sLienFic" contient bien le chemin d'accès complet au fichier
\\NomServeur\GED_AFFAIRES\XX_XXXXXX\XX_XXXXXX\X.XXX.XXXXX XXXXXXXXX - RACDT INDIV. C5 XXXXX\X.XXX.XXXXX FOA.pdf
J'ai testé en faisant un copier/coller de sa valeur dans l'explorateur Windows et le fichier s'ouvre bien
Ce code fonctionnait parfaitement quand j'étais en version 32bit
J'ai l'impression que la version 64bit impose des limitations et je suis obligé de l'utiliser
Est-ce que quelqu'un à déjà rencontré ce problème ?
Et comment le résoudre ?
Par avance merci
Bonjour,
La variable est-elle bien déclarée en string ?
Quoi qu'il en soit si l'on en juge par les résultats Google, il semble que le contenu des string devienne de plus en plus restreint... Eviter les caractères non expressément alphanumériques...
A+
Salut galopin01
Oui bien sûr ma variable est bien déclaré en string, je n'ai pas essayé en variant
A+
Bonjour,
et en remplaçant \\NomServeur par la lettre du lecteur ?
eric
Bonjour eriic
Désolé pour le délai, j'étais en déplacement
J'ai changé le chemin UNC en chemin physique (ce que je ne souhaite pas faire) mais j'ai la même boite de dialogue
Et si je veux ajouter la pièce jointe de mon mail créé, j'obtiens : Index de la matrice en dehors des limites
Mé c quoi ce binz
Sinon, voici le code complet
Sub BtnCréationMail()
Dim eOTP As String, sMailD As String, sObjet As String
Dim OutObj As Object, OutMail As Object, sLienFic As String, strBody As String
Dim LigSel As Long
' Récupérer le numéro de la ligne sélectionnée
LigSel = Selection.Row
' Afficher la barre de status
Application.DisplayStatusBar = True
' Afficher un message pour patienter
Application.StatusBar = "Préparation et envoi du mail, en cours ..."
' Création d'une instance Outlook pour envoyer un mail
Set OutObj = CreateObject("Outlook.Application")
Set OutMail = OutObj.CreateItem(0)
' Création de l'e-mail : Titre, Corps du message, destinataire
With ActiveSheet
eOTP = .Range("G" & LigSel).Value
sObjet = "Affaire(s) : " & eOTP & " lancée(s) ce jour"
sLienFic = .Range("Q" & LigSel).Formula
sLienFic = Replace(sLienFic, "=HYPERLINK(", "")
sLienFic = Mid(sLienFic, 1, InStr(1, sLienFic, ",") - 1)
End With
' Destinataire du mail
sMailD = "toto@free.fr"
' Créer le corps du message en langage HTML
strBody = "<BODY style=font-size:10pt;font-family:Arial>" _
& "Bonjour," & "<BR><BR>" _
& "Pour votre information, les/l'affaire(s) citée(s) en objet a/ont été lancée(s)"
' Créer le mail
With OutMail
' Pour afficher la signature
.Display
' Envoyer un email au RA concerné + à moi
.To = sMailD
.CC = "titi@free.fr"
.BCC = ""
.Subject = sObjet
' Définir le corps du message
.HTMLBody = strBody & .HTMLBody
' Joindre le fichier
.Attachments.Add sLienFic
End With
' Effacer les objets
Set OutMail = Nothing
Set OutObj = Nothing
' Afficher un message pour patienter
Application.StatusBar = "C'est fini, le mail a été créé !"
End Sub
A+
Tu a écrit :Je crois que je n'ai pas tout compris sur ce coup là
c'était juste une petite blague : comme j'ai pas réussi à résoudre ton exercice, j't'ai proposé c'que tu proposes aux autres : appuyer sur la touche [F1] !
dhany