Beug avec macro de débutant

xabi64

XLDnaute Occasionnel
Bonjour au forum,
J'ai fait une petite macro qui fonctionne normalement mais mon problème est quand je protège le classeur par un code j'ai un message d'erreur.Ma macro ne fonctionne plus.
Est-ce à cause de certaines cellules vérouillées ou non?
Quelqu'un aurait-il déjà rencontré ce problème?
 

Dull

XLDnaute Barbatruc
Re : Beug avec macro de débutant

Salut xabi64, le Forum

essaye de faire une recherche avec UserInterfaceOnly cela te permet de faire rouler tes macros sans déprotéger tes feuilles

Plusieurs posts en parles

EDITION: Salut Laetitia :)

Bonne Journée
 
Dernière édition:

xabi64

XLDnaute Occasionnel
Re : Beug avec macro de débutant

Bonjour Letitia90 et merci pour ton intervention,
il est vrai que j'avais des cellules vérouillées mais même en décochant cette option j'ai comme erreur "ereur d'éxecution 1004".
Je bloque un peu
 

xabi64

XLDnaute Occasionnel
Re : Beug avec macro de débutant

re Laetitia90,
Le code d'eereur est:"vous ne pouvez pas executer cette commande sur une feuille protégée.Vous devez oter la protection et serez invité à taper un mot de passe".
Voilà mon "beug" Impossible de faire fonctionner ma macro avec un mot de passe!
 

JPierreM

XLDnaute Nouveau
Re : Beug avec macro de débutant

Bonjour,

il faut protéger la feuille de la façon suivante

Code:
Private Sub Workbook_Open()
    Worksheets("Feuil1").Protect userinterfaceonly:=True
End Sub

UsrInterFaceOnly permet de protéger une feuille, la manipulation de celle-ci par macro reste cependant possible même sur les cellules verrouillées

L'instruction UserInterfaceOnly doit être appelée à chaque ouverture du classeur


JP
 

Banzai64

XLDnaute Accro
Re : Beug avec macro de débutant

Bonjour

dans ThisWorkbook

Code:
Private Sub Workbook_Open()
Dim Sh As Worksheet

For Each Sh In Sheets
  Sh.Protect Password:="toto", userinterfaceonly:=True
Next Sh
End Sub

Et dans tes procédures

remplace chaque fois
Code:
Range("XX:YY").Select
Selection.Font.ColorIndex = 2
par
Code:
Range("XX:YY").Font.ColorIndex = 2
'    Selection.Font.ColorIndex = 2

XX:YY représente ta plage
 

xabi64

XLDnaute Occasionnel
Re : Beug avec macro de débutant

Bonsoir au forum et à Banzai64,
Malgré mon niveau "très débutant" je vais essayer de comprendre et d'appliquer ton message.
Un grand merci à Banzai et au forum sans lequel je ne pourais faire aucun progrès.
 

Si...

XLDnaute Barbatruc
Re : Beug avec macro de débutant

Bonjour

autres procédures (avec la proposition de laetitia90) :
Code:
Sub SemaineBleue()
  couleur (5)
End Sub
Sub SemaineBlanche()
  couleur (2)
End Sub
Sub SemaineRouge()
  couleur (3)
End Sub
Sub couleur(n As Byte)
  Dim Sh As Worksheet, Ad As String
  Application.ScreenUpdating = False
  For Each Sh In Worksheets
    [B]Sh.Unprotect Password:="toto"[/B]
    If Left(Sh.Name, 1) = "P" Then Ad = "B8:B18" Else Ad = "B9:B19"
    Sh.Range(Ad).Font.ColorIndex = n
    [B]Sh.Protect Password:="toto"[/B]
  Next
End Sub
Sub EffacerLaSemaine()
  Application.ScreenUpdating = False
  Dim Sh As Worksheet, C As Range, Ad As String
  Application.ScreenUpdating = False
  For Each Sh In Worksheets
    [B]Sh.Unprotect Password:="toto"[/B]
    If Left(Sh.Name, 1) = "P" Then Ad = "B8:Q31" Else Ad = "B9:Q32"
      For Each C In Sh.Range(Ad)
        If C.Locked = False Then C.ClearContents
      Next
    [B]Sh.Protect Password:="toto"[/B]
  Next
End Sub

voir fichier (allégé) ci-joint pour explications.
 

Pièces jointes

  • Protection.zip
    26.8 KB · Affichages: 32
  • Protection.zip
    26.8 KB · Affichages: 33
  • Protection.zip
    26.8 KB · Affichages: 32

Discussions similaires

Statistiques des forums

Discussions
312 482
Messages
2 088 766
Membres
103 955
dernier inscrit
mikaveli