2 macros à partir d'un seul bouton de commande

Résolu
Ledude89 Messages postés 14 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 4 juillet 2008 - 6 juin 2008 à 09:28
Ledude89 Messages postés 14 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 4 juillet 2008 - 6 juin 2008 à 15:08
Bonjour,

Je travaille sur une base ACCESS 2003.
A partir d'un même bouton de commande dans un formulaire, je souhaite exécuter 2 macros, mais seule la première fonctionne.

- La première macro exécute une requête.
- La seconde converti cette requête en fichier excel.

Séparément, les 2 macros fonctionnent parfaitement.

Voici le code actuel. Comment dois je faire pour que la seconde s'exécute à la suite ?

Merci

Yves

---------------------------------------------------------
Private Sub Commande273_Click()
On Error GoTo Err_Commande273_Click


    Dim stDocName As String


    stDocName = "moyenne_classe"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
   
   
    stDocName = "export_vers_excel_moyenne_classe"
    DoCmd.RunMacro stDocName




Exit_Commande273_Click:
    Exit Sub


Err_Commande273_Click:
    MsgBox Err.Description
    Resume Exit_Commande273_Click
   
End Sub

11 réponses

pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
6 juin 2008 à 12:20
je regardé trop vite !!!!!
remplace bouton par le nom de ton bouton c'est à dire Commande273
de plus le " Dim " doit se trouver au tout début de la procédure donc avant le "on error goto ..."
donc :
Private Sub Commande273_Click()
Dim stDocName As String
On Error GoTo Err_Commande273_ClickIf Commande273.caption = "moyenne_classe" Then 'si le texte du bouton est on fait l'action 1
    stDocName = "moyenne_classe"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
  ElseIf Commande273.caption = "export_vers_excel_moyenne_classe" Then 'sinon on fait l'action 2
  stDocName = "export_vers_excel_moyenne_classe"
    DoCmd.RunMacro stDocName  
End If
IF Commande273.caption = "moyenne_classe" Then 'ce if pour changer le texte affiché par le bouton apres chaque action
      Commande273.caption = "export_vers_excel_moyenne_classe"   
Else
    Commande273.caption = "moyenne_classe" 
 End If
 Exit Sub

Err_Commande273_Click:
    MsgBox Err.Description
    Resume Exit_Commande273_Click
   
End Sub

je t'ai mis en violet ce qui à mon avis ne sert à rien  sauf pendant la phase de mise au point !
et encore ! je préfere quand à moi dans cette phase procéder à l'éxécution en pas à pas avec la  touche F8

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
3
lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
6 juin 2008 à 09:57
Salut,

Tu as quoi comme message d'erreur??? tu as tenté le pas à pas???

S.L.B.
<hr />
0
Ledude89 Messages postés 14 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 4 juillet 2008
6 juin 2008 à 10:25
Je n'ai pas de message d'erreur, mais la deuxième macro ne s'exécute pas. C'est à dire que le fichier Excel n'est pas généré.

Yves
0
lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
6 juin 2008 à 10:37
Et au niveau du pas à pas?

S.L.B.
<hr />
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ledude89 Messages postés 14 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 4 juillet 2008
6 juin 2008 à 10:58
Le pas à pas ne se déclenche pas sur le code du bouton de commande (celui que j'ai collé dan smon premer message).Comment faire pour qu'il s'exécute ?

Par contre, le pas à pas sur la macro toute seule de convertion de fichier ne donne aucune erreur.
0
lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
6 juin 2008 à 11:07
As tu mis un point d'arret sur Private Sub Commande273_Click() ?
Désolée de ce que je vais écrire mais je ne connais pas ton niveau de connaissance et d'après ton code tu as utilisé les assistants...
Quand tu places un point d'arret ta ligne est en rouge et il y a un point rouge dans la marge...

S.L.B.
<hr />
0
pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
6 juin 2008 à 11:11
bonjour
une idée à paufiner
sub bouton_click()
if bouton.caption = "premiere action" then
    action1
else
    action2
end ifif bouton.caption "premiere action" then bouton.caption "deuxieme action" else bouton.caption = "premiere action"
end sub
[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
0
Ledude89 Messages postés 14 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 4 juillet 2008
6 juin 2008 à 11:44
Non, je n'ia pasmis de point d'arrêt. Comment procéder ?
Tu as raison, mon niveau est celui d'un utilisateur d'assistants, donc, pas à l'aise avec le VBA pur. Merci entous cas.
0
Ledude89 Messages postés 14 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 4 juillet 2008
6 juin 2008 à 11:51
Ok, je comprends la logique de ta proposition.

Est-ce que ce code serait correct (avant de l'exécuter) ? :

------------------------------------
Private Sub Commande273_Click()
On Error GoTo Err_Commande273_Click


If bouton.caption = "moyenne_classe"


Then


    Dim stDocName As String


    stDocName = "moyenne_classe"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
 
 Else
  stDocName = "export_vers_excel_moyenne_classe"
    DoCmd.RunMacro stDocName
   
End If
IF bouton.caption = "export_vers_excel_moyenne_classe"
  Then
    stDocName = "export_vers_excel_moyenne_classe"
    DoCmd.RunMacro stDocName


Else
stDocName = "moyenne_classe"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
   
 End If
 
Exit_Commande273_Click:
    Exit Sub


Err_Commande273_Click:
    MsgBox Err.Description
    Resume Exit_Commande273_Click
   
End Sub

--------------------

Merci
0
pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
6 juin 2008 à 12:00
a priori oui

a l'exception de
Exit_Commande273_Click:
qui ne sert strictement à rien mais qui n'a pas d'incidence sur le fonctionnement

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
0
Ledude89 Messages postés 14 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 4 juillet 2008
6 juin 2008 à 15:08
Ok, j'ai apporté les corrections.Merci, tout semble fonctionner.

Mais en fait le problème ne vient pas de là :
je viens de me rendre compte que la macro prédéfinie TransférerFeuilleCalcul (intégrée) ne se met pas à jour automatiquement. Elle s'éxécute correctement de façon aléatoire semble t'il.
Que je l'éxécute pas à pas, ou à partir d'un bouton de commande, je n'arrive pas à savoir pourquoi elle fonctionne ou pas. Est-ce que cela peut venir de mon environnement de travail (mauvaise interprétation du serveur ?) par exemple ?

Merci
Yves
0
Rejoignez-nous