Sécurité et MACRO

phandil

XLDnaute Nouveau
Bonjour, voilà grâce aux bon conseils reçu dans ce forum j'ai sû résoudre 2 problème dans mon classeur

Seulement j'ai un problème de protection

La feuille est protégé et le classeur est protégé

je voudrai pouvoir utilisé les macros tout en gardant mes feuilles protégé

les premières solutions que je trouve sur le forum et ailleurs ne sont pas concluant

Merci de votre aide
 

Pièces jointes

  • Classeur2 Phandilv6.xlsm
    19.8 KB · Affichages: 45

Pierrot93

XLDnaute Barbatruc
Re : Sécurité et MACRO

Bonjour,

pour utiliser des macros sur feuille protégée, il faut que la protection soit effectuée par le code en utilisant l'argument "userinterfaceonly", ci-dessous procédure événementielle se déclenche à l'ouverture du classeur, à placer dans le module "thisworkbook" :
Code:
Option Explicit
Private Sub Workbook_Open()
Sheets("NomFeuille").Protect "toto", userinterfaceonly:=True
End Sub

sinon déproter et reprotéger la feuille lors de l'exécution des macros :
Code:
Sheets("NomFeuille").Unprotect "toto"
'ton code
Sheets("NomFeuille").Protect "toto"

bonne journée
@+
 

phandil

XLDnaute Nouveau
Re : Sécurité et MACRO

merci pr la réponse

le premier code est fonctionnel

Seulement j'ai un autre problème: un bug: erreur d'exécution 13:

incompatibilité de type

J'ai cette erreur dans toutes mes feuilles, elle s'active quand je désire faire un del du contenu de plusieurs cellule

Voici le code de la feuille:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("testsup_testcar"), Target) Is Nothing And Len(Target) > 25 Then
  MsgBox "Nombre de caractères limité à 25 au maximum", vbOKOnly + vbExclamation, "TROP LONG"
  Target.Value = ""
  Target.Select
End If
If Not Intersect(Range("testsup_dictect"), Target) Is Nothing And Len(Target) > 25 Then
  MsgBox "Nombre de caractères limité à 25 au maximum", vbOKOnly + vbExclamation, "TROP LONG"
  Target.Value = ""
  Target.Select
End If

End Sub

Le débuggage est actif à partir de la première condition

Je dois certainement avoir oublié de déclarer une variable mais je ne vois pas laquel

merci de vos réponses
 

phandil

XLDnaute Nouveau
Re : Sécurité et MACRO

non même message d'erreur

code modifié:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)

Application.EnableEvents = False
If Target.Value = "" Then Exit Sub
If Not Intersect(Range("testsup_testcar"), Target) Is Nothing And Len(Target) > 25 Then
  MsgBox "Nombre de caractères limité à 25 au maximum", vbOKOnly + vbExclamation, "TROP LONG"
  Target.Value = ""
  Target.Select
End If
If Not Intersect(Range("testsup_dictect"), Target) Is Nothing And Len(Target) > 25 Then
  MsgBox "Nombre de caractères limité à 25 au maximum", vbOKOnly + vbExclamation, "TROP LONG"
  Target.Value = ""
  Target.Select
End If
Application.EnableEvents = True
End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : Sécurité et MACRO

Re,

A noter lieu de désactiver les événementielles après un éventuel "exit sub" :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = "" Then Exit Sub
Application.EnableEvents = False
If Not Intersect(Range("testsup_testcar"), Target) Is Nothing And Len(Target) > 25 Then
  MsgBox "Nombre de caractères limité à 25 au maximum", vbOKOnly + vbExclamation, "TROP LONG"
  Target.Value = ""
  Target.Select
End If
If Not Intersect(Range("testsup_dictect"), Target) Is Nothing And Len(Target) > 25 Then
  MsgBox "Nombre de caractères limité à 25 au maximum", vbOKOnly + vbExclamation, "TROP LONG"
  Target.Value = ""
  Target.Select
End If
Application.EnableEvents = True
End Sub
 

phandil

XLDnaute Nouveau
Re : Sécurité et MACRO

pas plus de résultat et c'est même pire car mais 2 conditions ne sont actives

je vous envoi le fichier d'exemple

J'ai rentré une valeur dans les cellules B4 B5 et C4 C5 dans ma feuille (mdp: toto) (pour tester si la procédure fonctionne, rentrer plus de 25 caractère: normalement déclenchement du message d'erreur)

puis j'ai essayé de supprimer les valeurs en sélectionnant les 4 cellules et en cliquant sur delete

merci de ton aide
 

Pièces jointes

  • phandil_incompatibilite.xlsm
    34.1 KB · Affichages: 52

Papou-net

XLDnaute Barbatruc
Re : Sécurité et MACRO

Bonjour Phandil, Pierrot, le Forum,

J'ai cette erreur dans toutes mes feuilles, elle s'active quand je désire faire un del du contenu de plusieurs cellule

A mon avis, l'erreur vient de la sélection multiple. Dans ce cas, il faudrait faire une boucle sur chaque cellule de la sélection. Mais comme le propose Pierrot, un fichier support serait bien utile.

Cordialement.
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Sécurité et MACRO

Re,

attention dans tes cellules tu as une validation de donnée qui limite la saisie à 25 caractères.... A mon avis il faut choisir, soit la validation soit la macro événementielle, pas les 2 en même temps qui contrôlent la même chose....
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal