protection de feuilles EXCEL en VB

  • Initiateur de la discussion josias
  • Date de début
J

josias

Guest
Bonjour le Forum !!!

Ba voila, je solicite une foie encore votre attention sur un autre petit problème que je rencontre dans la création d'un devis Excel:

Je voudrais protéger mes feuilles automatiquement, ça marche mais il ne me protège pas comme je le voudrais, les cellules verrouillées peuvent encore être sélectionnées !! Et moi, je ne veux pas...

Voici mon petit bout de programme, si quelqu'un pouvait jeter un coup d'oeil :


Sub protegefeuille(nombrefeuille As Integer)

Dim i As Integer

Sheets("Eg").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

For i = 1 To nombrefeuille

nb = Format(i)
nomfeuil = ("SE" + nb)
Sheets(nomfeuil).Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

Next

End Sub


voila, merci de votre patience et de votre aide !!

@ bientôt
 
J

josias

Guest
Bonjour sousou !

Oui, les cellules verrouillées de la feuille que j'ai protégée ne sont pas modifiables mais moi je voudrais qu'elles ne soient ni modifiables et ni selectionnables...As-tu une solution a me proposer ?

Merci de ton attention. josias
 
P

Pascal76

Guest
Bonjour

Je te propose ceci :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Locked = True Then
&nbsp;&nbsp;MsgBox "Impossible d'aller sur la cellule " & &nbsp;&nbsp;Target.Address '<==== A voir si c'est nécessaire
&nbsp;&nbsp;Range("A1").Select '<==== Attention la cellule que tu mets ici doit être obligatoirement non vérouillé sinon tu boucles indéfiniment
End If

End Sub

Bon courage

Pascal
 
@

@+Thierry

Guest
Bonjour Josias, Sousou, le Forum

Essaie plutot comme ceci (ce code protégèra toutes les feuilles du classeur) :

Option Explicit

Private Sub Workbook_Open()
Dim WS As Worksheet

For Each WS In Worksheets
With WS
.EnableSelection = xlUnlockedCells
.Protect Contents:=True
End With
Next
End Sub


On noteras ici que je mets cette instruction en auto exe à l'ouverture du classeur car la Propriété "EnableSelection" est volatile et disparaît par enchantement un fois le classeur fermé puis réouvert (il y a quelques proprités de Feuille qui réagissent de la sorte).

Bonne Journée
@+Thierry
 
@

@+Thierry

Guest
Bonjour Pascal, re Josias, Sousou

Heuh Pascal, j'ai un copain ingénieur informaticien, si il voit un truc comme çà il dit immédiatement "c'est un peu comme mettre un éléphant pour boucher un trou de souri !" lol

Bon Appétit
@+Thierry
 
P

Pascal76

Guest
Salut Thierry

Pas de problème

Je ne connaissais pas et n'avais jamais fait attention au EnableSelection d'où l'"usine à gaz " et "l'éléphant" réunis.

M'enfin ça permet d'apprendre encore et encore.

Et aujourd'hui c'est la journée avec tous tes trucs et ceux de Ti ça arrête pas

Bonne journée

Pascal
 
J

josias

Guest
bonjour a thierry et rebonjour a pascal, sousou et le forum !

Merci thierry pour ton code, apparrement, ça marche très bien...
Et pour ce qui est du tien, pascal, j'ai une erreur de type 91: " variable objet ou variable de bloc With non définie ", ch'ai pô ce que ça veut dire, il bloque sur la ligne: " If target.Locked = True Then "

Ba voila, si tu as une réponse Pascal, je suis preneur et merci beaucoup, sinon je garde le code de thierry qui m'a l'air bien adapté....


merci a tous pour votre aide et dès que je suis un Expert en Vb, je serais un " grand bénévole " comme pascal ou thierry ou je ne sais qui... ( on a le droit de rêver !!! lol )

@ +
Josias
 
J

josias

Guest
Heu en fait thierry !

J'ai retesté ton code.
Quant j'execute ton code alors que le classeur et ouvert, toute les cellules verrouillées du classeurs sont inaccéssibles ( c'est ce qu'il me faut ) mais quant je ferme le fichier et que je le reouvre, ba c'est plus protégé...

comment faire pour y remedier ?

Merci de ton aide...
 
@

@+Thierry

Guest
RE Bonjour Josias, Pascal, Sousou, le Forum

Merci Pascal, et oui Ti se déchaîne !! lol

Euh oui Josias c'est tout à fait normal, je te souhaite de devenir un expert en VB... Mais pour y arriver si je peux me permettre, je te conseille de bien lire tous les conseils que l'on peut te donner jusqu'au bout... La réponse à ton problème est clairement expliquée dans mon Post initial


Si tu ne sais pas comment mettre une macro en auto exe à l'ouverture du classeur regarde de Gif :


Et au lieu d'un MsgBox tu mets le code que je t'ai fourni...

Bon Appétit
@+Thierry
 
J

josias

Guest
Excuse moi encore thierry, en fait quant je disait " plus protégé ", ça voulait simplement dire que c'est selectionnable mais pas modifiable !! Et moi je voudrait " ni modifiable et ni selectionnable "....

Desolé pour l'erreur.... Merci.

Josias....
 
J

josias

Guest
Haaaa OKKK!!

Ba non, je ne savais pas comment on faisait pour mettre en exe une macro à l'ouverture du classeur....j'suis vraiment un âne ( lol ) ouai mais faut dire que je débute...alors pardonnez moi.

en tout cas, tous ça marche très bien et je suis très content !!


Merci et bon appétit a tous !!!!
 
M

monsieurPatate

Guest
Bonjour à vous tous,

Encore une fois des trucs vraiment utile @thierry.

Petite question à cet égard:

En appliquant EnableSelection aux seuls xlUnlockedCells, je perds l'interface qui me permettait de voir quelle cellule était sélectionnée (bordure de la cellule mise en gras lorsqu'elle est sélectionnée ).
De plus, je perds également la navigation via les flèches du clavier?

Merci et bonne fin de journée
 

Discussions similaires

Statistiques des forums

Discussions
312 677
Messages
2 090 842
Membres
104 677
dernier inscrit
soufiane12