IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Word Discussion :

[VBA-W] Message genant : Prog occupé => Basculer vers


Sujet :

VBA Word

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Points : 21
    Points
    21
    Par défaut [VBA-W] Message genant : Prog occupé => Basculer vers
    Bonjour,

    Désespérée de ce message Microsoft, je refais appel à vous !!
    Merci d'avance.

    Losque j'exécute mes macro WORD (sauvegarde++creation d'un pdf puis envoi par
    mail), je voudrais éviter ce genre de message du style serveur occupé,
    l'appli ne peut répondre choisissez ...

    Impossible de terminer cette action car le programme "Microsoft Word" ne
    répond pas. Choisissez Basculer vers et corrigez le problème
    J'ai trouvé 1 lien intéressant mais la propiété "OLERequestPendingTimeout"
    n'est pas référencé dans mon compilateur VBA Word :
    http://support.microsoft.com/default.aspx?scid=kb;fr;240809


    Auriez-vous une solution ?
    ou alors un code déclenchant une autre macro à la fermeture d'une fenetre .pdf

    Merci

    Lor

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Hello, je pense que tu as essayé les commandes classiques "DisplayAlerts..." etc.
    Après fermeture de ton pdf, as-tu essayé une tempo le temps que le system fasse son boulot - à placer juste après le code de fermeture
    DoEvents ne semble pas marcher seul mais dans une tempo, ça devrait... (?) Tu peux toujours essayer...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub lancertempo()
        Temporisation (1)
        MsgBox "Debout là-dedans !"
    End Sub
     
    Private Sub Temporisation(durée)
    Dim Tempo
        Tempo = TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) + durée)
        Application.Wait Tempo
    End Sub
    Juste pour que tu ne perdes pas de temps si ça ne marche pas mieux

    A+

  3. #3
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Ton problème est que tu passes par trop de processus au sein de Word que ce message est inéluctable et notamment du à l'attente de ta part d'un nom de fichier de sortie du PDF... Non ???

    Sur le forum Access, j'ai fait publier un code source pour générer un PDF depuis un état Access. Tu peux l'appliquer à un document Word en changeant quelques paramètres.
    Ensuite pour l'envoi par Mail, cela ne devrait pas poser de problème avec un objet idoine.

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Points : 21
    Points
    21
    Par défaut toujours aussi désepérée ....
    Bonjour,

    sympa vos réponses :

    pour la temporisation
    le code est impeccable mais ne m'élude pas ce message !

    Certes j'utilise des applis mais y en a que deux ou 3 !!

    Je résume :
    Je lance de mon progiciel (Graphtalk : Prolog),
    une macro Word

    qui génère un fichier .doc que j'enregistre sous un nom_1.doc,

    puis transforme en PDF et enregistre sous Nom_1.pdf, toutefois ce PDF est en visualisation donc il persiste à l'écran via une fenetre adobe

    puis écrit sur le .doc Duplicata, sauvegarde et ferme le document actif sous Word

    et là elle fait apparaitre un message afin de déterminer si on envoie ou pas par Email
    ici j'ai un message qui revient toutes les 5 secondes pour me dire que j'ai un message en attente de réponse (Prog occupé ou ne réponds pas basculer vers ...)
    Justement je souhaiterais disposer de plus de 5 secondes histoire de consulter la visualisation de mon Pdf tranquilou sans stress messagique

    Puis si oui envoi par mail via une macro de word appelant outlook !!


    voili voilou !

    Merci de vos réponses ...

    Lor

  5. #5
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Bien mon code permet d'éviter tout ça...
    Etudie le et adapte-le...
    C'est un gros gain de temps et plus de fenêtre d'interraction.

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Points : 21
    Points
    21
    Par défaut encore et toujours désespérée
    Bon faites pas attention aux lourdeurs de code !!
    je débute !!

    voici la macro que je lance à partir de mon progiciel via un OLE Word !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
     
    Option Explicit
    Public pOptions As AdobePDFMakerForOffice.ISettings
     
    Sub Envoi_auto()
     
    Dim File_nm
    Dim Email
    Dim MyRange
    Dim Response
    Dim oWord
     
        'Application.OLERequestPendingTimeout = 0
        Application.DisplayAlerts = wdAlertsNone
     
        File_nm = ActiveDocument.Name
        File_nm = Left(File_nm, Len(File_nm) - 4)
        File_nm = "I:\Contrats_pdf_test\" & File_nm & ".pdf"
        'recup Email
        Set MyRange = ActiveDocument.Range(0, 0)
        Set MyRange = MyRange.GoTo(What:=wdGoToPage, Name:="2")
        Set MyRange = MyRange.GoTo(What:=wdGoToBookmark, Name:="\page")
        Email = MyRange.Sentences(6).Text
        Email = Left(Email, Len(Email) - 4)
        Email = Right(Email, Len(Email) - 11)
        Call Pdf(File_nm, Email)
        'lancertempo
     
        Call Duplicata
        ActiveDocument.Save
        ActiveDocument.Close
        'ActivePrinter = DefPrinter
        Response = MsgBox("Souhaitez-vous continuez et envoyer par Courriel ce document ?", _
        vbYesNo + vbCritical + vbDefaultButton2, "Vérification de l'envoi")
          Application.DisplayAlerts = False
        If _
            Response = vbYes _
        Then    ' L'utilisateur a choisi Oui.
            Call Mail(File_nm, Email)
        End If
     
    End Sub
    Sub Pdf(File_nm, Email)
     
    'Dim DefPrinter
     
        'DefPrinter = Application.ActivePrinter
        'ActivePrinter = "Adobe PDF"
        Application.DisplayAlerts = False
        'Application.
        '.OLERequestPendingTimeout = 0
        Set pOptions = Application.COMAddIns(2).Object.GetCurrentConversionSettings()
            pOptions.AddTags = False
            pOptions.AddLinks = True
            pOptions.OutputPDFFileName = File_nm
            pOptions.ViewPDFFile = True
        Application.COMAddIns(2).Object.CreatePDFEx pOptions
     
    End Sub
    Sub Mail(File_nm, Email)
     
    Dim bStarted As Boolean
    Dim oOutlookApp As Outlook.Application
    Dim oItem As Outlook.MailItem
     
    'Application.DisplayAlerts = wdAlertsNone
    Application.DisplayAlerts = False
    On Error Resume Next
     
     
    'Get Outlook if it's running
    Set oOutlookApp = GetObject(, "Outlook.Application")
    If Err <> 0 Then
        'Outlook wasn't running, start it from code
        Set oOutlookApp = CreateObject("Outlook.Application")
        bStarted = True
    End If
     
    'Create a new mailitem
    Set oItem = oOutlookApp.CreateItem(olMailItem)
     
    With oItem
        'Set the recipient for the new email
       .To = Email
        'Set the recipient for a copy
        .CC = "MOI@afifi.com"
        'Set the subject
        .Subject = "Envoi certificat "
        'The content of the document is used as the body for the email
        .Body = "Bonjour" & vbCrLf & vbCrLf & _
                "Veuillez trouver ci-joint le contrat demandé." & vbCrLf & vbCrLf & _
                "Merci" & vbCrLf & vbCrLf & _
                "" & vbCrLf & _
                "" & vbCrLf & vbCrLf & _
            "Ce message et toutes les pièces jointes (ci-après le ''message'') sont établis à l'intention exclusive de ses destinataires et sont confidentiels." & vbCrLf & _
            "Si vous recevez ce message par erreur, merci de le détruire et d'en avertir immédiatement l'expéditeur." & vbCrLf & _
            "Toute utilisation de ce message non conforme à sa destination, toute diffusion ou toute publication, totale ou partielle, est interdite, sauf autorisation expresse." & vbCrLf & _
            "L'internet ne permettant & vbCrLf
        .Attachments.Add Source:=File_nm
        .Send
    End With
     
    If bStarted Then
        'If we started Outlook from code, then close it
        oOutlookApp.Quit
    End If
     
    'Clean up
    Set oItem = Nothing
    Set oOutlookApp = Nothing
     
    End Sub
    Merci !!
    Lor

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Points : 21
    Points
    21
    Par défaut vite une fenetre ...
    Non je crois qu'on s'éloigne du problème !!!
    De plus, je suis sous terminal Server Microsoft
    alors toucher au registre
    j'en suis frileuse ...

    le hic est à l'apparition de la boite suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    'ActivePrinter = DefPrinter 
        Response = MsgBox("Souhaitez-vous continuez et envoyer par Courriel ce document ?", _ 
        vbYesNo + vbCritical + vbDefaultButton2, "Vérification de l'envoi") 
          Application.DisplayAlerts = False 
        If _ 
            Response = vbYes _ 
        Then    ' L'utilisateur a choisi Oui. 
            Call Mail(File_nm, Email) 
        End If
    aller je prend la pelleteuse !!
    on va trouver !!!
    Lor

  8. #8
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Toucher au Registre... te fait peur ???
    Attention, t'as vu où le programme écrit ?
    Il n'y a aucun risque. le seul problème, ce sont les droits d'admin si tu es sur XP, là, c'est plus embêtant mais comprend que si je te suggère cela, c'est justement pour éviter d'avoir tout ce cycle de conception du PDF.
    Maintenant, tu peux très bien garder ton code et mettre une cas à cocher "Envoyer directement le PDF par Mail" ce qui t'évites l'apparition du MsgBox... Et tu traites l'envoi selon que ce soit True ou False.

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Points : 21
    Points
    21
    Par défaut une case à cocher ?
    Bonjour,

    Merci pour vos réflexions !

    une case à cocher, cela ne revient-il pas à ma boite à message, incluant une réponse oui ou non, qui justement me pose probleme genre Basculer vers toutes les 5 secondes ?
    Toutefois si par cette case à cocher, je pouvais éviter mon message Basculer vers ...
    Pourrais-tu étayer cette solution ?
    c'est un bouton, c'est ...


    Merci d'avance
    Lor

  10. #10
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Bien, je suppose que tu pars d'un formulaire pour générer ton PDF, non ???
    Sur ton form, tu as un Bouton Générer PDF et à coté de celui-ci, tu as un CheckBox labelisé "Envoyer directement le PDF par Mail"...
    Si la case est cochée, le processus crée le PDF selon ton code et envoie directement sans poser la question.
    Sinon, seul le PDF est généré.

    Maintenant, si ce n'est pas d'un formulaire que se passe cette procédure, d'où est-elle lancée ?

    A ce stade, j'ai fait un test qui marche très bien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub subCreatePDFFromReport(ByVal PDFFileName As String)
      originalPrinter = fnctGetDefaultPrinter()
      SetDefaultPrinter "Acrobat PDFWriter"
      subRegistrySetKeyValue rootHKeyCurrentUser, "Software\Adobe\Acrobat PDFWriter\", "PDFFileName", PDFFileName, RRKREGSZ
     
      Application.PrintOut FileName:=ActiveDocument.Name, Range:=wdPrintAllDocument, Item:=wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, Collate:=True, Background:=True, PrintToFile:=False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0
     
      SetDefaultPrinter originalPrinter
    End Sub
     
    Private Sub ImprimerPDF()
      subCreatePDFFromReport "C:\Documents and Settings\Argyronet\Mes documents\Demandes utilisateurs\lorbond\MonDoc.pdf"
    End Sub
    Cet extrait de code est repris de mon code pour un état Access. Il suffit d'adapter. Ensuite reste plus qu'à écrire une procédure propre pour l'envoi par mail...
    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Points : 21
    Points
    21
    Par défaut
    Hi !!

    Je n'arrive pas à adapter cette commande sur VBA//Word :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    subRegistrySetKeyValue rootHKeyCurrentUser, "Software\Adobe\Acrobat PDFWriter\", "File_nm", File_nm, RRKREGSZ
    et je n'ai pas de répertoire Acrobat PDFWriter
    Petit rappel je suis sous Adobe version 7 !


    Merci
    a+
    Lor

  12. #12
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    ouskel'n'or
    Comment ça, il ne peut pas marcher avec VBA ?
    As-tu testé...?
    La source est ici, il te faut scrupuleusement respecter ce qui y est écrit...
    lordbond
    Regarde ce post et suis ce qu'il y a dedans. A mon avis, tu as omis des choses...

    Pour rappel, il faut que PDFWriter soit installé sur le poste de travail donc, comme cela est stipulé, faire une Install personnalisée et non par Défaut d'Acrobat.

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Points : 21
    Points
    21
    Par défaut VBA passer en pdf sans intervenir J'ai ça :
    regarde ça
    si ça peux te convenir !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub Pdf()
     
        'ChangeFileOpenDirectory "G:\Outils\"
        DefPrinter = Application.ActivePrinter
        ActivePrinter = "Adobe PDF"
     
       Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
            wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
            Collate:=True, Background:=False, PrintToFile:=False, PrintZoomColumn:=0, _
            PrintZoomRow:=0, PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0
     
        ActivePrinter = DefPrinter
    End Sub
    ou

    voir forum :
    http://www.developpez.net/forums/vie...&highlight=pdf
    le dernier message à la page 2 si tu as adobe acrobat,
    attention il faut cocher de nouvelles library !!


    sinon toujours pas solutionner mon probleme de message !!!


    a+
    Lor

  14. #14
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut Re: VBA passer en pdf sans intervenir J'ai ça :
    Citation Envoyé par lorbond
    sinon toujours pas solutionner mon probleme de message !!!
    J'ai le sentiment que tu ne comprends pas ce que je t'ai suggéré.
    Je te propose donc de le voir au pas à pas:
    1/ Comment créés-tu ou lances-tu la création de ton PDF (Tu ne m'a pas répondu) ?
    2/ Quel que soit la méthode, tu appliques ce que je t'ai envoyé et tu testes sur le document Actif...
    3/ On s'occupera de l'envoi par mail après...

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Points : 21
    Points
    21
    Par défaut Toutes mes excuses ...
    Dans mon dernier message , je répondais à Ouskel'n'or.

    Je reviens à ton message Argyronet, ok il marche mais ne résous pas mon problème de message basculer vers

    Je viens d'effectuer un petit test :
    j'appelle cette macro uniquement de mon progiciel et le message arrive en 5 secondes ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub Msge()
    Dim Response
    Response = MsgBox("Souhaitez-vous continuez et envoyer par Courriel ce document ?", _
        vbYesNo + vbCritical + vbDefaultButton2, "Vérification de l'envoi")
          Application.DisplayAlerts = False
        If _
            Response = vbYes _
        Then
        MsgBox ("DEBOUT")
        Else
        MsgBox ("Y EN A MARRE")
        End If
    End Sub
    en fait c lorsque j'appelle une fenetre MsgBox de mon progiciel via une macro Word donc, il ne me laisse que 5 secondes de répis pour répondre alors que je voudrais disposer du temps que je veux avant de m'indisposer avec ce message de basculer vers !!


    A+
    Lor

  16. #16
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Mais pourquoi te cantonnes-tu à vouloir mettre un Msgbox... ?

    Merci aussi de me dire comment tu génères ton PDF:
    A partir d'un bouton, d'une macro, d'un UserForm ? D'où..?

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  17. #17
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    ouskel'n'or
    Comment ça, il ne peut pas marcher avec VBA ?
    As-tu testé...?
    La source est ici, il te faut scrupuleusement respecter ce qui y est écrit...
    Un peu tardive, ma réponse, argy mais voilà, j'ai tout relu depuis le début... et la première ligne d'ici dit précisément :
    Versions : 2000 et supérieures
    Autant pour moi, je m'étais jeté sur la ligne suivante...
    Je repars dans mes recherches. J'ai un autre problème, "Acrobat PDFMaker Office COM Addin" n'est apparemment pas installé sur mon poste (je travaillais avec Acrobat Distiller).
    Je retourne à mes chères études...

    Merci de vos réponses.

    A+

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Points : 21
    Points
    21
    Par défaut AIE AIE Qu'il fait chaud !!!!!
    Salut ,

    Je génère mon PDF via une macro :
    regarde dans mes premiers messages, j'y ai mis tout le code que je faisais tourner et notamment celui de création de PDF.

    La msgbox me sert à confirmer si l'édition PDF est validée par l'utilisateur et que ce dernier veut l'envoyer par mail ou le contraire !


    Merci
    Lor

  19. #19
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Bien, bien, te fâche pas

    Bon, je n'ai pas Acrobat 7.0 mais je pense que le principe est le même:
    Voilà ce que je te propose (toujours en t'affairant sur la procédure que j'ai écrite en ce qui concerne les PDF)...

    Procédure à modifier (nom et argument) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public Sub subCreatePDFDocument(ByVal PDFFileName As String, ByRef Finished As Boolean)
      originalPrinter = fnctGetDefaultPrinter()
      SetDefaultPrinter "Acrobat PDFWriter"
      subRegistrySetKeyValue rootHKeyCurrentUser, "Software\Adobe\Acrobat PDFWriter\", "PDFFileName", PDFFileName, RRKREGSZ
      Application.PrintOut Filename:=ActiveDocument.Name, Range:=wdPrintAllDocument, Item:=wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, Collate:=True, Background:=True, PrintToFile:=False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0
      SetDefaultPrinter originalPrinter
      DoEvents
      Finished = True
    End Sub

    et ton code modifié (et qui marche !!!)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    Option Explicit
     
    Sub Envoi_auto()
    Const PDF_PATH As String = "C:\Contrats_pdf_test\"
    Dim strFilename As String
    Dim blnTerminated As Boolean
    Dim oTempRange As Object
    Dim strDestinataire As String
     
      On Error GoTo Erreur
     
      strFilename = PDF_PATH & Left(ActiveDocument.Name, Len(ActiveDocument.Name) - 4) & ".pdf"
      subCreatePDFDocument strFilename, blnTerminated
      DoEvents
     
      Do
        If blnTerminated = False Then
        Else
          If MsgBox("Souhaitez-vous continuez et envoyer par Courriel ce document ?", vbYesNo + vbCritical + vbDefaultButton2, "Vérification de l'envoi") = vbYes Then
              Set oTempRange = ActiveDocument.Range(0, 0)
              Set oTempRange = oTempRange.GoTo(What:=wdGoToPage, Name:="2")
              Set oTempRange = oTempRange.GoTo(What:=wdGoToBookmark, Name:="\page")
              strDestinataire = oTempRange.Sentences(6).Text
              strDestinataire = Left(strDestinataire, Len(strDestinataire) - 4)
              strDestinataire = Right(strDestinataire, Len(strDestinataire) - 11)
              Call Mail(strFilename, strDestinataire)
              Exit Do
          End If
        End If
      Loop
     
      'Call Duplicata
      ActiveDocument.Close True
    Sortie:
      Set oTempRange = Nothing
      Exit Sub
    Erreur:
      MsgBox "Y a un blème !!!" & vbCrLf & Err.Description, 48, "Erreur #" & Err
    End Sub
     
    Sub Mail (ByVal Filename As String, ByVal Recipient As String)
    Dim bStarted As Boolean
    Dim oOutlookApp As Outlook.Application
    Dim oItem As Outlook.MailItem
    Const BODY_MEESSAGE As String = "Bonjour" & vbCrLf & vbCrLf & "Veuillez trouver ci-joint le contrat demandé." & vbCrLf & vbCrLf & "Merci" & vbCrLf & vbCrLf & "" & vbCrLf & "" & vbCrLf & vbCrLf & "Ce message et toutes les pièces jointes (ci-après le ''message'') sont établis à l'intention exclusive de ses destinataires et sont confidentiels." & vbCrLf & "Si vous recevez ce message par erreur, merci de le détruire et d'en avertir immédiatement l'expéditeur." & vbCrLf & "Toute utilisation de ce message non conforme à sa destination, toute diffusion ou toute publication, totale ou partielle, est interdite, sauf autorisation expresse." & vbCrLf & "L'internet ne permettant & vbCrLf "
     
      On Error Resume Next
      Set oOutlookApp = GetObject(, "Outlook.Application")
      If Err <> 0 Then
          Set oOutlookApp = CreateObject("Outlook.Application")
          bStarted = True
      End If
     
      Set oItem = oOutlookApp.CreateItem(olMailItem)
      With oItem
          .To = Recipient
          '.CC = "MOI@afifi.com"
          .Subject = "Envoi certificat "
          .Body = BODY_MEESSAGE
          .Attachments.Add Source:=Filename
          .Send
      End With
     
      If bStarted Then
          oOutlookApp.Quit
      End If
     
      Set oItem = Nothing
      Set oOutlookApp = Nothing
     
    End Sub
    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  20. #20
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Points : 21
    Points
    21
    Par défaut tout espoir est vainc ...
    Merci pour ton code
    En effet, il marche impec !!

    mais j'ai toujours ce foutu message !
    Cela doit venir de mon appel de départ depuis mon progiciel ...
    car quand je fais tourner en direct les macros Word sur un document ouvert pas de message

    A suivre donc ...

    Merci encore
    Lor

Discussions similaires

  1. [VBA-W]Pb de prog sous word!!!!!
    Par mat31 dans le forum VBA Word
    Réponses: 1
    Dernier message: 25/04/2006, 09h58
  2. [VBA-E]message lors de l'ouverture d'un autre classeur
    Par repié dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/02/2006, 15h30
  3. [VBA-E] message d'avertissement
    Par Fealendril dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/02/2006, 16h45
  4. [VBA-E] Message Blocage Macro
    Par beurnoir dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 24/11/2005, 15h13
  5. Passer pointeur via message à autre prog
    Par YéTeeh dans le forum C++Builder
    Réponses: 6
    Dernier message: 06/08/2003, 23h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo