Microsoft 365 Aide pour terminer un code Vba Excel

NONO14

XLDnaute Occasionnel
Bonjour à toutes et à tous

J'ai ce commencement de code qui me permet après un clic sur un bouton de pouvoir modifier les cellules du tableau si la saisie d'un mot de passe "falaise" est ok.
Cependant je souhaiterai interdire la modification des lignes 1 à 4. Comment puis-je procéder s'il vous plait ?
Merci par avance pour votre aide
Il s'agit ici du code du formulaire mot de passe.

VB:
Private Sub CommandButton1_Click()
  If T1.Value = "falaise" Then
    Load UfMDP
    Range(D5).Select
    Exit Sub
  End If
  Unload Me
  MsgBox "Mot de passe erroné - Recommencez", vbCritical, "Attention : "
      Cells(1, 1).Select
End Sub
 
Solution
J'ai testé le fichier modifié et je rencontre un soucis. A l'ouverture du fichier, je ne peux plus saisir dans le tableau de la feuille "Saisie", toutes les cellules sont verrouillées.
Il faut que je puisse saisir dans les cellules vides
Il suffit de déverrouiller les cellules vides, dans ThisWorkbook :
VB:
Private Sub Workbook_Open()
With Sheets("Saisie")
    .Protect "falaise", UserInterfaceOnly:=True
    .EnableSelection = xlNoRestrictions
    .Cells.Locked = True
    .Rows("3:" & .Rows.Count).SpecialCells(xlCellTypeBlanks).Locked = False 'déverrouille les cellules vides
End With
Me.Saved = True 'évite l'invite à la fermeture si aucune modification
End Sub
J'ai commis une erreur, seules les colonnes A et B sont...

NONO14

XLDnaute Occasionnel
Sur le dernier fichier il n'y a plus de formules en colonne C.

Il est donc inutile de verrouiller cette colonne.
Bonjour job75,
Merci pour votre aide. Il est vrai que j'aurai dû remonter plus haut dans notre discussion, toutes mes excuses.
Pour la colonne C, il y a toujours des formules, mais elles sont masquées.
Je teste le fichier et je reviens vers vous.
Encore merci
 

NONO14

XLDnaute Occasionnel
J'ai testé le fichier modifié et je rencontre un soucis. A l'ouverture du fichier, je ne peux plus saisir dans le tableau de la feuille "Saisie", toutes les cellules sont verrouillées.
Il faut que je puisse saisir dans les cellules vides
J'ai commis une erreur, seules les colonnes A et B sont verrouillées et je dois pouvoir y accéder si elles sont vides. Toutes mes excuses
Le même soucis se passe lorsque je sauvegarde les pointages, au retour sur la feuille saisie, il y a le même blocage. J'ai cherché une solution, mais sans succès.
 
Dernière édition:

job75

XLDnaute Barbatruc
J'ai testé le fichier modifié et je rencontre un soucis. A l'ouverture du fichier, je ne peux plus saisir dans le tableau de la feuille "Saisie", toutes les cellules sont verrouillées.
Il faut que je puisse saisir dans les cellules vides
Il suffit de déverrouiller les cellules vides, dans ThisWorkbook :
VB:
Private Sub Workbook_Open()
With Sheets("Saisie")
    .Protect "falaise", UserInterfaceOnly:=True
    .EnableSelection = xlNoRestrictions
    .Cells.Locked = True
    .Rows("3:" & .Rows.Count).SpecialCells(xlCellTypeBlanks).Locked = False 'déverrouille les cellules vides
End With
Me.Saved = True 'évite l'invite à la fermeture si aucune modification
End Sub
J'ai commis une erreur, seules les colonnes A et B sont verrouillées et je dois pouvoir y accéder si elles sont vides.
Ce n'est pas cohérent, la colonne C doit être verrouillée non ?

Pour finir, la macro FermerClasseur m'énervait, je l'ai complétée :
VB:
Sub FermerClasseur()
    ThisWorkbook.AutoriserFermeture = True
    ThisWorkbook.Save
    If Workbooks.Count = 1 Then CreateObject("WScript.Shell").SendKeys "%{F4}" 'pour fermer Excel
    ThisWorkbook.Close
End Sub
 

Pièces jointes

  • Tablo_Heures.xlsm
    283.9 KB · Affichages: 0

NONO14

XLDnaute Occasionnel
Il suffit de déverrouiller les cellules vides, dans ThisWorkbook :
VB:
Private Sub Workbook_Open()
With Sheets("Saisie")
    .Protect "falaise", UserInterfaceOnly:=True
    .EnableSelection = xlNoRestrictions
    .Cells.Locked = True
    .Rows("3:" & .Rows.Count).SpecialCells(xlCellTypeBlanks).Locked = False 'déverrouille les cellules vides
End With
Me.Saved = True 'évite l'invite à la fermeture si aucune modification
End Sub

Ce n'est pas cohérent, la colonne C doit être verrouillée non ?

Pour finir, la macro FermerClasseur m'énervait, je l'ai complétée :
VB:
Sub FermerClasseur()
    ThisWorkbook.AutoriserFermeture = True
    ThisWorkbook.Save
    If Workbooks.Count = 1 Then CreateObject("WScript.Shell").SendKeys "%{F4}" 'pour fermer Excel
    ThisWorkbook.Close
End Sub
Bonjour job75 et bonjour le forum,
Merci pour votre aide et je suis désolé d'avoir tardé à vous répondre mais j'ai testé mon fichier dans plusieurs situations et j'ai rencontré des bugs que j'ai du modifier.
Pour répondre à votre question, effectivement la colonne C doit être verrouillée.
Pouvez-vous m'expliquer ce que fait la macro "FermerClasseur", à part fermer le classeur après sa sauvegarde, s'il vous plaît ?
Je vous en remercie par avance
 

Discussions similaires

Réponses
32
Affichages
660
Réponses
10
Affichages
463
Réponses
6
Affichages
358

Statistiques des forums

Discussions
313 866
Messages
2 103 082
Membres
108 521
dernier inscrit
manouba