Protection excel

Résolu
Christof422 Messages postés 990 Statut Membre -  
Christof422 Messages postés 990 Statut Membre -
Bonjour,

je voudrai protéger ma feuille excel ou mon classeur par un mot de passe a partir d'un programme en vb net.

Je voudrais:

Je créer mon document excel-->ok
j'écris des chose dedans>-->ok
je le protège--> pas ok
je le sauvegarde-->ok
je le ferme-->ok

j'ai essayé:

wsexcel.Protect("mdp")


J'ai aussi essayé avec toutes les options qu'il y a derrière mais sans résultats.

Mais lorsque j'ouvre mon fichier excel celui-ci n'est pas protéger.

Merci pour vos réponses



Le premier pas vers la solution est la recherche. Notre ami Google connaît sûrement la solution...

9 réponses

  1. antipolis a Messages postés 17152 Statut Membre 2 917
     
    Bonjour.

    Sous VBA, vous avez ces instructions qui servent à protéger ou déprotéger les feuilles.

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

    Sheets("calculs").Select
    ActiveSheet.Unprotect

    Reste à protéger le classeur.

    Bonne journée.
    0
  2. Christof422 Messages postés 990 Statut Membre 213
     
    J'ai reussi a le faire en vba mais pas a le transposer en vb net dans mon application.

    Je n'arrive pas a savoir pourquoi cela ne marche pas.
    0
  3. Ctesias Messages postés 786 Statut Membre 36
     
    ActiveSheet.protect "mdp"
    ActiveSheet.Protect userinterfaceonly:=True

    Essai ca. La premiere ligne verouille avec un mot de passe, la deuxieme autorise l'activation des macros
    0
  4. Christof422 Messages postés 990 Statut Membre 213
     
    En utilisant la solution de Ctesias, cela me demande de rentrer le mot de passe, pour enlever la protection de la feuille.

    En faisant des essai, je me suis rendu compte que la protection se mettai bien en place.

    Mais en sauvegardant le fichier, la protection n'est pas enregistrer.

    J'ai créer un nouveau projet pour tester voici mon code.

    FileOpen(1,"C:\Documents and Settings\Christophe\Bureau\essai.xls", OpenMode.Output)
    			FileClose(1)
    		
    		'Déclaration des variables
    		Dim appExcel As Excel.Application 'Application Excel
    		Dim wbExcel As Excel.Workbook 'Classeur Excel
    		Dim wsExcel As Excel.Worksheet 'Feuille Excel
    		
    		
    		'Ouverture de l'application
    		appExcel = CreateObject("Excel.Application")
    		'Ouverture d'un fichier Excel
    		wbExcel = appExcel.Workbooks.Open("C:\Documents and Settings\Christophe\Bureau\essai.xls")
    		'wsExcel correspond à la première feuille du fichier
    		wsExcel = wbExcel.Worksheets(1)
    		wsexcel = appExcel.ActiveWorkbook.ActiveSheet
    		
    	
    		wsexcel.Range("A1").Value="bonjour"	'j'ecris "bonjour" dans la cellule A1
    			
    			
    		wsexcel.Protect("toto")	
    		
    		
    			wbExcel.Save
    		
    		Appexcel.DisplayAlerts = False
    		
    		
    		wbExcel.Close 'Fermeture du classeur Excel
    		appExcel.Quit'Fermeture de l'application Excel
    		
    		
    		'Désallocation mémoire
    		wsExcel = Nothing
    		wbExcel = Nothing
    		appExcel = Nothing


    Si j'enlève la procédure d'enregistrement et de fermeture, la protection se fais bien mais si je les remet la protection est ôter.

    Merci pour vos réponses
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Ctesias Messages postés 786 Statut Membre 36
     
    Si si, la protection est enregistré sur ta feuille. Je n'utilise que celle la, et elle marche parfaitement ^^
    0
  7. Christof422 Messages postés 990 Statut Membre 213
     
    Je peux quand même modifier mon fichier après.

    En faite si j'essaye de faire l'enregistrement manuellement cela me dis que:

    essai.xls peut contenir des informations non compatible avec Texte
    (séparateur: tabulation) (*.txt) Voulez-vous conserver le
    format du classeur ?
    Cliquer sur Oui pour conserver le format, les
    fonctionnalités non compatibles seront perdues"

    Cliquer sur non pour conserver ces caractéristiques...

    Si je clique sur oui, la protection saute

    Si je clique sur non, et que je ré-enregistre après la protection reste.
    0
  8. Ctesias Messages postés 786 Statut Membre 36
     
    Normal, puisque lors de l'enregistrement, si tu clique sur Oui, il modifiera ton fichier, et fera sauter la protectin. Fais les meme modification manuellement et reengistre le ;)
    0
  9. Christof422 Messages postés 990 Statut Membre 213
     
    Oui, mais je ne peux pas^^.

    En faite je me sert de excel pour faire une sauvegarde de mon fichier.

    J'enregistre des valeur a l'interieur.

    Mais je ne veux pas que ces valeur puissent etre modifier donc je voudrai bloquer l'accès.

    Donc il faut que tout soit fais automatiquement sans que l'utilisateur ai quelque chose a faire.
    0
  10. Christof422 Messages postés 990 Statut Membre 213
     
    J'ai trouvé mon probleme, je créai mon fichier avec ca:

    FileOpen(1,"C:\Documents and Settings\Christophe\Bureau\essai.xls", OpenMode.input)
    FileClose(1)


    Et cela ne me créer pas en fichier .xls mais en fichier "text" donc je ne pouvais pas sauvegarder correctement.

    Maintenant je créer mon fichier comme ca:

    wbExcel = appExcel.Workbooks.Add
    appexcel.ActiveWorkbook.SaveAs (FileName:="C:\Documents and Settings\Christophe\Bureau\essai.xls")

    donc j'ai un vrai fichier excel, et je peux l'enregistrer normalement, donc la protection s'enregistre aussi.
    0