Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion Nimbus
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Nimbus

XLDnaute Occasionnel
Bonjour à tous,

J'ai un soucis avec mon pgm vba.
En effet, je cherche à empêcher les utilisateurs de supprimer et / ou modifier certaines cellules de mon tableau après saisie.
Voici le pgm utilisé:

dans la feuille synthèse:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Z = 0 And PERMISSION = False Then
Z = Z + 1
X = MsgBox("Vous n'êtes pas autorisé à modifié cette plage de données", vbExclamation)
Application.Undo
End If
Z = 0
End Sub

Dans le module 1:
Code:
public Z as integer
public PERMISSION as boolean
Sub Verrouillage()
       PERMISSION = false
End Sub
Sub Deverrouillage()
       PERMISSION = True
End Sub

Le soucis c'est que quand je valide ma saisie, le message box s'affiche, rien ne s'affiche ds le tableau et j'ai un débeuggage sue le ligne "Application.Undo".

Quelqu'un pourrait il m'aider?

Je joins mon fichier

Merci
 

Pièces jointes

Re : erreur pgm vba

Bonjour Nimbus .

Application.Undo, méthode (Excel)

Cette méthode annule uniquement la dernière action effectuée par l'utilisateur avant d'exécuter la macro et elle doit être la première ligne de la macro.Il ne peut pas être utilisé pour annuler des commandes de Visual Basic.



Docmarti
 
Re : erreur pgm vba

salut

le problème est, avant tout, dû à un numéro de ligne incorrect (5 au lieu de 5000).

La macro refuse, sous conditions, le changement du contenu d'une cellule d'une plage de la feuille.
Essaie cette modification
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Z > 0 Or PERMISSION = 0 Then Exit Sub
  If Not Intersect(Target, Range("A1:L5,N1:BV5")) Is Nothing Then
    Application.ScreenUpdating = False
    Z = Z + 1
    MsgBox "Vous n'êtes pas autorisé à modifier cette plage de données !", vbCritical, "Attention..."
    Application.Undo
  End If
  Z = 0
End Sub

Attention : le changement n'est pas accepté si les variables Z et PERMISSION sont initialisées donc Si... tu changes directement une cellule de la plage (sur la feuille), il peut être effectif !

Note : pour moi, je simplifierais beaucoup de macros (correction)
 
Dernière édition:
Re : erreur pgm vba

Bonjour Si...

Je viens de faire les modif mais, quand j'interviens dans les cellules du tableau, je peux toutes les modifier donc ça ne va pas et à aucun moment j'ai le message box qui s'affiche...

La seule colonne que je veux pouvoir modifier est la colonne "Commentaire".

Je mets le fichier avec les modif en PJ.

Merci pour ton aide
 

Pièces jointes

Re : erreur pgm vba

re

ceci
Code:
'Affectation des données dans le listing
...
    With Sheets("Synthese")
        Date_D = Date
        newRecord = Range("A" & Rows.Count).End(xlUp).Row + 1
...
m'a induit en erreur.
j'ai d'abord cru que tu ne voulais pas écrire hors de la plage.
Si... tu ne veux pas y écrire alors initialise bien tes 2 variables avant cette partie.
 
Re : erreur pgm vba

La seule colonne que je veux pouvoir modifier est la colonne "Commentaire".


La seule protection efficace est :

1) Dans Format de cellule/Protection / Verrouillée : Décocher les cellules qui ne doivent pas être protégées

2) Dans Onglet Révision : Protéger la feuille

3) Sauvegarder le classeur.

Cordialement

Docmarti
 
Re : erreur pgm vba

Bonjour Nimbus.

Les macros fonctionneront si tu y ajoutes quelques commandes Unprotect et Protect.

Code:
Workbooks("UnClasseur.xlsx").Workheets("UneFeuille").Unprotect Password:="Secret"

Workbooks("UnClasseur.xlsx").Workheets("UneFeuille").Protect AllowFiltering:=True, Password:="Secret"

Docmarti
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
712
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
374
Réponses
41
Affichages
890
Réponses
5
Affichages
312
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…