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

Erreur d'exécution avec VBA

6 réponses
Avatar
Hermon Daniel
Bonjour,
Je cherche à comprendre la programmation sous VBA. pour y parvenir, j'ai
créé un formulaire nommé Formulaire1 sous Access 2003.
Pour VBE , j'ai coché ( entre autres )pour Outils|Réf:
-réf VBA pour micro application
-microsoft DAO 3.6
Dans un nouveau module, j'ai créé une fonction que j'ai voulu faire
foncionner avec F8:
dim MonFormulaire as Form
set MonFormulaire = Forms("Formulaire1")
A ce niveau, la procédure s'arrête avec les message suivant:
Erreur d'exécution 2450
Impossible de trouver le formulaire (formulaire1) auquel il est fait
référence dans une expression de macro ou un code Visual Basic

Merci pour votre aide à venir.
Cordialement
DH

6 réponses

Avatar
pascal58
On 4 mai, 14:30, "Hermon Daniel" wrote:
    Bonjour,
Je cherche à comprendre la programmation sous VBA. pour  y parvenir, j'ai
créé un formulaire nommé Formulaire1 sous Access 2003.
Pour VBE , j'ai coché ( entre autres )pour Outils|Réf:
    -réf VBA pour micro application
    -microsoft DAO 3.6
Dans un nouveau module, j'ai créé une fonction que j'ai voulu faire
foncionner avec F8:
    dim MonFormulaire as Form
    set MonFormulaire = Forms("Formulaire1")
A ce niveau, la procédure s'arrête avec les message suivant:
    Erreur d'exécution 2450
    Impossible de trouver le formulaire (formulaire1) auquel il est f ait
référence dans une expression de macro ou un code Visual Basic

Merci pour votre aide à venir.
Cordialement
        DH



Bonjour Daniel,
Vaste programme !
Tout d'abord pour apprendre le VBA avec Access, il faut d'abord
maitriser Access ou tout au moins bien le comprendre.
Ensuite, Il ne faut pas mettre la charue avant les boeufs et éviter de
commencer à manipuler des objets avant de connaître les bases comme
fonctions, procédures, événements, variables, boucles, décisions, . ..

Commencez par ceci : http://www.pise.info/algo/index.htm
(Algorithmique et programmation pour non-matheux)
Du point de vue syntaxe et langage, le VBA est de la même famille que
le VB6.

Et pour ce qui est des premières lignes de code que vous avez tapées,
oubliez-les, de même que les références que vous avez ajouté.

Cdt,
Pascal
Avatar
Gloops
Bonjour,

