RESOLU: Rendre obligatoire plusieurs cellules avant enregistrement

targa

XLDnaute Junior
Bonjour le Forum!!

J'ai trouvé un code pour obliger les utilisateurs à remplirs certaines cases avant enregistrement.

je l'ai adapté à mon besoin, cela fonctionne pour une cellule, mais le problème est que j'ai deux cellules qui ont la même fonction, et l'on peut rentrer une données soit dans l'une, soit dans l'autre.

Comment dois-je introduire dans mon code le nom de la deuxième cellule à contrôler?
J'ai essayé le code ci-dessous, mais cela ne fonctionne pas :(
Qui a-t'il de faux? le OR?

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

' Controle si la cellule délai de réalisation est remplie
    If Range("Feuil1!B4").Value or ("Feuil1!D4").Value = "" Then
    MsgBox "Remplir le(s) champ(s) de Durée de réalisation!"
    Cancel = True
    End If

End Sub

Merci d'avance pour votre aide!
 

Pièces jointes

  • cellules_obligatoires.xlsm
    14 KB · Affichages: 86
  • cellules_obligatoires.xlsm
    14 KB · Affichages: 78
  • cellules_obligatoires.xlsm
    14 KB · Affichages: 88
Dernière édition:

Victor21

XLDnaute Barbatruc
Re : Rendre obligatoire plusieurs cellules avant enregistrement

Bonjour targa.

Essayez :
VB:
Private Sub Workbook_Beforeclose(Cancel As Boolean)
' Controle si la cellule  est remplie
    If Range("Feuil1!B4").Value = "" Or Range("Feuil1!d4").Value = "" Then
    MsgBox "Remplir obligatoirement la cellule B4 ou D4, merci"
    Cancel = True
    End If
End Sub
 

st007

XLDnaute Barbatruc
Re : Rendre obligatoire plusieurs cellules avant enregistrement

Bonjour, Tagra, Victor
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

' Controle si la cellule  est remplie
    If Range("Feuil1!B4") = "" And Range("Feuil1!D4") = "" Then
    MsgBox "Remplir obligatoirement la cellule B4 ou D4, merci"
    Cancel = True
    End If

End Sub
 

targa

XLDnaute Junior
Re : Rendre obligatoire plusieurs cellules avant enregistrement

Bonjour Victor21,

Aaah oui d'accord!! je vois ce qui me manquait!! :)
Merci beaucoup Victor21!

Mais maintenant, je me suis fait prendre à mon propre jeu, lorsque je dois enregistrer mon fichier en tant que modèle .xltm, je n'arrive plus à l'enregistrer, car il me pose biensur l'alarme!! :(
Y aurait il une solution pour que j'arrive à enregistrer au format .xltm?

Merciii :)
 

targa

XLDnaute Junior
Re : Rendre obligatoire plusieurs cellules avant enregistrement

Bonjour st007,

Un grand merci à toi aussi pour ta solution!!:)

Mais saurais-tu répondre à mon second problème?
Arrive-t'on à accéder au code VBA de la feuille même si le fichier n'est pas ouvert dans Excel?

merci pour votre aide !
Cordialement
 

targa

XLDnaute Junior
Re : Rendre obligatoire plusieurs cellules avant enregistrement

Bon, je suis coincé alors... :(

Mais pour aller au fond de mon problème initial, je me suis aperçu aussi en testant vos deux codes, si une des deux cellules est vide, il ne me permet pas non plus d'enregistrer.
Ce qui devrait être le contraire puisque la condition est remplie: permettre l'enregistrement si une des deux cellules est remplie.
 

targa

XLDnaute Junior
Re : Rendre obligatoire plusieurs cellules avant enregistrement

J'ai une proposition à faire!!
Peux-t'on rajouter dans le code, que si on enregistre au format .xltm, il surpasse la règle?
Et comment corriger le code pour permettre l'enregistrement si une des deux cellules sont remplies?

Merci pour votre aide précieuse les gars! ;)
 

