Bug sur une macro

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

  • defaut.xlsx
    131 KB · Affichages: 8

youky(BJ)

XLDnaute Barbatruc
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
 

Dudu2

XLDnaute Barbatruc
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.
 

Patrice33740

XLDnaute Impliqué
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
 

TEMAGOULTFARID

XLDnaute Occasionnel
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
 

Discussions similaires

Réponses
2
Affichages
197

Statistiques des forums

Discussions
312 083
Messages
2 085 185
Membres
102 808
dernier inscrit
guo