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 Discussion :

Microsoft a tué la fonction Selection.InsertFile dans 365 ?!


Sujet :

VBA

  1. #1
    Membre à l'essai
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Mars 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2018
    Messages : 15
    Points : 13
    Points
    13
    Par défaut Microsoft a tué la fonction Selection.InsertFile dans 365 ?!
    Bonjour à tous,

    Quelques mots au sujet d'un problème évoqué sur des forums anglophones - ici et ici par exemple - par un brave homme au fond du trou (ce que je comprends parfaitement vu que j'ai la même problématique, qui fout en l'air du jour au lendemain des solutions qui tournaient auparavant impeccablement chez des clients).

    Je résume : depuis une mise à jour Office 365 intervenue courant août à priori, des utilisateurs de plus en plus nombreux sont incapables de déclencher la moindre macro VBA contenant l’instruction « Selection.InsertFile » sans rencontrer d'erreur 5097.

    Pour ne rien gâcher, et comme d’habitude avec Office, le bug peut n’affecter que tel ou tel utilisateur sur un parc informatique alors que les versions d’Office 365 sont identiques. On peut préciser aussi que la fonction plante si on tente d’insérer un document Word au format .docx, mais pas si on insère un document au format 97-2003 (.doc) ; ou, pour être plus vicieux encore, qu’elle refonctionne avec un fichier .docx qu’on a zippé puis dézippé… La magie Office, on ne s’en lasse pas…

    Exemple personnel : je ne rencontre aucun problème sur ma machine de développement, mais j’ai une machine « grand public » de test sur laquelle la fonction bloque. J’achève actuellement un gros développement pour un client, dont une grande partie de la philosophie repose sur de l’insertion automatisée de contenus de fichiers Word. Ça tourne parfaitement chez moi, mais chez le client, impossible de déclencher un Selection.InsertFile sans que ça plante.

    Je suppose qu'on ne doit pas être les deux seules personnes à qui ça arrive et à qui ça pose de sérieux problèmes ? Le problème se répand à mesure que les mises à jour se déploient. Des témoignages ? Il semble que les MVP qui interviennent sur les forums anglophones soient secs et restent sans retour des équipes de dev Microsoft.

    Bien entendu, si certains ont une idée pour remédier à ce qui est manifestement un dommage collatéral de mise à jour dont Microsoft n’a absolument rien f… aire, n'hésitez pas...

    Bonne journée.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Mars 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2018
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    Pour ceux qui rencontreraient ce problème, pas de solution à proprement parler pour l'insertion du contenu du fichier, mais une astuce permettant de contourner qui m'a sauvé la vie :

    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
     
    On Error GoTo err
     
    Dim NomDoc As String
    NomDoc = "...\NomFichier.docx" ' Chemin complet du fichier concerné
     
    Selection.InsertFile FileName:=NomDoc, Link:=False
     
    err:
    If err.Number = 5097 Then
        err.Clear
        Dim WordApp As Word.Application
        Dim bstartApp As Boolean
        Dim WordDoc As Word.Document
        On Error Resume Next
        Set WordApp = GetObject(, "Word.Application")
        If err Then
            bstartApp = True
            Set WordApp = CreateObject("Word.Application")
        End If
        On Error GoTo 0
        Set WordDoc = WordApp.Documents.Add(NomDoc)
        WordDoc.Range.Select
        Selection.Copy
        WordDoc.Close
        Set WordDoc = Nothing
        Selection.Paste
        Selection.TypeBackspace
        If bstartApp = True Then
            WordApp.Quit
        End If
    End If
    Si cela peut aider... A bientôt.

Discussions similaires

  1. comment utiliser SELECT COUNT dans ma fonction
    Par z_ahlam dans le forum Langage
    Réponses: 2
    Dernier message: 14/10/2009, 16h30
  2. Réponses: 2
    Dernier message: 06/09/2009, 08h09
  3. Erreur "SELECT INTO" dans une fonction
    Par mercure07 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 20/02/2009, 11h34
  4. Problème doublon dans fonction select
    Par roman67 dans le forum SQL
    Réponses: 10
    Dernier message: 31/07/2008, 13h09
  5. Afficher un select en fonction du choix dans un autre select.
    Par JackBeauregard dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/03/2007, 18h51

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