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.

8directives.xlsx (19.62 Ko)

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?

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.

1directives.xlsx (19.74 Ko)

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

MERCI BEAUCOUP.

Je souhaiterai que quand je clique sur l'image imprimée que le PDF en lien hypertexte s’imprime automatiquement sans que celui-

4directives.xlsm (29.84 Ko)

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.

3directives.xlsm (38.97 Ko)

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...

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...

Franck... Bon courage pour le dialogue de sourd....

Fred

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'î

3directives.xlsm (39.21 Ko)

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...

Rechercher des sujets similaires à "code courriel imprimer"