impression autorisée seulement si cellule identiques

belaubre

XLDnaute Nouveau
Bonjour à tous et à toutes,

Quel code pour traduire ceci :

Dans ma feuille excel nommée : CAISSE, si le montant dans cellule "F20" est différent de la cellule "M4", affiche un message "CALCUL INCORRECT : LES CELLULES F20 et M4 SONT DIFFÉRENTES" et refuser l'impression.

Mais si les cellules F20 et M4 sont identiques, alors imprimer.

Si vous pouviez m'aider, s'il vous plait.
 
Dernière édition:

youky(BJ)

XLDnaute Barbatruc
Salut Lone-Wolf, bonjour tous
Moi j'ai vu comme ça...sans col O
Ce code est à mettre en Thisworkbook
Bruno
VB:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name <> "CAISSE" Then Exit Sub
If [F20] <> [M4] Then
MsgBox "CALCUL INCORRECT :" & vbCr & "LES CELLULES 019 et 024 SONT DIFFÉRENTES"
Cancel = True 'annule impression
End If
End Sub
 

Lone-wolf

XLDnaute Barbatruc
Bonjour Bruno :)

VB:
Sub Impression()
Dim x&, plage As Range, f As Range
Dim m As Range, rw1, rw2

    Sheets("CAISSE").Activate
  
    With ActiveSheet
        x = .Range("a" & Rows.Count).End(xlUp).Row
        Set plage = .Range("a1:m" & x): Set f = .Range("f20"): Set m = .Range("m4")
        rw1 = Replace(f.Address, "$", ""): rw2 = Replace(m.Address, "$", "")
      
        If .Range("f20") <> .Range("m4") Then
            MsgBox "CALCUL INCORRECT : LES CELLULES " & rw1 & " et " & rw2 & " SONT DIFFÉRENTES.", , "ERREUR"
        Else
            .PageSetup.PrintArea = plage.Address
            '.PrintPreview  pour visualiser
            '.PrintOut      pour imprimer
        End If
    End With
End Sub
 

belaubre

XLDnaute Nouveau
Sub Impression()
Dim x&, plage As Range, f As Range
Dim m As Range, rw1, rw2

Sheets("CAISSE").Activate

With ActiveSheet
x = .Range("a" & Rows.Count).End(xlUp).Row
Set plage = .Range("a1:eek:" & x): Set f = .Range("f20"): Set m = .Range("m4")
rw1 = Replace(f.Address, "$", ""): rw2 = Replace(m.Address, "$", "")

If .Range("f20") <> .Range("m4") Then
MsgBox "CALCUL INCORRECT : LES CELLULES " & rw1 & " et " & rw2 & " SONT DIFFÉRENTES.", , "ERREUR"
Else
.PageSetup.PrintArea = plage.Address
'.PrintPreview pour visualiser
'.PrintOut pour imprimer
End If
End With
End
Sub




Se code marche parfaitement, MERCI

J'ai pu l'intégrer à mon bouton raccourci.

Par contre si je fais, fichier --) imprimer,

Le message d'alerte ne se met pas et il est encore possible d'imprimer malgrès des montant différents entre F20 et M4 ? :O

Bizare
 

Lone-wolf

XLDnaute Barbatruc
Re belaubre

Faudrait savoir. Tu demande d'abord que la feuille ne soit pas imprimée et maintenant tu dit le contraire?? o_O
Pour imprimer depuis Fichier >Imprimer, il faudrait faire une autre macro, et là c'est une autre histoire.

@youky(BJ) : pourquoi annuler l'impression, si la condition est correcte?? o_O
 

belaubre

XLDnaute Nouveau

Re belaubre

Faudrait savoir. Tu demande d'abord que la feuille ne soit pas imprimée et maintenant tu dit le contraire?? o_O
Pour imprimer depuis Fichier >Imprimer, il faudrait faire une macro qui agisse sur le bouton Imprimer, et là c'est une autre histoire.

@youky(BJ) : pourquoi annuler l'impression, si la condition est correcte?? o_O


Désolé je me suis peut etre mal exprimer :O

Alors si les montants F20 et M4 sont identiques, l'impression est autorisée
Et si ils sont différents, je veux qu'ils soit totalement bloqués, ou enventuellement autoriser avec mot de passe.
 

Discussions similaires

Réponses
4
Affichages
601

Statistiques des forums

Discussions
315 105
Messages
2 116 256
Membres
112 704
dernier inscrit
zanda19