Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

mise au point d'une dll travaillant sur Excel

11 réponses
Avatar
PM
Bonjour !

Je me suis mis à cette dll.
Quelques adaptations du code Excel VBA sont nécessaires.
La dll semble exiger la définition complète de l'objet. Donc, pas de
sheets(3). select
cells(1,1).select
mais oSheet.activate et oSheet.cells(1,1) etc.

D'où deux questions additionnelles :

1. existe-t-il une façon intelligente de débugger ? Ce matin, j'ai travaillé
bestialement dans MonProjetDll.vbp, en compilant la dll, puis en ouvrant
Excel, en faisant l'essai, en refermant Excel (pour pouvoir compiler à
l'étape suivante), et en progrssant pas à pas avec des exit sub pour
déterminer où ça plante... C'est pas génial génial.

2. pourquoi n'aime-t-il pas oSheet.select et accepte-t-il oSheet.activate ??

Merci !

1 réponse

1 2
Avatar
PM
Juste ! Comme d'hab...

J'ai aussi trouvé vbMsgBoxSetForeground.


"ng" a écrit dans le message de news:

Salut,

Pr la msgbox : vbSystemModal.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

Gloops wrote:
Salut,

Ah, ça, j'ai vu des sociétés internationales d'édition de logiciel
tomber dans le panneau (pas forcément par appel à une DLL, mais
l'affichage d'un message en arrière-plan, ça s'est vu).

Je me demande si SetFocus pourrait aider, mais apparemment ça
imposerait une programmation beaucoup plus lourde, car par défaut
MsgBox ne fournit pas son hWnd ...

Il m'est arrivé de créer un formulaire pour l'affichage d'un message,
afin que l'utilisateur puisse copier le message dans le
presse-papiers. Gérer le focus sur le message pourrait être une autre
motivation pour faire ça. Une solution plus légère est de trouver le
hWnd du message par FindWindowEx.

Cela étant si après compilation le problème ne se pose plus, c'est
peut-être moins motivant.
_________________________________
PM a écrit, le 08/11/2004 11:18 :
Merci bcp !

C'est pas encore la simplicité de la programmation directe, mais je
crois qu'on ne peut pas faire mieux.
L'idée de travailler avec un module de classe dans VBA permet de
dégrossir le travail, mais ne me paraît pas solutionner tout.

Par exemple, j'ai une MsgBox dans VBA.
Quand je la transfère dans un module de classe dans Excel VBA, pas
de pb. Quand je la passe en VB, elle s'affiche dans le programme VB
et reste en arrière plan d'Excel.
J'ai pas encore trouvé la soluce, si ce n'est de laisser ce bout là
dans VBA...

Encore merci !


"ng" a écrit dans le message de news:


Salut,

Il faut veiller à avoir démarrer ton projet excel apres le
lancement (F5) de la dll.
Une autre solution consite à utiliser ta classe de ta dll dans ton
projet excel come une classe normale puis de la mettre ds une dll
seulement à la fin.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

PM wrote:

Merci Nicolas,

ta réponse pointe sur ce que je cherche...
... mais je n'ai pas vraiment compris (Gloops m'a permis, par sa
question, de faire un essai... infructueux).

J'ai cliqué le bouton "lecture" comme tu dis, donc Exécuter sans
compilation (F5).
Je laisse la dll en mode exécution.
Dans Excel je lance mon appel, comme tu me l'as expliqué l'autre
jour. Il me dit qu'il ne reconnaît pas la méthode appelée (ce qui
paraît logique parce qu'elle n'a pas été compilée. D'ailleurs, on
le voit bien en rédigeant l'appel : il ne reconnaît comme objet
que ce qui a déjà été compilé ;-). Retour à la case départ).
Il faut sans doute une sorte d'initialisation en VB des classes et
méthodes non encore compilées (??)

Merci. A bientôt.


"ng" a écrit dans le message de news:


SAlut,

Tu n'es pas obligé de compiler, il suffit de cliquer sur la bouton
"lecture" de ton projet dll et elle sera utilisable ds excel sans
etre compilée et pourra etre debuggée depuis vb.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

PM wrote:

Bonjour !

Je me suis mis à cette dll.
Quelques adaptations du code Excel VBA sont nécessaires.
La dll semble exiger la définition complète de l'objet. Donc,
pas de sheets(3). select
cells(1,1).select
mais oSheet.activate et oSheet.cells(1,1) etc.

D'où deux questions additionnelles :

1. existe-t-il une façon intelligente de débugger ? Ce matin,
j'ai travaillé bestialement dans MonProjetDll.vbp, en compilant
la dll, puis en ouvrant Excel, en faisant l'essai, en refermant
Excel (pour pouvoir compiler à l'étape suivante), et en
progrssant pas à pas avec des exit sub pour déterminer où ça
plante... C'est pas génial génial. 2. pourquoi n'aime-t-il pas
oSheet.select et accepte-t-il oSheet.activate ??
Merci !
















1 2