|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre actif
![]() Marc Agent de maitrise Inscription : novembre 2007 Messages : 243 ![]() |
Bonjour le forum,
Je vais tenter d'être clair. Afin de contrer une erreur de compilation (DTPicker qui disparait à cause de la MSCOMCT2 présente mais non enregistrée dans le registre), j'ai créé un contrôle sur les références présentes à l'origine (ma source) par rapport au moment de l'ouverture sur un autre poste. J'ajoute si besoin les références manquantes sur le poste. Mais j'ai toujours une erreur de compilation due au DTPICKER. Y a-t-il un moyen de capter cette erreur afin de créer le DTPICKER dynamiquement? Merci d'avance. |
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() Inscription : juillet 2011 Messages : 141 ![]() |
C'est un contrôle qui contrôle les contrôles ? A quel niveau fonctionne-t-il ? Avec VBProject.References ? Il lit la base de registre ? Est-il capable de détecter des contrôles non encore enregistrés ? Teste-t-il la présence de C:\Windows\system32\MSCOMCT2.OCX [Microsoft Windows Common Controls-2 6.0 (SP6)] ?
Dans la fenêtre d'Exécution immédiate (Ctrl+G) du VBE d'Excel, copier-coller et valider par ENTER : Code :
For Each ref in ActiveWorkbook.VBProject.References: ? ref.Description & ": broken? " & ref.IsBroken & VbCrLf & ref.FullPath: Next C:\Program Files\Common Files\Microsoft Shared\VBA\VBANNN.dll ... OLE Automation: broken? False C:\Windows\system32\stdole2.tlb Microsoft Forms 2.0 Object Library: broken? False C:\Windows\system32\MSForms.twd ... Est-ce manuel à la souris par l'utilisateur dans le VBE "Tools" > "References" [x] Control Ou est-ce un programme qui est capable d'ajouter les références manquantes ? Dans une application VBA d'une feuille Excel ? Dans votre outil de contrôle des références ? Capturer l'erreur dépendra où elle apparaît. A partir du moment où il y a erreur de référence, pour la résoudre il faut registrer la bonne version du composant manquant avant toute tentative de création a fortiori dynamique. |
|
|
10
|
|
|
#3 | ||
|
Membre actif
![]() Marc Agent de maitrise Inscription : novembre 2007 Messages : 243 ![]() |
Bonjour le forum,
Merci MattChess de la réponse. Je vais tenter d'apporter des éclaircissements point par point. Quand je parle de contrôle Citation:
Citation:
Mon appli, je l'ai écrite avec un formulaire comme support. Le DTPICKER est présent sur ce formulaire. Sur certains PC, avant l’exécution de la "Private Sub Userform Initialize" le débogage s'arrête sur la ligne : et il a disparu du formulaire. C'est pourquoi, j'ai tenté de rajouté les références et que je me demande si cette erreur de compilation est captable ou non et comment? Encore merci |
||
|
|
00
|
|
|
#4 |
|
Membre éclairé
![]() Inscription : juillet 2011 Messages : 141 ![]() |
Supposons que le lanceur VBA en amont de l'application cible ayant le formulaire a ajouté la référence au DtPicker.
Il faut détailler l'expression "en amont".
Autrement dit comment avez-vous testé que l'outil qui ajoute les références manquantes fonctionne ? C-a-d qu'après son action, l'application cible doit démarrer correctement. Détaillez le scénario chronologique par rapport à l'instant t0 d'exécution de l'application cible en faisant apparaître le moment où l'erreur apparaît. Exemple de scénario chronologique du lanceur d'application : t-2 : le lanceur ajoute les références au projet de l'application cible. Le lanceur est-il dans le même classeur que l'application cible ou pas ? t-1 : le lanceur lance l'application par ... t-0 : l'application cible ne se lance pas à cause de l'erreur n° NNNN sur le DtPicker. Préciser le n° et sa description. Dans la fenêtre d'Exécution immédiate (Ctrl+G) du VBE d'Excel, copier-coller et valider par ENTER : 0 Indiquez ce que retourne le status d'erreur de VBA quand le déboguer s'arrête sur la ligne du DtPicker1. (*) : Dans le cas où le lanceur ne fait que "regarder la présence des références", détaillez le scénario en précisant l'interaction manuelle de l'utilisateur pour ajouter les références et la reprise du lancement de l'application cible. Elément de diagnostic : Il faut séparer le temps t-2 en mode design où on ajoute les références à un projet et le temps t0 où on peut l'exécuter l'application cible. |
|
|
10
|
|
|
#5 |
|
Expert Confirmé
![]() |
bonjour
selon l'exploitation (7,xp,vista) le datapicker n'est pas le meme)c'est un probleme qui a fait l'objet de plusieures discutions dans le forum tu devrais facilement retrouver ces discutions en fesant une recherche mais cela dit l'ideal sa serai de l'ajouter dynamiquement dans ton forme en place et lieu qui lui est prevu tout en laissant les macro liées a son evenement meme si le dta n'est pas la ainsi le data picker qui s'affiche serai le bon a chaque fois puisque tu sais ajouter un controle des controls tu sera faire une macro pour ajouter ton datapicker par macro au plaisir
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
|
|
10
|
|
|
#6 | |
|
Membre actif
![]() Marc Agent de maitrise Inscription : novembre 2007 Messages : 243 ![]() |
Bonjour le forum,
Merci à tous les 2 pour les réponses. Tout d'abord, pour répondre à MattChess à son PS Citation:
Pour ma part, je ne me suis jamais renseigné comment sont attribués les points, ni à quoi cela sert. Si je suis dans la capacité d'apporter, à mon faible niveau, une piste à une personne, j'apporte une réponse et en général, je me base sur les posts qui n'ont pas de réponses car moi même je suis assez déçu quand aucune réponse n'est postée. J'espère que mes propos ne seront pas sujet à polémique car ce n'est pas ma volonté. Pour essayer de vous répondre au sujet, le lanceur ouvre mon appli avec la méthode que vous connaissez ensuite la procédure "Workbook_Open" fait le reste. Ce qui me gène, pour éclairer Patrick, c'est que l'erreur ne se produit pas sur tous les PC et que je n'ai pas de numéro d'erreur juste |
|
|
|
00
|
|
|
#7 |
|
Expert Confirmé
![]() |
bonjour
on s'en fou qui a le plus de point ou pas! cela dit en remerciement au réponses il ne coûte rien de voter mais c'est a chacun de décider sa conduite ceci étant dis je réitère mon opinion sur ton problème il se trouve par exemple que j'ai un fichier avec un datapiker que j'utilise sur plusieurs ordis les ordis: 1 er seven premium 2 eme xp avec le sp3 3 eme xp avec le sp2 4eme avec vista et les quatre ordis on un data picker ou une librairie (je ne sais la quelle)différente ,ce qui fait que j'ai été obligé de faire ce que je t'ai conseillé plus haut et effectivement le numéro de l'erreur et différent a chaque fois au plaisir
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
|
|
10
|
|
|
#8 |
|
Membre actif
![]() Marc Agent de maitrise Inscription : novembre 2007 Messages : 243 ![]() |
Bonjour Patrick,
En effet, on se fiche du nombre de points, et comme je ne savais pas qu'il fallait voter, je ne le faisais pas. Je me contentais du remerciement. l'important étant la réponse que l'on peut donner. Sinon, à quel moment voter? à chaque réponse ou au moment du résolu? Pour mon souci, tous les PC sont VISTA. Comment récupérer l'erreur de compil qui ne se produit que sur des PC dont le MSCOMCT2 n'est pas enregistré dans le registre et pourtant présent sur le PC. |
|
|
00
|
|
|
#9 |
|
Expert Confirmé
![]() |
bonjour
pour le vote, oui si tu en a envie bien sur c'est a chaque reponse qui te semble pertinante je dis bien pertinante et non pas des votes de complésence et pour ton souci pourquoi la librairie n'est pas enregistrée??? pourquoi ne le fait tu pas? si tu a essayé et que ca ta généré un erreur tu dois trouver l'équivalent compatible avec vista par hazard travaillerais tu avec office 64 bits ?? si c'est le cas je te souhaite bon courage par cequ'a ce jour a ma connaissance le probleme n'est pas résolu ![]() aun plaisir
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
|
|
00
|
|
|
#10 |
|
Membre actif
![]() Marc Agent de maitrise Inscription : novembre 2007 Messages : 243 ![]() |
Bonjour Patrick,
Ce sont nos PC entreprises qui sont ainsi, je suppose que qu'ils sont en 64. Nous n'avons pas accès au compte admin et pour les PC qui nous supprime le DTPicker, je voulais le recréer dynamiquement. |
|
|
00
|
|
|
#11 |
|
Membre actif
![]() Marc Agent de maitrise Inscription : novembre 2007 Messages : 243 ![]() |
Bonsoir le forum,
Comme MattChess me l'a suggéré, je vais essayer de détailler le scénario jusqu'à l'erreur. 1. Je lance un fichier qui compare la liste de références VBA présentes sur mon PC (que j'ai préalablement préparée dans une feuille), avec les références actives sur le PC qui désire utiliser l'application. 2. Ce même fichier lance l'ouverture de la macro principale et reste en attente. 3. L'application réalise plusieurs contrôles et termine par : C'est à ce moment, que sur certains PC, l'erreur de compilation intervient sous la forme d'un message WINDOWS sans numéro d'erreur. En débogant, je me trouve sur la procédure "Private Sub Userform_Initialize()" et le contrôle DTPICKER est surligné en jaune. Je ne sais pas si je peux contrôler la présence ou non du DTPICKER avant l'exécution de cette procédure. Est-il possible de "capter" le message WINDOWS pour permettre de corriger automatiquement l'erreur? Je ne sais pas comment exprimer autrement, ce que je rencontre et espère avoir été clair dans mes explications. Merci d'avance à vous. |
|
|
00
|
|
|
#12 | |||
|
Membre actif
![]() Marc Agent de maitrise Inscription : novembre 2007 Messages : 243 ![]() |
Bonjour le forum,
Je continue de chercher une solution à mon souci: Ce matin j'ai testé : Code :
Citation:
|
|||
|
|
00
|
|
|
#13 |
![]() ![]() |
Déjà avant d'essayer de le faire par le code, sur un poste ou tu as l'erreur DatePicker, que faut-il que tu fasse pour corriger l'erreur ?
poser un nouveau contrôle sur ta form suffit ?
__________________
page à bbil : dernières entrées : Débuter en VB6 Mes contributions en téléchargement Les pages VB : FAQs, Tutoriels VB, Outils , Sources, WIKI Impératif "A LIRE AVANT DE POSTER"
|
|
00
|
|
|
#14 |
|
Membre actif
![]() Marc Agent de maitrise Inscription : novembre 2007 Messages : 243 ![]() |
Bonjour bbil,
Si j'ajoutes manuellement le DTPicker au moment du plantage, je n'ai aucun problème. Mais cela reste manuel, je voulais ne plus avoir l'erreur pour éviter le débogage. |
|
|
00
|
|
|
#15 | ||
|
Membre actif
![]() Marc Agent de maitrise Inscription : novembre 2007 Messages : 243 ![]() |
Bonsoir le forum,
Ce soir, sur la toile, j'ai trouvé une ligne de code pour créer dynamiquement un DTPicker sur un formulaire. J'ai testé sur un formulaire vierge et cela a l'air de vouloir fonctionner. Voici le code que j'ai écris: Code :
|
||
|
|
00
|
|
|
#16 |
|
Expert Confirmé
![]() |
bonjour
j'ai testé chez moi et erreur: chaîne de classe incorrecte au plaisir
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
|
|
00
|
|
|
#17 | ||
|
Membre actif
![]() Marc Agent de maitrise Inscription : novembre 2007 Messages : 243 ![]() |
Bonsoir Patrick et le forum,
Le souci n'est pas encore résolu. Sur les PC qui me génèrent l'erreur, la ligne Code :
Application.SendKeys ("~ (tilde)")'touche entree pour valider une eventuelle boite de dialogue Citation:
Après mise en commentaires de la ligne, le code s'exécute sans souci, sauf qu'il ne crée pas le contrôle. Par contre, en pas à pas, la variable Citation:
Je suis déçu en toujours à la recherche de la solution. |
||
|
|
00
|
|
|
#18 |
![]() ![]() |
permet de simuler l'action sur la touche entrée ... le texte "(tilde)" c'est juste un commentaire sur cette tilde : ~
__________________
page à bbil : dernières entrées : Débuter en VB6 Mes contributions en téléchargement Les pages VB : FAQs, Tutoriels VB, Outils , Sources, WIKI Impératif "A LIRE AVANT DE POSTER"
|
|
00
|
|
|
#19 |
|
Membre actif
![]() Marc Agent de maitrise Inscription : novembre 2007 Messages : 243 ![]() |
Bonsoir bbil et le forum,
Je ne savais pas, en plus sur mon PC perso, cela ne m'a rien généré, donc je ne me suis pas méfié. N'as-tu jamais été confronté à un problème comme le mien? Si oui, comment l'as-tu contourné? Je suis assez surpris que personne n'ai eu à résoudre un problème identique. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com