Ordre d'éxécution de macro

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

Statman

Guest
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

@+
 
S

Statman

Guest
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
@+
 

Statistiques des forums

Discussions
312 305
Messages
2 087 081
Membres
103 457
dernier inscrit
fab2614