J'imagine qu'on aurait un élément d'explication avec
For Each F in Forms : ? F.Name : Next
(dans la fenêtre d'exécution)
Étant entendu que Forms, c'est la collection des formulaires ouverts.

Cela étant dit, comme le laisse entendre Pascal, il y a une
contradiction flagrante entre "je cherche à comprendre la programmation
sous VBA" et "j'ai coché la référence 'réf VBA pour micro applica tion'".

D'un point de vue didactique, la réflexivité (étude du code par le code)
n'est pas ce par quoi il faut commencer, sous peine de ne rien y comprend re.

C'est seulement une fois que non seulement on a bien compris d'abord la
manipulation à la main de l'application, puis la programmation sous VBA ,
qu'on cherche à la faire faire par la machine.

Quand on a un escalier à monter, si tout en haut il faut une clef pour
ouvrir la serrure, et qu'elle est accrochée à côté de la porte, c e n'est
pas très utile de demander la clef aux passants quand on est tout en
bas. Surtout si derrière la clef il y a des fils pour attraper ce qu'on
a vu en montant dans l'escalier, et qu'il faut les manipuler avec
dextérité en fonction de la forme spéciale de l'escalier.

Ceci étant dit je ne suis pas très à jour pour des références d e
lectures à proposer. J'ai appris avec l'aide en ligne, mais c'était i l y
a longtemps, et j'ai bien l'impression que depuis Microsoft a changé so n
fusil d'épaule.

Pour la deuxième phase (développement VBA), je proposerais bien :
http://3stone.be/access/index.php
http://officesystemaccess.seneque.net/

Encore que j'y trouve des rubriques judicieuses pour traiter des points
précis, mais je ne saurais être catégorique au sujet d'une introduc tion
à VBA, peut-être ai-je mal cherché, mal lu.

On va voir si quelqu'un va pouvoir profiter des week-ends prolongés pou r
proposer quelque chose dans ce domaine.

Juste une info au passage, Microsoft promeut d'autres technologies
depuis quelques années (je pense par exemple à .Net), ce qui décroî t
sensiblement la place d'Access sur le marché de l'informatique, et par
la même occasion sur le marché de l'emploi. Ceci étant dit, bienven ue
quand même aux bonnes volontés.
Avatar
pascal58
On 7 mai, 11:56, Gloops wrote:
Bonjour,

J'imagine qu'on aurait un élément d'explication avec
For Each F in Forms : ? F.Name : Next
(dans la fenêtre d'exécution)
Étant entendu que Forms, c'est la collection des formulaires ouverts.

Cela étant dit, comme le laisse entendre Pascal, il y a une
contradiction flagrante entre "je cherche à comprendre la programmation
sous VBA" et "j'ai coché la référence 'réf VBA pour micro applica tion'".

D'un point de vue didactique, la réflexivité (étude du code par le code)
n'est pas ce par quoi il faut commencer, sous peine de ne rien y comprend re.

C'est seulement une fois que non seulement on a bien compris d'abord la
manipulation à la main de l'application, puis la programmation sous VBA ,
qu'on cherche à la faire faire par la machine.

Quand on a un escalier à monter, si tout en haut il faut une clef pour
ouvrir la serrure, et qu'elle est accrochée à côté de la porte, c e n'est
pas très utile de demander la clef aux passants quand on est tout en
bas. Surtout si derrière la clef il y a des fils pour attraper ce qu'on
a vu en montant dans l'escalier, et qu'il faut les manipuler avec
dextérité en fonction de la forme spéciale de l'escalier.

Ceci étant dit je ne suis pas très à jour pour des références d e
lectures à proposer. J'ai appris avec l'aide en ligne, mais c'était i l y
a longtemps, et j'ai bien l'impression que depuis Microsoft a changé so n
fusil d'épaule.

Pour la deuxième phase (développement VBA), je proposerais bien :http ://3stone.be/access/index.phphttp://officesystemaccess.seneque.net/

Encore que j'y trouve des rubriques judicieuses pour traiter des points
précis, mais je ne saurais être catégorique au sujet d'une introduc tion
à VBA, peut-être ai-je mal cherché, mal lu.

On va voir si quelqu'un va pouvoir profiter des week-ends prolongés pou r
proposer quelque chose dans ce domaine.

Juste une info au passage, Microsoft promeut d'autres technologies
depuis quelques années (je pense par exemple à .Net), ce qui décro ît
sensiblement la place d'Access sur le marché de l'informatique, et par
la même occasion sur le marché de l'emploi. Ceci étant dit, bienven ue
quand même aux bonnes volontés.



Salut Gloops.

J'ai regardé plus ou moins en vitesse pour un cours de base VBA sur le
web, mais j'ai pas trouvé quelque chose de probant. Je donne de temps
en temps des formations VBA, mais je n'ai pas de notes de cours
complètes, quelques ébauches que je pourrais compléter et mettre en
ligne.

Pourquoi pas !

Pascal
Avatar
Gloops
pascal58 a écrit, le 07/05/2012 16:50 :
Salut Gloops.

J'ai regardé plus ou moins en vitesse pour un cours de base VBA sur l e
web, mais j'ai pas trouvé quelque chose de probant. Je donne de temp s
en temps des formations VBA, mais je n'ai pas de notes de cours
complètes, quelques ébauches que je pourrais compléter et mettre en
ligne.

Pourquoi pas !

Pascal



OK. Quand quelqu'un se sera donné autant de mal là-dessus que 3stone et
Raymond sur ce qu'ils ont fait, ça pourra être pas mal.

En librairie il y a des trucs pas mal, il me semble. Forcément c'est
plus cher.
Avatar
Hermon Daniel
Bonsoir et merci à tous,
Effectivement, je suis un faux débutant qui patauge de temps à autre. La
réponse à mon pb: le formulaire n'était tout simplement pas ouvert
(collection Forms)
Bien cordialement.
DH
"Gloops" a écrit dans le message de news:
jo867i$4ma$
Bonjour,

J'imagine qu'on aurait un élément d'explication avec
For Each F in Forms : ? F.Name : Next
(dans la fenêtre d'exécution)
Étant entendu que Forms, c'est la collection des formulaires ouverts.

Cela étant dit, comme le laisse entendre Pascal, il y a une
contradiction flagrante entre "je cherche à comprendre la programmation
sous VBA" et "j'ai coché la référence 'réf VBA pour micro application'".

D'un point de vue didactique, la réflexivité (étude du code par le code)
n'est pas ce par quoi il faut commencer, sous peine de ne rien y comprendre.

C'est seulement une fois que non seulement on a bien compris d'abord la
manipulation à la main de l'application, puis la programmation sous VBA,
qu'on cherche à la faire faire par la machine.

Quand on a un escalier à monter, si tout en haut il faut une clef pour
ouvrir la serrure, et qu'elle est accrochée à côté de la porte, ce n'est
pas très utile de demander la clef aux passants quand on est tout en
bas. Surtout si derrière la clef il y a des fils pour attraper ce qu'on
a vu en montant dans l'escalier, et qu'il faut les manipuler avec
dextérité en fonction de la forme spéciale de l'escalier.

Ceci étant dit je ne suis pas très à jour pour des références de
lectures à proposer. J'ai appris avec l'aide en ligne, mais c'était il y
a longtemps, et j'ai bien l'impression que depuis Microsoft a changé son
fusil d'épaule.

Pour la deuxième phase (développement VBA), je proposerais bien :
http://3stone.be/access/index.php
http://officesystemaccess.seneque.net/

Encore que j'y trouve des rubriques judicieuses pour traiter des points
précis, mais je ne saurais être catégorique au sujet d'une introduction
à VBA, peut-être ai-je mal cherché, mal lu.

On va voir si quelqu'un va pouvoir profiter des week-ends prolongés pour
proposer quelque chose dans ce domaine.

Juste une info au passage, Microsoft promeut d'autres technologies
depuis quelques années (je pense par exemple à .Net), ce qui décroît
sensiblement la place d'Access sur le marché de l'informatique, et par
la même occasion sur le marché de l'emploi. Ceci étant dit, bienvenue
quand même aux bonnes volontés.
Avatar
Gloops
Hermon Daniel a écrit, le 09/05/2012 21:41 :
Bonsoir et merci à tous,
Effectivement, je suis un faux débutant qui patauge de temps à autr e. La
réponse à mon pb: le formulaire n'était tout simplement pas ouver t
(collection Forms)



ça, ça ne m'étonne pas plus que ça ;)