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

Macros et VBA Excel Discussion :

Cocher décocher automatiquement Réferences?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Par défaut
    Bonjour,

    Je pense que tout est dans le titre, j'ai un fichier excel qui utilise certaine reference, je voulais savoir comment faire pour activer automatiquement les référence nécéssaire...

    Merci !

    J'ai trouvé plusieurs liens avec des codes mais aucun ne fonctionne.
    J'en ai trouvé un qui conseille de charger les référence à partir des fichiers.
    Le code ce base sur une recherche du repertoir système.

    Or, mes references à activer font parties du repertoir :
    C:\Program Files\Fichiers communs\System\ado\msadox.dll

    J'ai donc modifié le code pour pouvoir adapté la localisation du fichier au Fichier Commun.

    Voici mon code :

    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
     
    'TOUT EN HAUT
    Private Declare Function GetSystemDirectory Lib "kernel32" _
    Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, _
     ByVal nSize As Long) As Long
     
    Function CheminFichierCommun()
     Dim RetVal As Long
     Dim SysDir As String
     Dim LettreLecteur As String
     SysDir = Space$(256)
     RetVal = GetSystemDirectory(SysDir, Len(SysDir))
     If RetVal <> 0 Then
     LettreLecteur = Left$(SysDir, RetVal)
     End If
    'Je réutilise le chemin systeme mais je copie seulement les 3 premiers charactère.
    'De ce fait j'ai la lettre du lecteur.
     LettreLecteur = Mid(LettreLecteur, 1, 3)
     CheminFichierCommun = LettreLecteur
    End Function
     
     
    Sub TesterBibliothequeFormulaire2()
     Dim File As String
      File = CheminFichierCommun & "Program Files\Fichiers communs\System\ado\msadox.dll"
      On Error Resume Next
      ThisWorkbook.VBProject.References.AddFromFile File
     End Sub
    Si je met "On Error Resume Next" en commentaire, voici le message d'erreur que j'ai :
    Erreur d'exécution '1004':
    La méthode 'VBProject' de l'objet'_WorkBook' a échoué.

    Merci de m'aider car là je ne comprend rien du tout !

    J'ai aussi essayé avec ce code :
    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
     
    Sub FixRef()
     
        'Changes reference from ADO x.x to ADO 2.8
        Dim wb As Workbook
        Dim ref As Variant
        Dim sRefFile As String
     
        'The file path for ADO 2.8
        sRefFile = "C:\Program Files\Fichiers communs\System\ado\msadox.dll"
     
        'Open the workbook to change
       ' Set wb = ActiveWorkbook
     
        'Loop through the references and delete the ADO one
        For Each ref In ThisWorkbook.VBProject.References
            If InStr(1, ref.Description, "ActiveX Data Objects") > 0 Then
                ThisWorkbook.VBProject.References.Remove ref
                Exit For
            End If
        Next ref
     
        'Add the new reference
        ThisWorkbook.VBProject.References.AddFromFile sRefFile
     
        'wb.Save
        'wb.Close
     
    End Sub
    La première fois que j'ai lancé ce code j'ai eu un message du genre :

    "La modification n'est pas fiable" un truque dans le genre...

    Puis maintenant le message reste le même que pour le code du post ci dessus :

    Erreur d'exécution '1004':
    La méthode 'VBProject' de l'objet'_WorkBook' a échoué.


    D'avance merci.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Par défaut
    J'ai trouvé... Mais une solution soulève un autre problème...

    Il fallait que j'active dans excel une option :

    Outil => Macro => Securité puis Onglet Editeurs approuvés=> Cocher tout en bas faire confience au projet Visual Basic.

    Je voudrais que cette manipulation soit automatique car le fichier sera utilisé sur 700 postes...

    Et ça risque d'énerver les gens s'il faut qu'ils activent à la main cette option...

    Merci de votre aide.

    Cordialement, jojo

  3. #3
    Membre averti

    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Mai 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Mai 2012
    Messages : 2
    Par défaut Solution désactiver l'alerte Office Excel via VBA

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 508
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 508
    Par défaut
    Salut,

    S'amuser avec les références, je ne le conseille pas. C'est très casse-gueule.
    Mieux vaut faire du Late Binding.

    Quand aux paramètres de sécurité, ils ne sont pas contrôlable par VBA, ce qui est logique (sinon n'importe quel script frauduleux pourrait s'auto déclarer comme "approuvé").

Discussions similaires

  1. cocher-décocher une case
    Par baillador dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/04/2006, 13h43
  2. [JavaScript] Problème cocher/décocher checkbox
    Par Le_tzao dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 01/12/2005, 10h07
  3. [checkbox] décocher automatiquement
    Par debdev dans le forum Composants
    Réponses: 2
    Dernier message: 01/08/2005, 13h09
  4. Comment cocher/décocher plusieurs "checkbox"?
    Par Crazynoss dans le forum ASP
    Réponses: 2
    Dernier message: 15/05/2005, 23h38
  5. [HTML] [Formulaire] Empêcher de cocher/décocher une checkbox
    Par requiemforadream dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 02/05/2005, 15h46

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