MessageBox

Résolu/Fermé
Chicorette Messages postés 84 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 27 janvier 2016 - 8 oct. 2014 à 22:13
Chicorette Messages postés 84 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 27 janvier 2016 - 27 oct. 2014 à 00:02
Bonjour,

Je souhaiterais faire apparaître une MessageBox sur une plage (B3:M147) qui informerais l'utilisateur que la cellule qu'il souhaite modifier contient déjà quelque chose. Si vide aucun message.

Serait-il éventuellement possible dans un deuxième temps de protéger les cellules renseignées à la fermeture du classeur?

Peut-être pourrais je combiner les deux action selon la réponse de l'utilisateur à la MessageBox.
Voulez vous modifier le contenu? => si oui; alors autorisation puis protection / si non => alors protection.
Et laisser les cellules vides tranquilles

Merci
(Débutante volontaire)

7 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
9 oct. 2014 à 15:19
Bonjour,

Voilà pour la 1ère question:

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Application.Intersect(Target, Range("B3:M147")) Is Nothing Then Exit Sub
If Target.Value = "" Then Exit Sub
MsgBox "la cellule que vous souhaitez modifier contient déjà quelque chose: " & Target.Value, vbOKCancel, "Selection"
End Sub


A mettre dans la feuille concernée
0
Chicorette Messages postés 84 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 27 janvier 2016 2
Modifié par pijaku le 27/10/2014 à 07:34
Oh magnifique! Merci beaucoup.

Pour la 2ème question
Faudrait-il mieux séparer les deux actions ou l'intégrer à cette même macro?

Si je rajoute ça c'est bien ça marche.

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    For Each sh In Sheets
    sh.Protect Password:="mot de passe"
    Next sh
    ThisWorkbook.Save
    End Sub

mais combiner les deux serait possible aussi?

Sinon je suis satisfaite déjà ...

Merci Merci
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
10 oct. 2014 à 06:54
Les 2 macros sont différentes et n'agissent pas au même moment.
Il y a une macro qui agit sur la feuille et l'autre à la fermeture et qui est placée dans ThisWorkbook.

Si la question est résolue cliquez sur RESOLU

Bonne journée
0
Chicorette Messages postés 84 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 27 janvier 2016 2
10 oct. 2014 à 22:49
Merci
Bonne continuation à vous
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Chicorette Messages postés 84 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 27 janvier 2016 2
22 oct. 2014 à 19:14
Bonjour et désolée de réouvrir le topic.

Je me suis auto piégée à cause d'une consolidation!!! je n'avais pas envisagé le cas du sauf zéro!

Pour renouveler mon explication:
Je souhaite dans une plage (B3:M147) des 3 premières feuilles, faire apparaitre une MessageBox qui indique à l'utilisateur qu'on a déjà saisi une valeur autre que zéro. (sinon ma consolidation ne peut pas marcher). Puis (enregistrer) et protéger le classeur avant la fermeture.


https://www.cjoint.com/?DJwtou88FRQ
mot de passe: ok en minuscule si protégé

Merci
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
22 oct. 2014 à 21:42
Essaie ceci:

If Target.Value = "" Or Target.Value = "0" Then Exit Sub

0
Chicorette Messages postés 84 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 27 janvier 2016 2
27 oct. 2014 à 00:02
Merci Merci!
0