Problème d'adaption de programme d'un ordinateur à un autre

stepsbysteps

XLDnaute Nouveau
Bonjour,

J'ai réaliser mon projet VBA sous mon pc de bureau et voilà que lorsque j'ai voulu l'essayer sur mon pc portable il n'as plus marché

1. Au niveau du spreadsheet qui n'apparait plus et qui ne se trouve plus dans les compléments

2. Pareil pour la progress barre

Et comme erreur j'obtient :
" Can't find project or library " ou "Could not load object because it is not available on this machine ".

Merci d'avance
 

MichD

XLDnaute Impliqué
Re : Problème d'adaption de programme d'un ordinateur à un autre

Bonjour,

Pareil pour la progress barre

Si tu veux avoir une réponse sérieuse susceptible de résoudre ta difficulté,
tu devrais nous dire si ton code fait référence à des contrôles supplémentaires
dans la boîte d'outils formulaire?

Je crois que tu fais référence à ce contrôle : "Microsoft ProgreessBar Controle 6.0 (Sp6)"
dans ton code. Si tel est le cas, ajoute ce code dans le THISWORKBOOK de ton classeur :

VB:
Private Sub Workbook_Open()
Dim Refs As Object, Ref As Object
On Error Resume Next
With ThisWorkbook
    Set Refs = .VBProject.References
    For Each Ref In Refs
        If Ref.IsBroken Then
            Refs.Remove Ref
        End If
    Next
    .VBProject.References.AddFromGuid _
        "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}", 2, 0
End With
End Sub

Quand tu es sur ton PC, ouvre la fenêtre de l'éditeur de code d'Excel et regarde
à partir de la barre des menus / outils / références / la liste des références qui
sont cochées, as-tu la même liste lorsque tu ouvres la même fenêtre sur ton portable?
Que tu sois sur ton PC ou ton Portable, décoche toutes les références marquées : MANQUANTES.

Au niveau du spreadsheet qui n'apparait plus

Qu'est-ce qui n'apparaît plus? La feuille de calcul? Apporte des précisions...
 

stepsbysteps

XLDnaute Nouveau
Re : Problème d'adaption de programme d'un ordinateur à un autre

Merci des conseils,
J'avais déjà effectuer la suppression de MISSING merci

Alors dans un premier temps:
Code:
    Sheets("Suivi Dossier").Select
    Range("A1:G" & Findutableau(5)).Select
    Selection.Copy
    Suivi.Spreadsheet1.Range("A1").Paste
me donne l'erreur lors de la dernière ligne "Method or data member not found"

En effet Suivi Dossier est une feuille de mon classeur que je copie colle dans un spreadsheet dans un formulaire (ici Suivi)

Et Spreadhsheet est un contrôle que j'ajoute dans la Toolbox.
Je suis chez moi je n'ai plus les noms exactes des contrôles et sur mon pc portable Excel est en anglais
Mais qui plus est le contrôle spreadsheet ou si bien Toolbar ils sont introuvables dans les ajouts de contrôle..

Apparemment la progess barre marche sur l'ordinateur d'un autre amis qui lui à accès d'ajouter le contrôle toolbar.
Comme puis je faire pour l'ajouter s'il n'est pas cochable?

Et le problème persiste pour le spreadsheet pour lui aussi.

Merci pour la partie du code,je la testerai demain car sur ma version je ne peux plus ajouter la toolbar car elle n'est pas cochable
 

MichD

XLDnaute Impliqué
Re : Problème d'adaption de programme d'un ordinateur à un autre

Tu veux identifier la valeur de tes variables :
Findutableau(5) -> je suppose que cela représente le numéro de la ligne
Suivi représente le nom de ton formulaire
Spreadsheet1 représente le contrôle "Microsoft Office Web Components object library (Msowc.dll)"

P.S. Ce contrôle n'est plus supporté par Microsoft depuis la version Excel 2007. Si tu ouvres ce
fichier sous Excel 2007 et 2010, tu vas avoir des problèmes car la DLL dernière ce contrôle
n'est plus présente...

Ceci étant dit, assure-toi que la référence a la même version : Microsoft Office Web Components 9.0
dans la fenêtre de l'éditeur de code / références.

Sheets("Suivi Dossier").Select
Range("A1:G" & Findutableau(5)).Select
Selection.Copy
Suivi.Spreadsheet1.Range("A1").Paste

'Remplace la macro suggéré du message précédent par celui-ci et
espérons que le AddFromGuid soit bon pour ta version....

VB:
Private Sub Workbook_Open()
 Dim Refs As Object, Ref As Object
 On Error Resume Next
 With ThisWorkbook
     Set Refs = .VBProject.References
     For Each Ref In Refs
         If Ref.IsBroken Then
             Refs.Remove Ref
         End If
     Next
     .VBProject.References.AddFromGuid _
         "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}", 2, 0
     'références : Microsoft office Web components 9.0
     .VBProject.References.AddFromGuid _
         "{0002E540-0000-0000-C000-000000000046}", 1, 0
 End With
 End Sub
 

