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 :

Activation bibliothèques via VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 306
    Par défaut Activation bibliothèques via VBA
    Bonjour,

    Mon nouveau problème (j'en ai environ 1 par heure) est le suivant :

    Je suis sur une version d'office souvent plus avancée que celle de mes utilisateurs, du coup, les bibliothèques/références que j'active sont "manquantes" chez eux (p.ex : je suis sur ms ppt 11.0 tandis qu'eux n'ont droit qu'à la 10.0

    Par ailleurs, à toutes fins utiles, je précise que leur version de bibliothèque antérieures est suffisante pour mes macros font, mais comme ces versions sont absentes chez moi (les anciennes), je ne peux pas les activer...

    Vous sentez l'embrouille ?

    Comment donc activer chez eux la dernière version de leur bibliothèque ? (sachant, bien évidemment, sinon ce serait trop simple, que leur parc n'est pas homogène, et qu'ils faut y aller poste par poste)

    Je ramasse les copies dans 1 heure.

    Merci évidemment...

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Par défaut
    bonsoir,

    si tu ne peux pas travailler avec les liaisons statiques (versions differentes entre les postes), utilises les liaisons dynamiques.
    VOIR AIDE : createobject

  3. #3
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Une copie intéressante, celle de Michel Blavin http://sinarf.developpez.com/access/autoref/

    Bonne lecture,

    PGZ

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Par défaut
    As-tu essayé d'enregistrer ton classeur dans un format de version antérieurs (par Fichier/Enregistrer sous... et le ComboBox 'Type de fichier')? Je ne prétend pas que ça fonctionne mais, juste une idée comme ça...

  5. #5
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Il y a un truc intéressant dans l'idée de Singular. Si tu connais la configuration la plus ancienne, par ex Excel 2000 avec les versions 9 je crois, tu vas sur ce poste et tu sélectionnes les bibliothèques. C'est cette version qu'il faut distribuer, sans l'ouvrir sur un autre poste entre temps.
    Sur les versions plus récentes, je pense que la compatibilité ascendante devrait faire merveille. Dès l'ouverture les biblis dans leur version plus récentes devraient être sélectionnées.
    A vérifier.

    Bon courage,

    PGZ

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 306
    Par défaut
    Merci à tous.
    Beaucoup de bonnes idées.
    Je teste ca lundi.

    Merci encore.

  7. #7
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    bonsoir,

    Je pense que tu peux faire un test si la référence est manquante avec IsBroken, si c'est le cas, la supprimer et ensuite activer la bonne version
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    With ActiveWorkbook.VBProject
       'si la référence est manquante
       If .References("Nom_De_Ref").IsBroken Then
          'suppression de la référence manquante
          .References.Remove .References("Nom_De_Ref")
       End If
       'ajout de la ref
       .References.AddFromGuid GUID, 0, 0
    ' avec GUID de la forme "{00000000-0000-0000-0000-000000000000}"
    ' et 0 pour Major et Minor
    End With
    cordialement

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Ou tu peux simplement faire un test sur la version de l'appli et utiliser le code de Fred
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Select case Application.Version
          Case "10.0"
               '...
          Case "11.0"
               '...
          Case "8.0e"
               '...
      Case else
          msgbox "Version inconnue (!)"
    End select
    A+

    Je complète : Pour connaître le "GUID" des références de ton projet, tu peux utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With ActiveWorkbook.VBProject
        For j = 1 To .References.Count
                MsgBox .References(j).GUID
                MsgBox .References(j).FullPath 'le nom et chemin du dll
        Next
    End With
    Ainsi, en tâtonnant, tu trouveras laquelle tu devras activer...
    Je n'ai pas le tps d'approfondir mais voilà déjà une voie
    A+

  9. #9
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    Bonjour à tous

    J'avais un peu plus de temps qu'ouskel'n'or

    macro pour lister les références du classeur actif
    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
    43
    44
    45
    Option Explicit
    Option Base 1
     
    Sub ListeReferences()
     
    Dim Awbk As Workbook
    Dim ref As Object, GUID As String
    Dim majeure As Integer, mineure As Integer
    Dim tabTitre As Variant
    Dim tabVraiRef() As Variant
    Dim k As Integer
    Dim Sh As Worksheet
     
    'il faut ajouter une référence à Microsoft Visual Basic for Application Extensibility
    On Error GoTo Suite
    ThisWorkbook.VBProject.References.AddFromGuid "{0002E157-0000-0000-C000-000000000046}", 0, 0
    Suite:
     
    Set Awbk = ActiveWorkbook
    tabTitre = Array("Nom", "GUID", "Major", "Minor", "Type", "Chemin")
    k = 0
    'boucle sur les références
    For Each ref In Awbk.VBProject.References
      k = k + 1
          ReDim Preserve tabVraiRef(6, k)
          tabVraiRef(1, k) = ref.Name
          tabVraiRef(2, k) = ref.GUID
          tabVraiRef(3, k) = ref.Major
          tabVraiRef(4, k) = ref.Minor
          tabVraiRef(5, k) = ref.Type
          tabVraiRef(6, k) = ref.FullPath
    Next
    'Ajout d'une feuille à la fin
       Sheets.Add(After:=Sheets(Sheets.Count)).Name = "Références"
       Set Sh = ActiveSheet
    'Présentation et formatage
       With Sh
          .Range(Cells(2, 1), Cells(k + 1, 6)).Value = Application.Transpose(tabVraiRef)
          With .Range(Cells(1, 1), Cells(1, UBound(tabTitre)))
             .Value = tabTitre
             .Font.Bold = True
             .EntireColumn.AutoFit
          End With
       End With
    End Sub
    cordialement

Discussions similaires

  1. Ajouter une bibliothèque via vba
    Par vavou dans le forum VBA Access
    Réponses: 9
    Dernier message: 16/07/2014, 14h35
  2. comment modifier le nom d'une colonne via VBA?
    Par Invité dans le forum Access
    Réponses: 6
    Dernier message: 24/11/2005, 15h36
  3. Réponses: 2
    Dernier message: 24/11/2005, 11h46
  4. Faire des modifs sur une sheet excel Read Only via VBA
    Par beegees dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/11/2005, 18h02
  5. Manipulation du carnet d'adresse outlook via VBA Excel?
    Par Dragon Tours dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/11/2005, 12h16

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