Microsoft 365 Aide pour terminer un code Vba Excel

  • Initiateur de la discussion Initiateur de la discussion NONO14
  • Date de début Date de début

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 !

NONO14

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

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
 
- 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
32
Affichages
1 K
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
235
Réponses
3
Affichages
53
Réponses
2
Affichages
415
Réponses
3
Affichages
245
  • Question Question
Microsoft 365 Macro vba excel
Réponses
6
Affichages
469
Retour