J'avance doucement sur mon projet, mais j'ai un petit souci là ...
Je souhaite verrouiller la case B2 de la feuille "suivi affaire", je ne sais si je m'y suis bien pris ...
Voilà mon code :
Code:
Private Sub NewNum_Affaire_Click()
ModNumAffaire.CreateAffaire
'Verrouille la cellule contenant le numéro d'affaire (B2)
Worksheets("suivi affaire").Range("B2").Locked = True
'Insertion date du jour en B3
Range("B3").Select
ActiveCell.FormulaR1C1 = "=TODAY()"
'Griser le bouton après clic
'NewNum_Affaire.Enabled = False
End Sub
Je me dis que peut-être mon erreur est énorme ... et que je ne la vois pas, ou alors est-elle trop subtile pour moi
Merci par avance à tous ceux qui prendront la peine de lire mon message
Ton code est juste mais incomplet! (de plus il est inutile lol)
En faite, ce que tu fais revient à sélectionner la cellule B2 de ton onglet "Suivi affaire" et cliquer sur "format" / "cellule" / onglet "protection" et cocher la case "Verrouillé".
Or :
-> TOUTES les cellules sont par défaut en mode "Verrouillé", d'où l'inutilité de ton code ci-dessus par contre, il serait peut-être bien de penser à déverrouiller les autres cellules où la saisie est autorisé
-> sans le VBA, une fois cette manip faite, pour que ta(tes) cellules soient vraiment verrouillée(s), tu dois protéger ta feuille : "outils" / "protection" / "protéger la feuille", or cette étape tu ne l'as pas faite!
Pour cela, tu aurais dû écrire par exemple :
Code:
Worksheets("suivi affaire").Protect Password:="[COLOR="DarkOrange"][B][I]ton mot de passe[/I][/B][/COLOR]"
Evidement, si plus tard tu veux modifier cette cellule verrouillée, avant il faudra bien penser à déverrouiller ta feuille!
Si en VBA, le code sera :
Code:
Worksheets("suivi affaire").Unprotect Password:="[COLOR="DarkOrange"][B][I]ton mot de passe[/I][/B][/COLOR]"
Bonne après midi
Edition : évidement, tu n'es pas obligé de mettre un mot de passe! Dans ce cas tu ne devras écrire que :
Mais je viens de trouver l'info que tu m'as donnée à l'instant sur un autre fofo ... Et mon souci est que, j'ai un bouton sur lequel je clique, cela lance une requête pour chercher un numéro d'affaire (entre autre) dans une bdd access ... soit ...
Mais je souhaiterai, au final, que ma cellule soit inchangeable, mais uniquement cette cellule, pas les autres cellules de la feuilles "suivi affaire" ... Donc du coup, la manière de faire m'échappe un peu, je dois avouer ....
Si tu as, ou qui que ce soit d'autre d'ailleurs, un tuyau à me refiler pour ça, cela me retirerait une bonne épine du pied
Le plus simple est d'utiliser l'enregistreur de macro
Tu aurais ainsi obtenu la macro suivante :
Code:
Sub Macro1()
' Macro enregistrée par Excel-lent
Cells.Select
Selection.Locked = False
Selection.FormulaHidden = False
Range("B2").Select
Selection.Locked = True
Selection.FormulaHidden = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Qui fonctionne très bien, évidement, après tu peux la simplifier et la raccourcir ainsi :
Code:
Sub Macro1()
With Worksheets("suivi affaire")
.Cells.Locked = False
.Range("B2").Locked = True
.Protect
End With
End Sub
Mais évidement, avec quelques commentaires et un peu de mise en page (cf. ci-dessous), c'est plus sympa et plus facile à comprendre
Code:
Sub Macro1()
[COLOR="Green"]' Macro enregistrée et modifiée par Excel-lent[/COLOR]
With Worksheets("suivi affaire")
[COLOR="Green"]' Déverrouiller TOUTES les cellules[/COLOR]
.Cells.Locked = False
[COLOR="Green"]' Verrouiller que la cellule B2[/COLOR]
.Range("B2").Locked = True
.Protect
End With
End Sub
Évidement, comme expliqué dans mon précédent post, tu peux remplacer :
Code:
.Protect
par :
Code:
.Protect Password:="[COLOR="DarkOrange"][B]ton mot de passe[/B][/COLOR]"
Mais, à y regarder de plus près, on verrouille alors TOUTE la feuille, alors qu'on ne cherche qu'à verrouiller UNE ou PLUSIEURS cellules ?
Comment ne verrouiller qu'UNE SEULE cellule ?
Pour vérouiller une ou plusieurs cellules, Format/Cellules, onglet Protection et on décoche Vérouillée.
Ensuite, selection de la cellule ou des cellules à vérouiller (avec la touche Ctrl enfoncer pour selection multiple) et retour à Format/Cellules, même onglet et cocher Vérouillée.
Reste à protéger la feuille par Outils/Protection avec ou sans mot de passe.