Check before printing

ASNJ

XLDnaute Nouveau
Bonjour tout le monde,
Je commence avec les techniques VBA sous excel.
J'ai un fichier dont je veux quand ne peux l'imprimer que si un test est fait por verifier q'il n'y a aucune erreur sur tout une colonne.
Merci pour votre aide.
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Check before printing

Bonjour ASNJ,
Je commence avec les techniques VBA sous excel.
J'ai un fichier dont je veux quand ne peux l'imprimer que si un test est fait por verifier q'il n'y a aucune erreur sur tout une colonne.
sans plus de précisions de ta part ........
...... et une meilleure construction de phrase

à+
Philippe
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Check before printing

Bonjour ASNJ, bonjour le forum,

Tu ne nous aides pas beaucoup... Peut-être avec cette macro événementielle du composant ThisWorkbook :
Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim cel As Range 'déclare la variable cel
Dim c As Integer 'déclare la variaable c (Colonne)
 
c = x 'ou x désigne le numéro de la colonne à traiter
With Sheets("Ton_Onglet") 'prend en compte l'onglet à traiter (à adapter à ton cas)
    For Each cel In .Range(.Cells(1, c), .Cells(applications.Rows.Count, c).End(xlUp)) 'boucle sur toutes les cellules éditées cel de la colonne c
        'si la cellule vaut "ton_critère", annule l'impression et sort de la procédure
        If cel.Value = "Ton_Critère" Then Cancel = True: Exit Sub
    Next cel 'prochaine cellule de la boucle
End Sub

[Édition]
Bonjour Philippe on s'est croisé.
 

ASNJ

XLDnaute Nouveau
Re : Check before printing

Bonjour ASNJ, bonjour le forum,

Tu ne nous aides pas beaucoup... Peut-être avec cette macro événementielle du composant ThisWorkbook :
Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim cel As Range 'déclare la variable cel
Dim c As Integer 'déclare la variaable c (Colonne)
 
c = x 'ou x désigne le numéro de la colonne à traiter
With Sheets("Ton_Onglet") 'prend en compte l'onglet à traiter (à adapter à ton cas)
    For Each cel In .Range(.Cells(1, c), .Cells(applications.Rows.Count, c).End(xlUp)) 'boucle sur toutes les cellules éditées cel de la colonne c
        'si la cellule vaut "ton_critère", annule l'impression et sort de la procédure
        If cel.Value = "Ton_Critère" Then Cancel = True: Exit Sub
    Next cel 'prochaine cellule de la boucle
End Sub

[Édition]
Bonjour Philippe on s'est croisé.

@ Robert j'ai essayé mais ça ne marche pas ça imprime à tous les coups, en fait pour mon cas j'ai mis une formule sur la colonne L pour verifier par une rechercheV que les données saisies existent vraiment (donc au retour de la formule pas de #NA) et verifier par la meme occasion que la cellule D3 n'est pas vide, si une des deux erreurs existe le fichier retourne un message d'erreur.
Merci d'avance.
 
Dernière édition:

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Check before printing

Bonjour,

avec ce code:
Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim cel As Range
' test si D3 non-vide
If Sheets(1).[D3] = "" Then
MsgBox ("D3 est vide")
Cancel = True
Exit Sub
End If
' test si erreur en colonne L
For Each cel In Range("L8:L35")
On Error GoTo fin
test = Left(Str(cel), 1)
Next cel
Exit Sub

fin:
MsgBox ("il y a au moins une erreur en colonne L")
Cancel = True

End Sub
à+
Philippe
 

ASNJ

XLDnaute Nouveau
Re : Check before printing

@ phlaurent55 : merci pour votre réactivité d'apres ceque je peux lire sur votre code, tout doit marcher normalement sauf que ça imprime toujours à tous les coups, j'ai essayer de mettre le code dans la page VBA de la feuille, et meme en creant un module ou j'ai fait un copier coller ?
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Check before printing

Re,
d'apres ceque je peux lire sur votre code, tout doit marcher normalement sauf que ça imprime toujours à tous les coups, j'ai essayer de mettre le code dans la page VBA de la feuille, et meme en creant un module ou j'ai fait un copier coller ?
la solution la plus simple est de mettre ici ton fichier sans oublier les formules dans la colonne L

aide nous pour qu'on puisse t'aider efficacement

@TempusFugit,
@ASNJ: Peux-tu répondre, s'il te plait, à la question de mon précédent message ?
Où sont les formules dont tu parles ?
la réponse est "nulle part pour l'instant"

à+
Philippe
 

Discussions similaires

Réponses
10
Affichages
225

Statistiques des forums

Discussions
312 299
Messages
2 086 998
Membres
103 429
dernier inscrit
PhilippeH