st007

XLDnaute Barbatruc
Re : Rendre obligatoire plusieurs cellules avant enregistrement

ah, il me semble fonctionné avec ce fichier pourtant
 

Pièces jointes

  • cellules_obligatoires.xlsm
    14.1 KB · Affichages: 67
  • cellules_obligatoires.xlsm
    14.1 KB · Affichages: 64
  • cellules_obligatoires.xlsm
    14.1 KB · Affichages: 72

Staple1600

XLDnaute Barbatruc
Re : Rendre obligatoire plusieurs cellules avant enregistrement

Bonsoir à tous

Une variante pour le fun et pour le plaisir de croiser mes petits camarades de jeu ;)
Code:
Private Sub Workbook_Beforeclose(Cancel As Boolean)
' Controle si la cellule  est remplie
With Feuil1
    If Application.CountA(.[B4], .[D4]) = 0 Then
        MsgBox "Remplir obligatoirement la cellule B4 ou D4, merci"
        Cancel = True
    End If
End With
End Sub
 

targa

XLDnaute Junior
Re : Rendre obligatoire plusieurs cellules avant enregistrement

ah, il me semble fonctionné avec ce fichier pourtant

oui en effet, avec le fichier que j'avais mis en pièce jointe on y arrivait car il devait avoir un bug, je m'en suis aperçu en le testant, car on aurait jamais dû pouvoir enregistrer, sinon à quoi bon mettre ce code :D
Alors je l'ai refait et cela-lui là est bon, je n'arrive pas à enregistrer si une cellule est vide.

Mais c'est parfois bizarre, si je clique sur la disquette pour enregistrer ou enregistrer sous j'ai pas d'alarme, mais si j'appuie sur la croix pour fermer le programme j'ai l'alarme !!!????
Mystère, mystère de Excel....:confused:
 

Pièces jointes

  • cellules_obligatoires.xlsm
    15.4 KB · Affichages: 47
  • cellules_obligatoires.xlsm
    15.4 KB · Affichages: 57
  • cellules_obligatoires.xlsm
    15.4 KB · Affichages: 61
Dernière édition:

targa

XLDnaute Junior
Re : Rendre obligatoire plusieurs cellules avant enregistrement

Bonsoir Staple1600,
Merci pour ta réponse, avec ton code cela fonctionne bien si je remplie qu'une cellule sur 2, c'est parfais! Merciii :)

Par-contre j'ai le même soucis qu'avec l'autre fichier mis à dispo, si je clique sur la disquette pour enregistrer ou enregistrer sous j'ai pas d'alarme, mais si j'appuie sur la croix pour fermer le programme j'ai l'alarme !!!????

ça doit être un bug Excel. :)

Merci
 

Staple1600

XLDnaute Barbatruc
Re : Rendre obligatoire plusieurs cellules avant enregistrement

Re

targa
Private Sub Workbook_Beforeclose


Before veut dire avant
Close veut dire Fermer
WorkBook veut dire Classeur

Je te laisse deviner alors quand s'affiche le MsgBox ... ;)

Et même genre de devinette avec cet procédure

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)


End Sub

Tu vois où je veux en venir :rolleyes::p;) ?
 
Dernière édition:

targa

XLDnaute Junior
Re : Rendre obligatoire plusieurs cellules avant enregistrement

Hello Victor,

Merci pour ta solution :D

En effet, si je n'active pas les macros au lancement cela fonctionne. lol

J'avais mis l'option d'activer les macros automatiquement pour mes fichiers, et comme on est tellement pris dans son affaire, que l'on oublie de les désactiver pour certaines solutions!! :eek:

Affaire résolue !! Merciiii c'est cool.
 

Discussions similaires

Statistiques des forums

Discussions
312 216
Messages
2 086 351
Membres
103 195
dernier inscrit
martel.jg