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

WinDev Discussion :

Activé liens automatiques Excel via Automation [WD18]


Sujet :

WinDev

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations forums :
    Inscription : Juin 2012
    Messages : 168
    Points : 397
    Points
    397
    Par défaut Activé liens automatiques Excel via Automation
    bonjour,

    J'ai un fichier Excel qui a des liens qui pointent vers un fichiers Excel Source, lorsque j'ouvre ce fichier j'ai le message de Excel :

    "Message de sécurité :La mise à jour automatique des liens a été désactivée [Activer ce Contenu]"
    Je souhaite activé les liens via automation sous Windev, Est-ce possible ?

    Pour palier a ce problème voila ce que je fait pour que les liens soit mis a jour :

    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
     
    xl1 est un objet OLE dynamique//objet Automation dynamique
    xl1 = allouer un objet OLE "Excel.Application"//Automation "Excel.Application"
    xl1>>Application>>DisplayAlerts=False
     
    xl1>>WorkBooks>>Open(sFicExcel)
     
    xl1>>ActiveWorkbook>>SaveAs(sNomFichier,xlOpenXMLWorkbook,"")
     
    xl1>>Cells>>Select
    xl1>>Range("A1")>>Activate
    xl1>>Selection>>Copy
    xl1>>Selection>>PasteSpecial(xlPasteAll, xlNone, False, False)
     
    xl1>>ActiveWorkbook>>Save
     
    xl1>>ActiveWindow>>Close
     
    xl1>>Quit
     
    libérer xl1
    Le problème c'est quand faisant cela, je perd le format de mise en page (les options "Zone d'impression" et "Lignes a répéter en haut" disparaissent !)
    Donc sinon comment ajouter ces options de mise en page via automation ?

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations forums :
    Inscription : Juin 2012
    Messages : 168
    Points : 397
    Points
    397
    Par défaut
    Bon je me répond a moi même vu que j'ai trouvé une solution pour résoudre mon problème.

    Du coup, pour que les liens fonctionnent, je fais une copie du fichier source en l'enregistrant a un endroit "temporaire".

    Pour résoudre les problèmes de mise en page :

    J'utilise donc les paramètres de Excel : PrintTitleRows pour les Titres de colonnes a imprimer sur chaque page
    et PrintArea pour définir la zone d'impression.

    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
     
    xl1 est un objet OLE dynamique//objet Automation dynamique
    xl1 = allouer un objet OLE "Excel.Application"//Automation "Excel.Application"
    xl1>>Application>>DisplayAlerts=False
     
    xldest est un objet OLE dynamique//objet Automation dynamique
    xldest = allouer un objet OLE "Excel.Application"//Automation "Excel.Application"
    xldest>>Application>>DisplayAlerts=False
     
    sLastRow est une chaîne
     
    xl1>>WorkBooks>>Open(sFicExcelSource)//1
     
    xl1>>ActiveWorkbook>>SaveAs(sNomFichier,xlOpenXMLWorkbook,"")//2
     
    xldest>>WorkBooks>>Open(sNomFichier)//3
     
    sLastRow = xl1>>ActiveSheet>>Cells(xl1>>ActiveSheet>>Rows>>Count, "A")>>End(xlUp)>>Row //4 :dernière ligne du fichier Excel
     
    xldest>>ActiveSheet>>PageSetup>>PrintTitleRows = "$8:$8" //5 : zone de titres a imprimer sur chaque page
    xldest>>ActiveSheet>>PageSetup>>PrintArea = "A1:L" + sLastRow //5 : Zone d'impression
     
    xldest>>ActiveWorkbook>>Save //6
     
    //fermeture fichier source
    xl1>>ActiveWindow>>Close
    xl1>>Quit
    libérer xl1
     
    //export vers pdf
    xldest>>sheets(1)>>ExportAsFixedFormat(xlTypePDF,sDestinationPdf,xlQualityStandard,Vrai,Faux)
     
    //fermeture copie du fichier source
    xldest>>ActiveWindow>>Close
    xldest>>Quit
    libérer xldest
    Remarque :
    Si j'utilise PdfCreator (avec cPrintfile) après avoir fermé la copie du fichier source, la mise en page disparait !

    En espérant que cela puisse aider.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [E-03]Publier un pdf depuis excel via une macro et avec les LIENS
    Par Gaillac dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 03/10/2008, 09h59
  2. Export Access vers Excel via Automation
    Par Flow56 dans le forum VBA Access
    Réponses: 4
    Dernier message: 11/04/2008, 17h04
  3. Manipuler Excel via Ole automation
    Par falcon dans le forum Excel
    Réponses: 3
    Dernier message: 02/10/2007, 15h39
  4. envoi "non automatique" d'un doc Excel via email Lotus
    Par marpin dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/06/2007, 14h58
  5. Automation excel via Access -
    Par Celia1303 dans le forum Access
    Réponses: 4
    Dernier message: 18/11/2005, 12h45

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