stepsbysteps

XLDnaute Nouveau
Re : Problème d'adaption de programme d'un ordinateur à un autre

Bonjour,

Findutableau(5) -> je suppose que cela représente le numéro de la ligne
Suivi représente le nom de ton formulaire
Spreadsheet1 représente le contrôle "Microsoft Office Web Components object library (Msowc.dll)"

Oui correct,

J'ai essayé la macro ca ne marche pas. Mais en enlevant le on error resume next
j'obtiens l'erreur :
"Run-time : 1004
Application defined or object defined error"
pour la ligne Set Refs = .VBProject.References
 

MichD

XLDnaute Impliqué
Re : Problème d'adaption de programme d'un ordinateur à un autre

Si tu as lu les commentaires avec la procédure que j'ai publiés,

Excel 2010 ne possède plus cette référence :
"Microsoft office Web components 9.0" et le contrôle Spreadsheet associé.

En conséquence, cette ligne de code ne passera pas puisqu'elle doit charger
la bibliothèque... et que cette dernière est absente.

'références : Microsoft office Web components 9.0
.VBProject.References.AddFromGuid _
"{0002E540-0000-0000-C000-000000000046}", 1, 0


Essaie de rouler cette procédure dans un tout nouveau classeur :
Obtiens-tu la même erreur?

VB:
Private Sub Workbook_Open()
  Dim Refs As Object, Ref As Object
  On Error Resume Next
  With ThisWorkbook
      Set Refs = .VBProject.References
      For Each Ref In Refs
          If Ref.IsBroken Then
              Refs.Remove Ref
          End If
      Next
      .VBProject.References.AddFromGuid _
          "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}", 2, 0
     End With
  End Sub
 

stepsbysteps

XLDnaute Nouveau
Re : Problème d'adaption de programme d'un ordinateur à un autre

Oui toujours la même erreur.
Qu'est ce que vous me conseiller à la place du spreadsheet? Y a-t-il une adaption de ce spreadsheet sur ma version d'Excel ou une version d'excel plus évoluée qui permettrait de prendre tout en considération?

Merci encore
 

MichD

XLDnaute Impliqué
Re : Problème d'adaption de programme d'un ordinateur à un autre

Il Oui toujours la même erreur.

Il n'y a aucune raison...

À partir de l'interface de calcul, onglet "développeur" du menu du ruban /
section : Code / commande : Sécurité des macro / Paramètres des macros /
As-tu coché : "Accès approuvé au modèle d'objet du projet VBA" ?

Dans la fenêtre de l'éditeur de code / barre des menus / outils / références /
décoche toutes les références manquées "MANQUANTES".

Je n'ai pas vu ton application, à part d'utiliser une feuille de calcul, je ne vois pas trop
par quoi tu peux remplacer ce contrôle...???
 

stepsbysteps

XLDnaute Nouveau
Re : Problème d'adaption de programme d'un ordinateur à un autre

Non jen'avais pas coché et je viens de le faire. Merci
Maintenant j'ai recompilé il compile la boucle for mais pour
Code:
     .VBProject.References.AddFromGuid _
         "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}", 2, 0
     'références : Microsoft office Web components 9.0
    .VBProject.References.AddFromGuid _
         "{0002E540-0000-0000-C000-000000000046}", 1, 0

pour le 1er .VB il affiche comme erreur : "Application defined or object defined error"
et si je met en commentaire la 1er pour la 2ème j'obtient comme erreur ; "Automotion error, Object library not registered" comme vous aviez dit donc.

J'utilise le spreadsheet pour afficher une feuille de calcul mais je veux continuer à utiliser des boutons sur cette page sans quitter le formulaire donc c'est pourquoi j'ai choisi un spreadsheet.

Pour la progress bar je l'ai mise en place lors de la génération d'un rapport word avec figures excel qui prend assez de temps donc je montre la progression à l'utilisateur.

Merci
 

MichD

XLDnaute Impliqué
Re : Problème d'adaption de programme d'un ordinateur à un autre

Nom de la bibliothèque : MSComctlLib
Location de la DLL sous Windows 7 64 bits :C:\Windows\SysWOW64\MSCOMCTL.OCX

Appellation de la référence dans la fenêtre du même nom.
Microsoft Windows Common Controls 6.0 (SP6)

Tu coches manuellement dans la fenêtre des références, celle que je viens d'indiquer
et tu exécutes la macro suivante. Elle va te donner les principales caractéristique que
tu pourras utiliser dans cette ligne de code, si tu as une autre version du contrôle.

.VBProject.References.AddFromGuid _
"{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}", 2, 0

Guid : "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}",
Major = 2
Minor = 0



