Code, courriel, imprimer
Bonjour,
j'ai besoin d'aide, je vous joint un fichier dans lequel je souhaiterai imprimer en double cliquant sur l'icone "imprimante" soit le fichier word ou soit le fichier PDF correspondant à la ligne de cette icône.
Également envoyer un courriel outlook en double cliquant sur l'icône "courriel" afin d’envoyer le fichier PDF correspondant à la ligne de
cette icône qui s'est directement inséré en pièce jointe du mail outlook
merci, bonne après-midi.
Bonjour,
Il faudrait tout d'abord en connaitre davantage sur le fichier en question.
Tu balances un fichier vide de données...
La colonne "CHEMIN FICHIER", comment est-elle renseignée?
Peut-il y avoir des erreurs de saisie sur ces chemins?
La colonne "ENVOI COURRIEL" sous-entends qu'il y aurait éventuellement une adresse mail saisie ou alors que ce serait une adresse mail "générique"... Ou serait inscrite cette adresse mail?
Bonjour
sujet en doublon ...
https://forum.excel-pratique.com/excel/macro-courriel-imprimante-161078
en triplon...
https://forum.excel-pratique.com/excel/impression-outlook-macro-161053
Fred
quand je double clique sur l’icône mail, je souhaiterai qu’un courriel outlook vierge s’ouvre afin que je le renseigne.
ensuite quand je double clique sur imprimer je souhaiterai pouvoir sélectionner soit le fichier sors ou soit le fichier pdf et imprimer. en ce qui concerne les chemins d’accès je les renseignerai juste le code et je modifie.
ces icônes correspondent à une ligne c’est à dire icône de la ligne 5 imprime ou ouvre mail pour fichier de la ligne 5
Bonjour,
Voici un exemple, à adapter. Pense à adapter notamment le chemin...
Pour l'insérer : Clic droit sur l'onglet de la feuille (Feuil1) / Visualiser le code, puis copier/coller ce code :
Option Explicit
Const CHEMIN_COMPLET As String = "C:\Users\Documents\TRAVAIL\"
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim outApp As Object, outMail As Object, rngFichier As Range
Set rngFichier = Range("E" & Target.Row)
If Target.Column = 7 Then
'print or pdf
On Error Resume Next
If rngFichier.Value <> vbNullString Then
ThisWorkbook.FollowHyperlink CHEMIN_COMPLET & rngFichier.Value
End If
On Error GoTo 0
ElseIf Target.Column = 11 Then
'mail
Set outApp = CreateObject("Outlook.Application")
Set outMail = outApp.CreateItem(0)
On Error Resume Next
With outMail
.From = "ici.ton_adresse@mail"
'.To = ""
.Subject = "Mon Fichier"
If rngFichier.Value <> vbNullString Then
.Attachments.Add rngFichier.Value
End If
.Display
End With
On Error GoTo 0
Set outMail = Nothing
Set outApp = Nothing
End If
Set rngFichier = Nothing
End Sub
Bonjour, merci beaucoup. En ce qui concerne l'ouverture d'un mail en double cliquant, je souhaiterai que le fichier PDF de la même ligne s'incère en pièce jointe.
Bonne journée.
C'est très exactement ce que fait cette ligne de code :
If rngFichier.Value <> vbNullString Then
.Attachments.Add rngFichier.Value 'ICI joint le fichier dont le chemin ET le nom sont référencés en colonne E
End If
Ne pas tenir compte du message précédent. Parc contre dans les cellules E quand je double clique dans la cellule J le mail s'ouvre et le fichier PF s'insère quand le lien hypertexte est visible entièrement mais si j'écris PDF dans la cellule E et que je fait le lien hypertexte le mail ne s'ouvre pas avec le fichier PDF inséré.
Bonne journée.
Voici :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim outApp As Object, outMail As Object, Fichier As String
If Target.Row > 3 Then
On Error Resume Next
Fichier = Range("E" & Target.Row).Hyperlinks(1).Address
If Target.Column = 7 Then
'print or pdf
On Error Resume Next
If Fichier <> vbNullString Then
ThisWorkbook.FollowHyperlink Fichier
End If
On Error GoTo 0
ElseIf Target.Column = 10 Then
'mail
Set outApp = CreateObject("Outlook.Application")
Set outMail = outApp.CreateItem(0)
With outMail
.From = "ici.ton_adresse@mail"
'.To = ""
.Subject = "Mon Fichier"
If Fichier <> vbNullString Then
.Attachments.Add Fichier
End If
.Display
End With
Set outMail = Nothing
Set outApp = Nothing
End If
On Error GoTo 0
End If
End Sub
Je souhaiterai que quand je clique sur l'image imprimée que le PDF en lien hypertexte s’imprime automatiquement sans que celui-
ci s'ouvre et que je n'ai aucune manipulation à faire. bonne après-midi.
Vu ICI
Adapté au code qui nous intéresse :
Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim outApp As Object, outMail As Object, Fichier As String
If Target.Row > 3 Then
On Error Resume Next
Fichier = Range("E" & Target.Row).Hyperlinks(1).Address
If Target.Column = 7 Then
'print or pdf
On Error Resume Next
If Fichier <> vbNullString Then
ShellExecute FindWindow("XLMAIN", Application.Caption), "print", Fichier, "", "", 1
End If
On Error GoTo 0
ElseIf Target.Column = 10 Then
'mail
Set outApp = CreateObject("Outlook.Application")
Set outMail = outApp.CreateItem(0)
With outMail
.From = "ici.ton_adresse@mail"
'.To = ""
.Subject = "Mon Fichier"
If Fichier <> vbNullString Then
.Attachments.Add Fichier
End If
.Display
End With
Set outMail = Nothing
Set outApp = Nothing
End If
On Error GoTo 0
End If
End Sub
Attention, il convient d'adapter aux différentes versions : 32 ou 64 bits...
Je précise aussi que je n'ai pas testé ce code......
A voir!
Après test : il s'avère que le "reader" pdf reste ouvert après impression.
Merci, pour cet aide. Je suis novice t je souhaiterai que quand je double clique sur l'image imprimer le fihier PDF de la même ligne parte directement en impression sans que celui-ci s'ouvre.
On va faire simple.
Le code que je t'ai donné imprime bien ton fichier pdf.
Sache, tout d'abord, qu'en informatique "sans que celui-ci s'ouvre" ça n'existe pas.
Maintenant, pour fermer ton reader pdf derrière l'impression, il faut que, a minima, tu nous dises duquel il s'agit....
adobe reader? else?
par exemple, je clique dans la cellule "G4", je souhaite que le PDF dans la cellule "E4" s'imprime et se ferme après l'impression.
ludeaux.
Arrête de modifier des codes que tu n'assimiles pas.
As-tu essayé mon dernier code en date sur ce forum?
Si oui, explique moi comment ceci :
Fichier = Range("E" & Target.Row).Hyperlinks(1).Address
If Target.Column = 7 Then
'print or pdf
On Error Resume Next
If Fichier <> vbNullString Then
ShellExecute FindWindow("XLMAIN", Application.Caption), "print", Fichier, "", "", 1
End If
On Error GoTo 0
est devenu ceci :
Fichier = Range("E" & Target.Row).Hyperlinks(1).Address
If Target.Column = 5 Then
'print or pdf
On Error Resume Next
If Fichier <> vbNullString Then
ThisWorkbook.FollowHyperlink Fichier
End If
On Error GoTo 0
Le premier code (ci_dessus) imprime bien lors d'un double clic en colonne G (Target.Column = 7 / ShellExecute ... "print" ...), le second ouvre simplement le fichier.
Par contre, comme déjà dit, "et se ferme après l'impression" ne sera possible qu'une fois que tu nous auras (enfin) dit quel logiciel s'ouvre pour l'impression du pdf...
Tu sais, il faut lire et comprendre ce que l'on te transmet sur des forums...
l'imprimante utilisée est \\INF22CRM---WI01.DR-CPT.INTRADEF.GOUV.FR\SOLIMP3.
Parce que ça ne marche pas.
quand je double clique sur l'î
cone mail, celui-ci s'ouvre mais le fichier PDF de la même ligne ne sinsere pas en piece jointe dans le mail. Aussi je souhaiterai que quand le mail s'ouvre l'objet dans la cellule apparaisse dans l'objet du mail.
Bonjour,
1- Pour l'impression du pdf, voir mes remarques précédentes.
2- Si le chemin complet d'accès au fichier est bien référencé dans le lien en colonne E, mon code fonctionne. Je viens de le tester.
3- Pour l'objet :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim outApp As Object, outMail As Object, Fichier As String
If Target.Row > 3 Then
Fichier = Range("E" & Target.Row).Hyperlinks(1).Address
If Target.Column = 7 Then
'print or pdf
If Fichier <> vbNullString Then
ThisWorkbook.FollowHyperlink Fichier
End If
ElseIf Target.Column = 10 Then
'mail
Set outApp = CreateObject("Outlook.Application")
Set outMail = outApp.CreateItem(0)
With outMail
.From = "ici.ton_adresse@mail"
'.To = ""
.Subject = Range("D" & Target.Row).Value
If Fichier <> vbNullString Then
.Attachments.Add Fichier
End If
.Display
End With
Set outMail = Nothing
Set outApp = Nothing
End If
End If
End Sub
Si ce code passe en mode débugage, il nous faudra connaitre :
> le message d'erreur,
> la ligne de code qui sera alors surlignée en jaune.
Si possible, durant l'exécution du code, mettre un point d'arrêt et inspecter les variables grâce à la fenêtre Variables Locales...