Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Ordre d'éxécution de macro

  • Initiateur de la discussion Initiateur de la discussion Statman
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

Statman

Guest
Salut à tous, heureux de vous savoir toujour là.

Dans un fichier genre facturier, j'ai deux boutons (chacun associé à une macro), l'un pour imprimer directement en plusieurs exemplaires et le second pour enregistrer la facture.
J'aurais voulu savoir s'il était possible d'interdire par un message box l'utilisation du bouton enregistrement tant que l'on a pas imprimé.


Merci d'avance
@+
 
S'lut bis

Je viens d'essayer d'intégrer ton code et j'ai quelques soucis car la premiére fois que l'on exécute imprimer, enregistrer marche trés bien mais le soucis et qu'il continue à marcher ensuite, ce qui fait que je peux enregistrer plusieurs factures à la suite.
Ne faut -il pas mieux que le bouton enregistrer devienne opérationnel qu'une fois que l'on a imprimer, puis on enregistrerai et ensuite le bouton enregistrer ne serait plus opérationnel avant la prochaine impression.

Si tu veux je mettrais le code en entier avec un peu plus de détail

@+
 
Re
Désolé mais je crois que je me suis emmé é les pinceaux. Voici donc mon code pour les deux boutons.


Private Imprimer As Boolean

Private Sub CommandButton1_Click() 'bouton pour enregistrer dans une table dans une autre feuille puis une fois l'enregistrement effectué, remise à blanc des champs et mise à jour de la base pour passer au numéro suivant.
If Imprimer = False Then
MsgBox "impression obligatoire"
Exit Sub
Else
Dim Ligne As Long
Ligne = Sheets("Table").Range("a65536").End(xlUp).Row + 1
Sheets("Table").Range("A" & Ligne).Value = Sheets("Facture").Range("B5").Value
Sheets("Table").Range("B" & Ligne).Value = Sheets("Facture").Range("H5").Value
Sheets("Table").Range("C" & Ligne).Value = Sheets("Facture").Range("E5").Value
Sheets("Table").Range("D" & Ligne).Value = Sheets("Facture").Range("E7").Value
Sheets("Table").Range("E" & Ligne).Value = Sheets("Facture").Range("G2").Value
Sheets("Table").Range("F" & Ligne).Value = Sheets("Facture").Range("E9").Value
Sheets("Table").Range("G" & Ligne).Value = Sheets("Facture").Range("E11").Value
Sheets("Table").Range("H" & Ligne).Value = Sheets("Facture").Range("G11").Value
Sheets("Table").Range("I" & Ligne).Value = Sheets("Facture").Range("G13").Value
Sheets("Table").Range("J" & Ligne).Value = Sheets("Facture").Range("E28").Value
End If
Range("E5").ClearContents
Range("E7").ClearContents
Range("E9").ClearContents
Range("E11").ClearContents
Range("E13").ClearContents
Range("G11").ClearContents
Range("G13:H14").ClearContents
Range("C17:C26").ClearContents
Range("E28").ClearContents
MsgBox "merci de patientez durant l'enregistrement"
ActiveWorkbook.Save
End Sub


Private Sub CommandButton2_Click() 'bouton pout imprimer avec vérification que toutes les cellules requises sont bien remplies.
Dim CELLULE As Range, MESSAGE As String
For Each CELLULE In Range("_Vérificateur,_Manifeste,_Numéro,_Ligne,_Client,_Bordereau,_Motif")
If CELLULE = "" Then MESSAGE = MESSAGE & WorksheetFunction.Substitute(CELLULE.Name.Name, "$", "") & ", "
Next
If MESSAGE <> "" Then
MsgBox "La ou les cellules suivantes ne sont pas remplies : " & vbCrLf & Left(MESSAGE, Len(MESSAGE) - 2)
Else
Range("B2:H34").Select
ActiveSheet.PageSetup.PrintArea = "$B$2:$H$34"
ActiveWindow.SelectedSheets.PrintOut Copies:=2, Collate:=True
Imprimer = True
MsgBox "impression ok"
End If
End Sub

J'espére que c'est clair sinon je ferai un fichier
@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…