VB:
Sub AfficherLesGuids_Propriétés()
Dim X As Integer, Sh As Worksheet
Dim NbRef As Integer

Set Sh = Worksheets.Add(After:=Sheets(Sheets.Count))

On Error Resume Next
With Sh
    .Name = "GUIDS"
    .Cells(1, 1) = "Nom de la bibliothèque"
    'Son appellation dans la fenêtre Reférences
    .Cells(1, 2) = "Description"
    .Cells(1, 3) = "Guid"
    .Cells(1, 4) = "Major"
    .Cells(1, 5) = "Minor"
    .Cells(1, 6) = "Chemin complet"
    With .Range("A1:F1")
        .Font.Bold = True
        .Font.Size = 12
    End With
    With Sh.Parent.VBProject.References
        NbRef = .Count
        X = 2
        For a = 1 To NbRef
            Sh.Cells(X, 1) = .Item(a).Name
            Sh.Cells(X, 2) = .Item(a).Description
            Sh.Cells(X, 3) = .Item(a).GUID
            Sh.Cells(X, 4) = .Item(a).Major
            Sh.Cells(X, 5) = .Item(a).Minor
            Sh.Cells(X, 6) = .Item(a).fullpath
            X = X + 1
        Next
    End With
    .Range("A1").CurrentRegion.EntireColumn.AutoFit
End With
End Sub

Au-delà de ça, je ne puis pas grand chose!
 

stepsbysteps

XLDnaute Nouveau
Re : Problème d'adaption de programme d'un ordinateur à un autre

Bonjour,

J'ai bien ce document au bon endroit;
Nom de la bibliothèque : MSComctlLib
Location de la DLL sous Windows 7 64 bits :C:\Windows\SysWOW64\MSCOMCTL.OCX

Que j'ai donc ajouté aux réfèrences.

Pour la compilation de votre macro:
J'obtiens le classeu en fichié joint.
Comme dois-je utiliser ces résultats

Sinon en compilant mon pogramme toujours le même problème

Encore merci.
 

Pièces jointes

  • test.xlsx
    9.8 KB · Affichages: 112
  • test.xlsx
    9.8 KB · Affichages: 123
  • test.xlsx
    9.8 KB · Affichages: 129

MichD

XLDnaute Impliqué
Re : Problème d'adaption de programme d'un ordinateur à un autre

Tu places cette procédure dans le THISWORKBOOK de ton classeur.
Cette procédure va s'assurer que toutes les bibliothèques suivantes
seront chargées correctement à l'ouverture du fichier. Attention, si le
fichier responsable d'une de ces bibliothèques, évidemment cette
bibliothèque ne pourra être chargé.

Si le fichier contient toujours le contrôle "SpeadSheet" dans le formulaire,
tu risques d'avoir des problèmes sous Excel 2010. L'absence de la bibliothèque
ne permettra pas à Excel de compiler le projetVBA du fichier et pas conséquent
susceptible de provoquer des erreurs.

VB:
Private Sub Workbook_Open()
Dim Refs As Object, Ref As Object
On Error Resume Next
With ThisWorkbook
    Set Refs = .VBProject.References
    For Each Ref In Refs
        If Ref.IsBroken Then
            Refs.Remove Ref
        End If
    Next
    'Bibliothèque : Microsoft Windows Common Controls 6.0(sp6)
    .VBProject.References.AddFromGuid _
        "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}", 2, 0
    'Microsoft Forms 2.0 Object Library
    .VBProject.References.AddFromGuid _
        "{0D452EE1-E08F-101A-852E-02608C4D0BB4}", 2, 0
    'Microsoft ActiveX Data Objects 2.8 Library
    .VBProject.References.AddFromGuid _
        "{2A75196C-D9EB-4129-B803-931327F72D5C}", 2, 8
    'Microsoft ActiveX Data Objects Recordset 2.8 Library
    .VBProject.References.AddFromGuid _
        "{00000300-0000-0010-8000-00AA006D2EA4}", 2, 8
    'Microsoft Word 14.0 Object Library
    .VBProject.References.AddFromGuid _
        "{00020905-0000-0000-C000-000000000046}", 8, 4
    'Microsoft Outlook 14.0 Object Library
    .VBProject.References.AddFromGuid _
        "{00062FFF-0000-0000-C000-000000000046}", 9, 3
End With
End Sub
 

stepsbysteps

XLDnaute Nouveau
Re : Problème d'adaption de programme d'un ordinateur à un autre

Encore merci pour ta macro je l'utilise à chaque ouvertue de mon fichier sur les différents PC.
Une dernière question, je n'ai pas l'impression qu'elle décoche les références dites "missing" ou "manquante"
Tu aurait une idée comment apporter cette modif?
J'ai essayé ref.missing suivant ton raisonnement mais pas l'impression que ca soit concluant
 

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote