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 :

comment toujours activer les macros et mettre a jour les liaisons pour un seul fichié


Sujet :

VBA

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2006
    Messages : 94
    Points : 52
    Points
    52
    Par défaut comment toujours activer les macros et mettre a jour les liaisons pour un seul fichié
    Bonjour,
    j'ai plusieurs fichiers excel, pour l'un d'entre eux, je voudrais :
    -primo qu'il ne me demande pas si je veux activer les macros, car je veux que les macros soient systématiquement démarer dès l'ouverture.
    -secondo qu'il ne me demande pas si je veux mettre a jour mes liaisons, car je veux systématiquement que mes liaisons soient mises a jour.

    est ce que ce code convient ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.displayAlerts = False
    et ou le mettre (dans un modul, avec un sub, dans ThisWorkbook..) ?

    merci de me répondre .

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    pour le primo utilise selfcert.exe ( sous c:\application...\office \...) pour te créer une signature personnelle puis le menu outils "signature electronique" te permet de "signer" ton projet..

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2006
    Messages : 94
    Points : 52
    Points
    52
    Par défaut
    arf !
    j'ai pas ce logiciel !
    j'ai fait rechercher selfcert.exe et fouillé dans les dossiers office, mais rien de tel !

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2006
    Messages : 94
    Points : 52
    Points
    52
    Par défaut
    selfcert.exe ...
    je l'ai trouvé dans les fichiers d'installation !
    mais comment j'applique a mon fichier ?

    et il reste le second point !

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonjour

    pour le second point, il existe une solution: mais attention !
    ce sont tous les fichiers Excel qui seront pris en compte.

    Menu Outils
    Options
    Onglet "Modification"
    Décoche la case "confirmation de la mise à jour automatique des liens"
    Clique sur Ok pour valider



    bon apres midi
    michel

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2006
    Messages : 94
    Points : 52
    Points
    52
    Par défaut
    Grace a toi SilkyRoad, j'ai fait une recherche avec mots clef dans goolge, j'ai trouvé une solution !
    Mise à jour automatique des liens à l'ouverture
    Lorsque j'ouvre un classeur et qu'il y a des liaisons xl me demande toujours si je veux les mettre à jour. Comment faire pour que le message n'apparaisse plus et que les liaisons se mettent à jour automatiquement ? Outils/Options/onglet Modification et décoche Confirmation de la mise à jour
    automatique des liens.
    En VBA : workbooks.open("zaza.xls",
    Pour mettre à jour les liens à l'ouverture (0 pour ne pas mettre à jour).
    ou bien encore : recopie ce petit bout de code dans l'événement Workbook_Open du
    module ThisWorkbook
    du classeur dans lequel tu veux mettre à jour automatiquement les liaisons à
    l'ouverture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Workbook_Open() 
    Application.AskToUpdateLinks = False 
    ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources 
    End Sub
    Papou, Jacques Chaussard, Frédéric Sigonneau, (N°22)
    je dois donc mettre le code tel que pour mettre a jour tous seul sans accord de l'utilisateur !

    il me reste encore le premier point...
    Un peu plus bas sur la même page, ca revient a lancer un script au lieu du fichier excel directement :

    Eviter l'alerte macro sur un fichier particulier
    Avec un raccourci sur le bureau, comment lancer un fichier Excel contenant des macros sans avoir le message : " Le fichier tartenpion.xls Contient des macros Etc..." Avec Excel 2000, tu peux modifier le niveau de sécurité dans la base de
    registre (bonjour, la sécurité !). Ce genre de changements doit cependant être
    effectué avant l'ouverture d'Excel pour être pris en compte. Ce n'est donc pas
    possible à faire depuis un classeur. Par contre, un script fait très bien
    l'affaire. Il nécessite WScript.exe dans ton répertoire Windows (livré en
    standard depuis Win 98 je pense, sinon téléchargeable chez Microsoft).
    href="http://www.microsoft.com/france/scripting/default.php">http://www.microsoft.com/fran
    e/sc
    ipting/default.php

    Dans un fichier texte (Notepad) recopie le code ci-dessous puis enregistre le
    fichier sous, par exemple, "ModifTemporaireSecurite.vbs". Le nom importe peu,
    seule l'extension a de l'importance.
    Après avoir vérifié qu'Excel est bien fermé, le niveau de sécurité actuel (1, 2
    ou 3) est récupéré puis fixé à 1 (pas d'alerte macro). Le fichier qui
    t'intéresse est ensuite lancé et enfin le niveau de sécurité de départ est
    restauré.

    Un raccourci sur le bureau vers le script, tu changes d'icone et de nom, et le
    tour est joué.Le même genre de manip est peut-être
    possible avec Excel 97 et/ou Xp, si leur niveau de sécurité est également
    stocké dans le registre.

    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
    '===================
    'Excel doit être fermé
    On Error Resume Next
    Set objXl=GetObject(,"Excel.Application")
    If Not IsEmpty(objXl) Then
    Msgbox "Excel doit être fermé pour exécuter ce script..."
    WScript.Quit
    End If
     
    Err.Clear
     
    'objet script et chemin de la clé du registre pour Excel 2000
    Set wsh = WScript.CreateObject("WScript.Shell")
    Cle2000 = "HKCU\Software\Microsoft\Office\9.0\Excel\Security\Level"
     
    If Not IsExcel2000 Then
    MsgBox "Ce script ne peut désactiver l'alerte macro que pour Excel 2000..."
    WScript.Quit
    End If
     
    Dim NiveauSecurite, wsh
     
    'niveau de sécurité en début d'exécution
    NiveauSecurite = wsh.RegRead(Cle2000)
     
    'changement pour le niveau le plus faible
    wsh.RegWrite Cle2000, 1,"REG_DWORD"
     
    'ouverture du classeur sans alerte macro
    Retour=wsh.Run("D:\6OfficeVBA\ClasseurTestSecurite.xls", 3, False)
     
     
    'rétablissement du niveau de sécurité de départ
    wsh.RegWrite Cle2000, NiveauSecurite,"REG_DWORD"
     
    'pour vérifier si la clé pour Excel 2000 existe bien
    Function IsExcel2000()
    On Error Resume Next
     
    Res=wsh.RegRead(Cle2000)
    IsExcel2000=(Err=0)
    End Function
    Frédéric Sigonneau, (N°29)
    Il me resterai donc juste a remplacer les nom de l'exemple par le nom de mon fichier et mettre ce script dans mon dossier source avec un lien sur le bureau ou plutot modifier mon planificateur de tache pour ce nouveau fichier de lancement !

    pour l'instant mon fichier est actif donc je tenterai ce soir quand je pourai manipuler excel sans perturber mon rapatriement de données automatique.

    Si tout fonctionne, j'indiquerai résolu des que possible.

    merci de votre participation.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2006
    Messages : 94
    Points : 52
    Points
    52
    Par défaut
    Bon alors, d'apres le script j'ai pas excel 2000.. pourtant j'ai bien ca !
    - Bon il va falloir me dire comment faire pour apparaitre dans outils/macro/sécurité/sources fiables !!

    sinon la mise a jour des liaisons se fait bien automatiquement
    du coup j'ai un nouveau pb, car les liaisons sont en raccord avec un logiciel qui lance une application et qui va moins vite que la gestion des liaisons et donc j'ai un message d'erreur :
    Avec une boule contenant un i : Données hors programme inaccessible. Voulez vous lancer l'application 'TDPDDE.EXE' ? oui/non
    si je clique oui,Point d'exclamation : Impossible d'executer 'TDPDDE.EXE'. Ce programme ou l'un de ses composants est endommagé ou introuvable.
    - Comment faire pour empécher ses messages d'apparaitre puisque le temps de les cliquer tout est dans l'ordre?

    yahi

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2006
    Messages : 94
    Points : 52
    Points
    52
    Par défaut
    en fait le certificat s'incert via la fenetre de vb pas de excel d'ou que j'arrivai pas a le mettre.
    efficace des le relancement du fichier.

    par contre toujours rien pour la gestion de mes erreurs de liaisons !

    yahi

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2006
    Messages : 94
    Points : 52
    Points
    52
    Par défaut
    meme en désactivant la mise a jour des liaisons le pb perciste !

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2006
    Messages : 94
    Points : 52
    Points
    52
    Par défaut
    pour résoudre le dernier pb, j'ai transféré mes liaisons dans des
    Worksheets("feuil").Range("ref").Formulalocal = "ma liaison"
    du coup mes liaisons sont créés uniquement quand j'en ai besoin !

    yahi

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/11/2009, 09h26
  2. Réponses: 2
    Dernier message: 18/05/2008, 16h05
  3. Mettre a jour les données dans un formulaire
    Par benjiprog dans le forum VBA Access
    Réponses: 5
    Dernier message: 17/08/2007, 11h41
  4. Impossible de mettre a jour les plans de maintenance
    Par sqlakf76 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 27/11/2006, 18h06
  5. Mettre a jour les Parametres dans une requete SQL
    Par Tartar Ukid dans le forum C++Builder
    Réponses: 7
    Dernier message: 31/03/2004, 13h51

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