Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/08/2011, 16h46   #1
Invité de passage
 
Homme
Inscription : août 2011
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2011
Messages : 15
Points : 1
Points : 1
Par défaut envoi document "parallèle" par mail.

Bonjour à tous,

Voila je suis enseignant et je suis en train de faire une sorte de livret de suivi pour les élèves de mon établissement. Ce livret est un document word que l'on peut modifier tout au long de l'année.

Il comporte notamment des encadrés comme "Rapport d'incident sur l'élève".
Lorsqu'un professeur doit remplir cet encadré je voudrai qu'il soit possible de de l'envoyer par mail (au proviseur par exemple) mais seulement l'encadré en question pour cela j'ai fait une petite manip : lorsque l'on clique sur l'encadré ça ouvre un autre document "parallèle" avec seulement l'encadré en question (il n'apparait plus le suivi fait sur l'élève jusqu'à présent).

J'ai réussi à faire un bouton dont le code envoie bien par mail un document classique avec des adresses mails définies, un texte et un objet définis.

Le problème est que ce code ne fonctionne pas avec le document dit parallèle : il me renvoie le problème suivant :

Erreur d'exécution : '-2147024894 (80070002)
Fichier introuvable. Vérifier que le chemin d'accès et le nom du fichier sont corrects.

Voila j'espère avoir été très clair et je tiens à préciser que je ne connait rien VBA, le code je l'ai trouvé sur le net.

Merci de votre aide.
bakaladiakouba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2011, 17h53   #2
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 25
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 592
Points : 1 592
Envoyer un message via MSN à carden752
Bonjour,

Est-ce qu'il serait possible de voir le bout de code que tu as car sans celui-ci il me parait difficile de t'aider.
Je pense que le document n'est pas sauvegardé avant du coup il a du mal à envoyer le document peut-être avec un nom générique depuis un fichier temporaire.
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 12h44   #3
Invité de passage
 
Homme
Inscription : août 2011
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2011
Messages : 15
Points : 1
Points : 1
Voici le code en question :

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
35
Private Sub CmdEnvoyer_Click()
 
 
' Déclarations des variables objet
Dim ol As Object
Dim monItem As Object
 
' On instancie les variables
Set ol = CreateObject("outlook.application")
Set monItem = ol.CreateItem(olMailItem)
 
' Destinataire du mail (il faut séparer les destataires par des points virgules)
monItem.To = "jmartin@igmcentre.fr;the_nas@hotmail.fr"
 
' Objet du mail
monItem.Subject = "Test de mail"
 
' Corps du mail
monItem.Body = "Bonjour" & Chr(13) & Chr(13) & "Je vous prie de bien vouloir trouver blabla"
 
' Pièce jointe : On prend le document actif
Set mondoc = monItem.Attachments
mondoc.Add ActiveDocument.FullName
 
' Envoi du mail ou ouverture selon le choix
'monItem.Send ' Envoi
monItem.Display ' Ouverture
 
' On vide l'objet
Set ol = Nothing
 
' Message de confirmation (falcutatif)
' MsgBox "la demande a bien été transmise "
 
End Sub
En effet je crois que le code se bloque au moment où il doit chercher l'emplacement du dit document parallèle.
Mais la je ne sais pas du tout comment faire cela dépasse mes petites connaissances en word.
Merci d'avance.
bakaladiakouba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 13h22   #4
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 25
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 592
Points : 1 592
Envoyer un message via MSN à carden752
Bonjour,

En debuggant que contient
Code :
Activedocument.FullName
?
Peut-être le remplacer par
Code :
Word.activedocument.FullName
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 13h47   #5
Invité de passage
 
Homme
Inscription : août 2011
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2011
Messages : 15
Points : 1
Points : 1
Je viens de tester et cela me renvoie toujours le même message d'erreur.
bakaladiakouba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 15h18   #6
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 25
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 592
Points : 1 592
Envoyer un message via MSN à carden752
Bonjour,

Autre solution passer le document a envoyer en paramètre
Code :
1
2
Private Sub CmdEnvoyer_Click(docaenvoyer as Word.Document)...
mondoc.Add docaenvoyer.FullName
Et l'appeler avec
Code :
CmdEnvoyer_Click word.activedocument
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 17h15   #7
Invité de passage
 
Homme
Inscription : août 2011
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2011
Messages : 15
Points : 1
Points : 1
Ouai ok je ne comprends pas désolé
bakaladiakouba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 17h48   #8
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 324
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 324
Points : 29 225
Points : 29 225
Salut,

Je pense que c'est lié au fait que le nouveau document contenant l'extrait n'a pas encore été sauvegardé.
Il n'a donc pas de path et n'existe pas en tant que tel.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 08h45   #9
Membre du Club
 
Avatar de Thewil
 
Homme
Inscription : juillet 2006
Messages : 240
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juillet 2006
Messages : 240
Points : 55
Points : 55
C'est peut-être possible d'enregistrer le document temporaire, de récupérer le Path de l'envoyer et ensuite de le supprimer ?
Thewil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 14h06   #10
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 324
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 324
Points : 29 225
Points : 29 225
Citation:
Envoyé par Thewil Voir le message
C'est peut-être possible d'enregistrer le document temporaire, de récupérer le Path de l'envoyer et ensuite de le supprimer ?
Salut,

Il n'est donc plus temporaire alors.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 15h07   #11
Membre du Club
 
Avatar de Thewil
 
Homme
Inscription : juillet 2006
Messages : 240
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juillet 2006
Messages : 240
Points : 55
Points : 55
Citation:
Envoyé par Heureux-oli Voir le message
Salut,

Il n'est donc plus temporaire alors.
Oui forcément vu comme ça C'est un pseudo temporaire finalement mais ça revient au même je suppose ?

Sinon comment récupérer le nom du fichier temporaire pour l'imprimer ?
Thewil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 15h54   #12
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 324
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 324
Points : 29 225
Points : 29 225
Salut,
¨
Pourquoi avoir le nom pour l'imprimer ?

Code :
ActiveDocument.PrintOut
Va imprimer le fichier.

Mais ce n'est pas l'impression qui est la cause de problème puisqu'on ne demande pas l'impression mais l'envoi par mail.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 16h45   #13
Membre du Club
 
Avatar de Thewil
 
Homme
Inscription : juillet 2006
Messages : 240
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juillet 2006
Messages : 240
Points : 55
Points : 55
Oui autant pour moi je me suis emmêler les pinceaux

Mais bon ça reste un peu le même principe je pense ? On a qqchose de temporaire et il faut l'envoyer sans en connaître le nom.

Bref moi je sèche un peu
Thewil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 17h13   #14
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 25
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 592
Points : 1 592
Envoyer un message via MSN à carden752
Bonjour,

Une idée pour récupérer le nom, lister les fichiers avec l'extension tmp dans le répertoire du fichier d'origine.
Si mes souvenirs sont bons, le nom doit avoir cette structure ~WRD*.tmp

Attention, il s'agit bien évidemment d'un fichier caché.
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 17h13   #15
Invité de passage
 
Homme
Inscription : août 2011
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2011
Messages : 15
Points : 1
Points : 1
Au pire, il n'est pas possible de créer un bouton qui serait un raccourcit vers:
menu -> envoyer -> envoyer comme pièce jointe

Il resterait à mettre manuellement l'adresse et l'objet, mais ce serait déjà ça !
bakaladiakouba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 18h30   #16
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 324
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 324
Points : 29 225
Points : 29 225
Salut,

Ce qui serait possible sans trop de problème, c'est l'envoi du contenu en tant que corps du message.

Ça évite la sauvegarde, qui ne pose pas de problème, en plus si on donne toujours le même nom au fichier, le nouveau va écraser l'ancien.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 11h33   #17
Invité de passage
 
Homme
Inscription : août 2011
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2011
Messages : 15
Points : 1
Points : 1
Ca peut être une solution intéressante...est-il possible d'avoir un exemple de code ??
bakaladiakouba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 13h51   #18
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 324
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 324
Points : 29 225
Points : 29 225
Salut,

Voilà un exemple.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
Sub EnvoiPortionDeDoc()
Dim oApp As Outlook.Application
Dim oMail As Outlook.MailItem
 
Set oApp = Outlook.Application
Set oMail = oApp.CreateItem(olMailItem)
 
With oMail
    .To = "Email adresse"
    .Subject = "Test Envoi Selection"
    .BodyFormat = olFormatRichText
    .Body = Selection.Range
End With
oMail.Send
Set oMail = Nothing
 
 
End Sub
Il faut ajouter la bibliothèque Outlook au projet (Outils => Références)
Et comme je ne crée pas de nouvel objet Outlook, il faut que Outlook soit ouvert.

si Outlook n'est pas pas ouvert, il faut créer une nouvelle instance avec

Code :
Set oApp = New Outlook.Apllication
Et libérer l'instance

Code :
1
2
oApp.close
Set oApp = Nothing
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 15h08   #19
Invité de passage
 
Homme
Inscription : août 2011
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2011
Messages : 15
Points : 1
Points : 1
Ha c'est cool je vais test tout ça.
Merci pour la réponse.
bakaladiakouba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 15h25   #20
Invité de passage
 
Homme
Inscription : août 2011
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2011
Messages : 15
Points : 1
Points : 1
Bon j'ai test...ça lance bien un mail avec Outlook mais par contre ça ne met rien comme contenu du mail...
bakaladiakouba est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h28.


 
 
 
 
Partenaires

Hébergement Web