Macro de test de controle de champs remplis

Bonjour,

J'ai besoin d'aide pour une petite macro de controle,

Avant d'imprimer une feuille papier, je voudrais tester que tous mes champs soit bien rempli

les champs N2 N4 N6 M9 doivent etre remplis.

et je voudrai ouvrir une boite de dialogue en cas d'oublie de remplissage du champs

ils sont soit numerique ou alphabetique.

Je suis un peu perdu et un peu novice en macro...

voici ma macro d'impression:

Sub impression2()

'

' impression2 Macro

'

Sheets("ImprRP").Select

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _

IgnorePrintAreas:=False

Sheets("RP").Select

Range("N2").Select

ActiveCell.FormulaR1C1 = ""

Range("N4").Select

ActiveCell.FormulaR1C1 = ""

Range("N6").Select

ActiveCell.FormulaR1C1 = ""

Range("M9").Select

ActiveCell.FormulaR1C1 = ""

Sheets("Menu").Select

End Sub

Bonsoir

Code à essayer

Sub impression2()
With Sheets("RP")
    If .Range("N2") <> "" Or .Range("N4") <> "" Or .Range("N6") <> "" Or .Range("M9") <> "" Then
        Sheets("ImprRP").PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
    Else: MsgBox "veuillez compléter une des cellules suivantes : N2, N4, N6 ou M9"
    End If
End With
End Sub

si ok, clique sur le V vert à coté du bouton EDITER afin de clôturer le fil

Crdlt

ça a pas l'air de marcher,

ça imprime meme si les champs sont vides sans afficher la boite de dialogue.

j'ai mis ceci dans la macro:

Sub impression2()

'

' impression2 Macro

'

With Sheets("RP")

If .Range("N2") <> "" Or .Range("N4") <> "" Or .Range("N6") <> "" Or .Range("M9") <> "" Then

Sheets("ImprRP").PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False

Else: MsgBox "veuillez compléter une des cellules suivantes : N2, N4, N6 ou M9"

End If

End With

Sheets("RP").Select

Range("N2").Select

ActiveCell.FormulaR1C1 = ""

Range("N4").Select

ActiveCell.FormulaR1C1 = ""

Range("N6").Select

ActiveCell.FormulaR1C1 = ""

Range("M9").Select

ActiveCell.FormulaR1C1 = ""

Sheets("Menu").Select

End Sub

(j'efface les champs apres l'impression à la fin de la macro et retourne dans le menu)


apres avoir refermé le fichier, la fenetre apparait bien si aucun des champs sont remplis et retourne au menu ...

j'aurai voulu rester sur ma page

Mais si je rempli un seul champ j'imprime quand meme et la aussi j'aurai voulu que tous les champs soit rempli

re

Ok j'ai fais une petite erreur

Essaie ceci

Sub impression2()
With Sheets("RP")
    If .Range("N2") <> "" And .Range("N4") <> "" And .Range("N6") <> "" And .Range("M9") <> "" Then
        Sheets("ImprRP").PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
    Else: MsgBox "veuillez compléter une des cellules suivantes : N2, N4, N6 ou M9"
    End If
End With
Range("N2,N4,N6,M9") = "" 'instruction pour effacer les données dans les cellules
End Sub

Crdlt

ca marche bien

merci !

J'ai rajouté un exit sub pour arreter la macro si un champ est pas rempli, ca evite de tout retaper

Re

Oui c'est une solution ou alors comme ceci :

Sub impression2()
With Sheets("RP")
    If .Range("N2") <> "" And .Range("N4") <> "" And .Range("N6") <> "" And .Range("M9") <> "" Then
        Sheets("ImprRP").PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
       .Range("N2,N4,N6,M9") = "" 'instruction pour effacer les données dans les cellules
    Else: MsgBox "veuillez compléter une des cellules suivantes : N2, N4, N6 ou M9"
    End If
End With
End 

Sub

N'oublie pas de cloturer le fil si tu en as terminé

Crdlt

Rechercher des sujets similaires à "macro test controle champs remplis"