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 !

TEMAGOULTFARID

XLDnaute Occasionnel
bonjour,
j'ai un problème de Bug sur une macro et j'aurai besoin de vos lumière.
par avance merci
Sub cloturer()

If ActiveSheet.Name = "OT-VIERGE" Then
MsgBox ("Vous ne pouvez pas clôturer Le fichier.xlsm"): Exit Sub
End If
question = InputBox("Merci de saisir le mot de passe", , , 1000, 3000)

If question <> "chalet53" Then MsgBox "Fermeture non autorisée": Exit Sub
a = Range("L5")
If Range("L5").Value <> "Résolu" Then
MsgBox ("Clôture impossible, la cellule L5 n'est pas à jour"): Exit Sub
End If
a = ligne
If Range("A6:L200").Locked = True Then GoTo suite Else Range("A6:L200").Locked = True
Selection.Locked = True
Selection.FormulaHidden = False
suite:
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
ligne = Workbooks("TABLEAU-OT.xlsm").Worksheets("Synthèse").Cells(1, 27)
' ActiveWorksheet.Protect userinterfaceonly:=True, Password:="chalet53"

Workbooks("TABLEAU-OT.xlsm").Worksheets("Synthèse").Cells(ligne, 9) = Range("L5").Value
ActiveWorkbook.Save
Application.DisplayAlerts = False
ThisWorkbook.Close
Application.DisplayAlerts = True
End Sub
 

Pièces jointes

Bonjour,
If Range("A6:L200").Locked = True Then GoTo suite Else Range("A6:L200").Locked = True
Je ne vois pas de End if
De plus tu oublis le double point
ceci serai déjà un plus sans avoir ouvert le fichier
If Range("A6:L200").Locked = True Then GoTo suite :Else: Range("A6:L200").Locked = True:End if
ceci pour mettre sur 1 seule ligne
Bruno
 
Je ne vois pas trop ce que tu veux faire avec cette séquence:
VB:
If Range("A6:L200").Locked = True Then GoTo suite Else Range("A6:L200").Locked = True
Selection.Locked = True
Selection.FormulaHidden = False

Soit le Goto est exécuté soit les 3 instructions sont exécutées.
Donc il n'y a pas matière à mettre un Else
Quant à l'erreur sur le Range("A6:L200").Locked = True, elle n'a pas de raison de se produire sauf si la feuille est protégée.
 
Bonjour,

Ton code laisse supposer qu'il y a 3 classeurs ouverts :
- le classeur actif ActiveWorkbook
- le classeur TABLEAU-OT.xlsm
- le classeur qui contient la macro Thisworkbook

La feuille est probablement protégée, il faut la déprotéger

Essaies
VB:
Option Explicit
Sub cloturer()
Dim ligne As Long
  With ActiveSheet
    If .Name = "OT-VIERGE" Then
      MsgBox ("Vous ne pouvez pas clôturer Le fichier.xlsm"): Exit Sub
    End If
    If InputBox("Merci de saisir le mot de passe", , , 1000, 3000) <> "chalet53" Then
      MsgBox "Fermeture non autorisée": Exit Sub
    End If
    If .Range("L5").Value <> "Résolu" Then
      MsgBox ("Clôture impossible, la cellule L5 n'est pas à jour"): Exit Sub
    End If
    .Unprotect
    With .Range("A6:L200")
      .Locked = True
      .FormulaHidden = False
    End With
    .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    ligne = Workbooks("TABLEAU-OT.xlsm").Worksheets("Synthèse").Cells(1, 27).Value
  End With
  Workbooks("TABLEAU-OT.xlsm").Worksheets("Synthèse").Cells(ligne, 9) = "Résolu"
  ActiveWorkbook.Save
  Application.DisplayAlerts = False
  ThisWorkbook.Close
  Application.DisplayAlerts = True
End Sub
 
Bonjour a vous tous et un grand merci pour votre intervention.
Effectivement , c'était bien un problème de feuille protéger.J'avais entre deux mis une macro qui protégeais des cellules après saisie. En suivant vos conseille, le problème est réglé.
un grand merci et surtout prenez bien soins de vous
 
- 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
4
Affichages
156
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
258
Retour