Excel: Empêcher impression si cellule pas remplie
Stephane
-
Stephane -
Stephane -
Bonjour,
J'ai fait quelques recherches, mais n'ai malheureusement pas trouvé de solution à mon problème. Raison pour laquelle je demande ici.
J'ai un document Excel avec un bouton qui imprime et enregistre automatiquement mon document.
J'aimerai, que
si cellule A2 est remplie
il est obligatoire de remplir B2 -> Si B2 pas rempli -> Opération annulée avec message "Veuillez remplir B2"
Il est obligatoire de remplir C2 -> Si C2 pas rempli -> Opération annulée avec message "Veuillez remplir C2"
Il est obligatoire de remplir D2 -> Si D2 pas rempli -> Opération annulée avec message "Veuillez remplir D2"
Il est obligatoire de remplir F2 -> Si F2 pas rempli -> Opération annulée avec message "Veuillez remplir F2"
Il est obligatoire de remplir G2 -> Si G2 pas rempli -> Opération annulée avec message "Veuillez remplir G2"
J'ai mis une ligne par colonne, car j'aimerai pouvoir personnalisez mon texte d'erreur en fonction de l'information manquante.
En vous remerciant d'avance de votre aide
Bonne soirée
J'ai fait quelques recherches, mais n'ai malheureusement pas trouvé de solution à mon problème. Raison pour laquelle je demande ici.
J'ai un document Excel avec un bouton qui imprime et enregistre automatiquement mon document.
Sub imprimer_enregistrer()
Sheets("Form").PrintOut copies:=1
ActiveWorkbook.SaveAs Filename:= _
"C:\XXXX" & Format(Date, "yyyy.mm.dd") & " " & Format(Time, "hh-mm") & " " & Range("=Données!C2") & ".xlsm"
Application.Quit
End Sub
J'aimerai, que
si cellule A2 est remplie
il est obligatoire de remplir B2 -> Si B2 pas rempli -> Opération annulée avec message "Veuillez remplir B2"
Il est obligatoire de remplir C2 -> Si C2 pas rempli -> Opération annulée avec message "Veuillez remplir C2"
Il est obligatoire de remplir D2 -> Si D2 pas rempli -> Opération annulée avec message "Veuillez remplir D2"
Il est obligatoire de remplir F2 -> Si F2 pas rempli -> Opération annulée avec message "Veuillez remplir F2"
Il est obligatoire de remplir G2 -> Si G2 pas rempli -> Opération annulée avec message "Veuillez remplir G2"
J'ai mis une ligne par colonne, car j'aimerai pouvoir personnalisez mon texte d'erreur en fonction de l'information manquante.
En vous remerciant d'avance de votre aide
Bonne soirée
A voir également:
- Excel: Empêcher impression si cellule pas remplie
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel moyenne - Guide
4 réponses
Bonjour,
Une facon de faire:
Une facon de faire:
Sub imprimer_enregistrer() Cel_Vide1 = Application.CountIf(Range("B2:D2"), "") 'nombre de cellules vides Cel_Vide2 = Application.CountIf(Range("F2:G2"), "") 'nombre de cellules vides Cel_Vide = Cel_Vide1 + Cel_Vide2 If Cel_Vide = 0 Then Sheets("Form").PrintOut copies:=1 ActiveWorkbook.SaveAs Filename:= _ "C:\XXXX" & Format(Date, "yyyy.mm.dd") & " " & Format(Time, "hh-mm") & " " & Range("=Données!C2") & ".xlsm" Application.Quit Else If Range("B2") = "" Then Cel = "B2" ElseIf Range("C2") = "" Then Cel = "C2" ElseIf Range("D2") = "" Then Cel = "D2" ElseIf Range("F2") = "" Then Cel = "F2" ElseIf Range("G2") = "" Then Cel = "G2" Else End If Range(Cel).Select Response = MsgBox("Veuillez remplir la cellule " & Cel & " svp!", vbCritical, "Cellule NON remplie") End If End Sub
Bonjour,
Merci pour votre aide, cela fonctionne.
Je n'ai malheureusement pas été très explicite dans ma demande.
J'aimerai que cela fonctionne exactement de la même manière, mais sur toute la colonne de A2 à A33
Ex: Si A7 rempli -> Obligation de remplir B7;C7;D7;F7;G7
Désolé pour cet oubli.
Stéphane
Merci pour votre aide, cela fonctionne.
Je n'ai malheureusement pas été très explicite dans ma demande.
J'aimerai que cela fonctionne exactement de la même manière, mais sur toute la colonne de A2 à A33
Ex: Si A7 rempli -> Obligation de remplir B7;C7;D7;F7;G7
Désolé pour cet oubli.
Stéphane
Re,
Sub imprimer_enregistrer() If Not Cell_Vide Then Sheets("Form").PrintOut copies:=1 ActiveWorkbook.SaveAs Filename:= _ "C:\XXXX" & Format(Date, "yyyy.mm.dd") & " " & Format(Time, "hh-mm") & " " & Range("=Données!C2") & ".xlsm" Application.Quit End If End Sub Function Cell_Vide() As Boolean With Worksheets("Form") For Lig = 2 To 33 Cel_Vide = 0 Cel_Vide1 = 0 Cel_Vide2 = 0 If .Cells(Lig, 1) <> "" Then Cel_Vide1 = Application.CountIf(.Range("B" & Lig & ":D" & Lig), "") 'nombre de cellules vides Cel_Vide2 = Application.CountIf(.Range("F" & Lig & ":G" & Lig), "") 'nombre de cellules vides Cel_Vide = Cel_Vide1 + Cel_Vide2 If Cel_Vide <> 0 Then If .Range("B" & Lig) = "" Then Cel = "B" & Lig ElseIf .Range("C" & Lig) = "" Then Cel = "C" & Lig ElseIf .Range("D" & Lig) = "" Then Cel = "D" & Lig ElseIf .Range("F" & Lig) = "" Then Cel = "F" & Lig ElseIf .Range("G" & Lig) = "" Then Cel = "G" & Lig Else End If .Range(Cel).Select Response = MsgBox("Veuillez remplir la cellule " & Cel & " svp!", vbCritical, "Cellule NON remplie") Cell_Vide = True Exit Function End If End If Next Lig End With Cell_Vide = False End Function