2 macros à partir d'un seul bouton de commande [Résolu]

Signaler
Messages postés
14
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
4 juillet 2008
-
Messages postés
14
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
4 juillet 2008
-
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

Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
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
Messages postés
1229
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
16 juin 2009
1
Salut,

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

S.L.B.
<hr />
Messages postés
14
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
4 juillet 2008

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
Messages postés
1229
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
16 juin 2009
1
Et au niveau du pas à pas?

S.L.B.
<hr />
Messages postés
14
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
4 juillet 2008

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.
Messages postés
1229
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
16 juin 2009
1
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 />
Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
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
Messages postés
14
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
4 juillet 2008

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.
Messages postés
14
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
4 juillet 2008

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
Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
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
Messages postés
14
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
4 juillet 2008

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