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

VBScript Discussion :

Script désactiver les liaisons Excel


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Octobre 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 12
    Par défaut Script désactiver les liaisons Excel
    Bonjour à tous,

    Je viens de mettre en service un petit bout de script permettant de copier un fichier Excel et de le coller dans un dossier.
    Le script fonctionne, sauf que maintenant je cherche comment désactiver ou supprimer les liaisons Excel de ce fichier copier :-)

    Merci de votre aide. Jérôme

    Ci-dessous le script utilisé pour copier le fichier Excel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    'Déclaration des variables
    Dim Date_Maintenant, Heure_Maintenant, FSCopie
    'Formatage de la date et de l'heure
    Date_Maintenant = date
    Date_Maintenant = day(Date_Maintenant) & month(Date_Maintenant) & year(Date_Maintenant)
    Heure_Maintenant = time
    Heure_Maintenant = Hour(Heure_Maintenant) & Minute(Heure_Maintenant) '& Second(Heure_Maintenant)
    'Copie du fichier
    Set FSCopie = CreateObject("Scripting.FileSystemObject")
    FSCopie.CopyFile "C:\Users\ADMIN\Essai1.xlsx" , "C:\Users\ADMIN\Desktop\Test\" & Date_Maintenant & "_" & Heure_Maintenant & ".xlsx"

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 420
    Par défaut
    Il y a peut-être un moyen de copier le fichier sans se soucier des liaisons : On copie seulement les données(et formules s'il y en a) :
    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
    Option Explicit     
       Dim appExcel, wBook1, wBook2, Cnt
       Dim iRow, Y, RowsCount, ColsCount
     
      Set appExcel = CreateObject("Excel.Application")
      appExcel.Visible = True
      appExcel.DisplayAlerts = False
      ' Adapte le chemin des fichiers selon ce que tu as dans la ligne suivante :
      Call CopyDataToNewFile("C:\TESTDIR\Temp\Essai1.xlsx", "C:\TESTDIR\Tmp\Essai1.xlsx")
      Wscript.Sleep 5000 ' Attente de 5 secondes avant fermeture des fichiers
      appExcel.Quit 
      Set appExcel = Nothing 
    '===========================
    Sub CopyDataToNewFile(XLFile1, XLFile2)
        Cnt = 0
        iRow = 1
     
        Set WBook1 = appExcel.Workbooks.Open(XLFile1, , True) ' Ouvre le fichier Excel source en lecture seule
        appExcel.WorkBooks(1).Activate
        RowsCount = WBook1.ActiveSheet.UsedRange.Rows.Count      ' Nombre de lignes dans le fichier excel source
        ColsCount = WBook1.ActiveSheet.UsedRange.Columns.Count   ' Nombre de colonnes dans le fichier excel source
        Set wBook2 = appExcel.Workbooks.Add()                   ' Ouvre un nouveau classeur
     
        Do While iRow < RowsCount+1
        Cnt = Cnt + 1 
        For Y = 1 To ColsCount
          ' Copie la formule(la valeur s'il n'y a pas de formule)
            WBook2.Sheets(1).Cells(Cnt, Y).Formula = WBook1.Sheets(1).Cells(Cnt, Y).Formula
          ' Copie la taille de la cellule
            WBook2.Sheets(1).Columns(cnt).ColumnWidth = WBook1.Sheets(1).Columns(cnt).ColumnWidth
            WBook2.Sheets(1).Rows(cnt).RowHeight = WBook1.Sheets(1).Rows(cnt).RowHeight
          ' Copie la taille et le poids de la police
            WBook2.Sheets(1).Cells(Cnt, Y).Font.Size = WBook1.Sheets(1).Cells(Cnt, Y).Font.Size
            WBook2.Sheets(1).Cells(Cnt, Y).Font.Bold = WBook1.Sheets(1).Cells(Cnt, Y).Font.Bold
          ' Mise en forme de la bordure de la cellule
            WBook2.Sheets(1).Range("A" & Cstr(iRow) & ":" & Chr(64 + Y) & Cstr(Y)).BorderAround 1, 2, 0
          Next
          iRow = iRow + 1
        Loop
        WBook1.Close
        WBook2.SaveAs XLFile2, , , , False ' Enregistre le nouveau classeur
    End Sub
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  3. #3
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Octobre 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 12
    Par défaut
    Bonjour l_autodidacte,

    Le script fonctionne, par contre toutes les valeurs des liaisons sont vide.
    Le script copie bien toutes les valeurs en dur mais celles des liaisons.

  4. #4
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 420
    Par défaut
    Les liaisons sont-elles internes (relatives au classeur en cours) ou externes(relatives à d'autres classeurs ou autres fichiers) ?
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  5. #5
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Octobre 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 12
    Par défaut
    Les liaisons sont externe. Du style le fichier A comporté une liaison vers un fichier B

  6. #6
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 420
    Par défaut
    Il y a sur cette page un utilitaire qui pourrait te dépanner.
    La page étant en anglais, j'en donne une traduction exhaustive :
    FINDLINK
    Objectif


    Cet utilitaire populaire est un complément Excel qui recherche dans un classeur une chaîne spécifiée (représentant généralement un lien vers un autre classeur) et vous indique où il se trouve dans le classeur, en remplaçant éventuellement les formules incluant la chaîne par leurs valeurs actuelles.Il peut donc être utilisé pour découvrir pourquoi vous recevez un message aussi inattendu lors de l’ouverture du classeur
    .
    et, en remplaçant les formules contenant les liens par leurs valeurs, le message ne pourra plus apparaître ultérieurement.
    La version actuelle est pour Excel 2007 ou version ultérieure. Pour Excel 2003 ou une version antérieure, cliquez ici.Installation


    • La version actuelle est 11.1 Téléchargez-la ici
    • Extrayez FindLink.xlam du fichier zip dans un dossier de votre ordinateur
    • Vérifiez que Windows ne l'a pas marqué en tant que fichier bloqué. À l'aide de l'Explorateur Windows, dans le dossier où vous avez extrait Findink.xlam, cliquez avec le bouton droit de la souris sur Findlink.xlam> Propriétés> Général, puis cliquez sur le bouton Débloquer s'il est présent.
    • Vous pouvez choisir d'installer FindLink en tant que complément afin qu'il soit disponible chaque fois que vous exécutez Excel ou de simplement l'ouvrir lorsque vous souhaitez l'utiliser.
    • Pour installer en tant que complément dans Excel 2007
      • Bouton Office> Options Excel> Compléments> Gérer: Compléments Excel> Aller> Parcourir où vous avez enregistré FindLink.xlam, sélectionnez FindLink.xlam et cliquez sur OK.

    • Pour installer en tant que complément dans Excel 2010 ou une version ultérieure
      • Fichier> Options> Compléments> Gérer: Compléments Excel> Aller> Parcourir où vous avez enregistré FindLink.xlam, sélectionnez FindLink.xlam et cliquez sur OK.

    • Pour l'exécuter une fois sans l'installer en tant que complément:
      • Dans Excel 2007: Bouton Office> Ouvrir> FindLink.xlam
      • Dans d'autres versions, Fichier> Ouvrir> FindLink.xlam
      • Si vous êtes averti de la présence de macros dans le fichier, activez le contenu.
      • Si vous avez la possibilité de faire confiance à l'éditeur (Bill Manville Associates), faites-le.


    Utilisation


    • FindLink ajoute un élément de menu "Rechercher des liens" au ruban des compléments
      • Si le ruban des compléments n'apparaît pas, dans Excel 2010 ou version ultérieure, Fichier> Options> Personnaliser le ruban. dans la zone de liste de droite, assurez-vous que le ruban des compléments est activé
      • Si le ruban des compléments est toujours absent ou ne contient pas l'élément de menu Rechercher des liens, vérifiez que FindLink.xlam n'est pas marqué comme bloqué (voir ci-dessus), puis redémarrez Excel.

    • Cliquez sur l'élément de menu Rechercher des liens, et FindLink affiche une boîte de dialogue:

    • Il est généralement demandé à FindLink de rechercher un nom de fichier particulier vers lequel figurent des liens dans le classeur, ou ".xl" pour rechercher des liens vers des fichiers Excel.
    • Il recherche dans le classeur actif les formules qui incluent une chaîne spécifiée par l'utilisateur. Il recherche des noms définis, des formules de cellules et également des objets pouvant être liés à des données dans des cellules (par exemple, séries de graphiques, étiquettes de données, zones de texte, listes de validation de données, formules de formatage conditionnel).
    • Il existe des options pour créer une liste dans une feuille de travail indiquant partout où la chaîne spécifiée a été trouvée et / ou pour supprimer toutes les occurrences de la chaîne (par exemple en remplaçant des formules par des valeurs) ou pour donner un message pour chaque occurrence, permettant à l'utilisateur de: décider d'une action:

    • Remarque: Si vous recherchez des liens vers un complément installé, ils ne seront pas trouvés, à moins que vous ne désinstalliez le complément ou que vous ne lanciez Excel en mode sans échec (maintenez la touche Ctrl enfoncée pendant le démarrage d'Excel) pour empêcher l'ajout de l'info-infrom. chargement. Si vous utilisez le mode sans échec, vous devrez alors ouvrir FINDLINK explicitement.

    Quoi de neuf


    • La version 11.1 corrige un problème où la seule instance du lien recherché dans une feuille de calcul se trouvait dans une cellule fusionnée
    • La version 11.0 corrige un lien brisé sur le bouton Aide (!)
    • La version 10.9 apporte quelques améliorations mineures à l'interface utilisateur
    • La version 10.8 détecte certains liens précédemment manqués dans la mise en forme conditionnelle et gère plus efficacement les grands blocs de formules.
    • La version 10.2 fonctionne lorsque les noms de fichier contiennent 'et aussi lorsque des tableaux croisés dynamiques sont connectés à des sources de données externes telles que PowerQuery
    • La version 10.0 améliore la recherche de formules de mise en forme conditionnelle pour inclure ColorScales, DataBars et IconSets
    • La version 9.9a a une adresse électronique mise à jour pour le support et le signalement des erreurs
    • La version 9.9 trouve des liens dans des formules de mise en forme conditionnelle supplémentaires (Excel 2007 et versions ultérieures)
    • La version 9.7 fonctionne mieux sur les versions Mac d'Excel
    • La version 9.6 trouve les liens dans les cellules masquées par filtrage
    • La version 9.5 gère mieux les titres d'axes dans Excel 2010

    Lacunes connues

    En raison de limitations dans le modèle d'objet VBA, les liens ne seront pas trouvés dans:
    • Titres des axes secondaires dans les graphiques
    • Sources des barres d'erreur personnalisées dans les graphiques
    • Lignes cachées par filtrage avancé
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

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

Discussions similaires

  1. [PPT-2010] Changer la source de données de toutes les liaisons Excel/Powerpoint
    Par Ange HALA dans le forum Powerpoint
    Réponses: 1
    Dernier message: 15/10/2018, 13h24
  2. Désactiver les liens entre les classeurs Excel sans alerte
    Par flevielle dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/09/2007, 15h18
  3. [VBA-E] désactiver les liaisons
    Par repié dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/05/2006, 11h06
  4. Ouvrir excel en désactivant les macro
    Par tiopan dans le forum Access
    Réponses: 2
    Dernier message: 24/11/2005, 17h13
  5. [EXCEL] copier une feuille sans changer les liaisons
    Par DidRocks dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/09/2005, 13h29

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