Model_fichiers_utilisateurs_multiple

chreitate

XLDnaute Junior
Bonjour,
Je reviens à vous pour demander votre aide sur ce problème:
J'ai un classeur à multiple utilisation, y a t-il de possibilité des protéger les colonnes par plusieurs mots de passe chaque utilisateur aura sa protection sur ce fichier partagé mais qui concerne uniquement les colonnes qui lui appartiennent.
Un fichier joint sert comme exemple, chaque colleur correspond à un utilisateur.
Merci
 

Pièces jointes

  • Model_fichiers_utilisateurs_multiple.xlsx
    84.9 KB · Affichages: 47

camarchepas

XLDnaute Barbatruc
Re : Model_fichiers_utilisateurs_multiple

Bonjour Chreitate,

Entre autre, c'est réalisable via du vba.
Le principe que j'imagine :

A l'ouverture du classeur, une premiere étape identifie l'utilisateur selon un nom prénom ou code utilisateur puis d'un mot de passe préalablement renseigné.

une deuxième étape consiste à libérer les colonnes autorisées.

et l'étape finale lors de l'enregistrement ou la fermeture du classeur permet de verrouiller l'ensemble des colonnes

Cordialement
 

chreitate

XLDnaute Junior
Re : Model_fichiers_utilisateurs_multiple

Merci,
Pourras-tu (ou un autre volontaire) me consacré un peu de votre précieux temps pour me faire un petit exemple ou m'aider à faire la démarche.
Merci et salutations
Bonjour Chreitate,

Entre autre, c'est réalisable via du vba.
Le principe que j'imagine :

A l'ouverture du classeur, une premiere étape identifie l'utilisateur selon un nom prénom ou code utilisateur puis d'un mot de passe préalablement renseigné.

une deuxième étape consiste à libérer les colonnes autorisées.

et l'étape finale lors de l'enregistrement ou la fermeture du classeur permet de verrouiller l'ensemble des colonnes

Cordialement
 

Yakou

XLDnaute Nouveau
Re : Model_fichiers_utilisateurs_multiple

Bonjour,

J'ai déjà fait ce type de fonction sur une feuille pour un formulaire.
Ce code devrait te permettre d'y voir plus clair.

2 sous procédures avec une fonction précise :Dévérouille et vérouille.

Que tu pilotes via la procédure "Private Sub Workbook_Open()", pour te simplifier la vie.


Si tu dois gérer les feuilles faudra rajouter un "byval ma_feuille as string" dans les sous procédure.
Puis ajouter le nom de la feuille dans l'appel de tes sous procédures.


exemple:

Code:
Sub Déverouille(byval mdp as string)

Sheets(1).Unprotect mdp

End Sub
----------
Code:
Sub Verouillage(byval mdp as string,byval ma_plage as string)
   
   Sheets(1).Unprotect
   
  'Range(plagedébut:plagefin, ou cellule) ex:("A1:A10","B5")

Range(ma_plage).Select

   Selection.Locked = True
   Selection.FormulaHidden = False
   ActiveSheet.Protect Password:=mdp,DrawingObjects:=False, Contents:=True
   
End Sub
----------
Code:
Private Sub Workbook_Open()

Select Case Environ(UserName)

Case Is = "toto", "banane"

Call Déverouille("0231U50")
Call Verouillage("0231U50",<ma_plage>)'ex:plage(A15:B20,C6,O2:V5)

Case Is = "loulou", "fredo"

Call Déverouille("0231U50")
Call Verouillage("0231U50",<ma_plage>)'ex:plage(A1:A10,B5,T2:R5)

Case Else:

Call Déverouille("0231U50")
Call Verouillage("0231U50",<ma_plage>) 'ex:plage(A:AZ)

End Select

end sub
 
Dernière édition:

chreitate

XLDnaute Junior
Re : Model_fichiers_utilisateurs_multiple

Bonjour,
Je m'excuse si je demande bcp, mais je compte sur votre compréhension.
Je suis débutant dans ce forum, nul en VBA si vous pouvez appliquer ces codes sur le fichier model que j'ai envoyé serait une bonne chose
Si c'est associé à des explications : comment la formule (macro) était cree, comment l'exécuter ainsi de suite.
Merci et je m'excuse de nouveau.
 

Yakou

XLDnaute Nouveau
Re : Model_fichiers_utilisateurs_multiple

J'ai mis ai point le système demandé.

Mais le fichier manque de précision.

je ne sais pas:

- les plage a verrouiller ou déverrouiller.
- les ID des users cible pour remplacer l'imputbox par un environ(username) à l ouverture.


Concrètement le reste est du paramétrage.

Même si tu connais peux VBA.
Tout le fichier est géré dans le module Thisworkbook dans la sub workbook_open.

Si tu es pressé par le temps.
Tu n'as pas besoin de comprendre le fonctionnement précis des procédure du module1, juste à savoir leur utilité.

Les paramètres à modifier sont :

- les plages à verrouiller, déverrouiller.
- le mot de passe à modifier.

Le paramétrage des verrouillages de fichier sont souvent casse tête.
bon courage.
 

Pièces jointes

  • Model_fichiers_utilisateurs_multiple.xlsm
    94.7 KB · Affichages: 64
Dernière édition:

chreitate

XLDnaute Junior
Re : Model_fichiers_utilisateurs_multiple

Merci,
Je vous informerai de l'évolution de mon petit projet.
J'aimerai avoir des explications de votre part sur les codes, juste oui ou non pour ne pas vous embêter bcp :
Y deux fichiers dans le macro

Modul1 : pour définir domaine de travail ainsi que son type?
Thisworkbook : formule qui sera appliquée code ou calcul?
Que signifie :
monmdp?
Chr(13)?
Case Else?

Je constate également que les derniers colonnes en bleu ne sont pas actives ni en ouvrant par toto ni par banane, comment les rendre actives?
Si je veux faire une modification sur la totalité d'une colonne (ex : couleur ou formule), comment ?
Si je veux protéger les macros contre modification (utilisateurs) , comment?

De nouveau mes remerciements et respects.
 

Yakou

XLDnaute Nouveau
Re : Model_fichiers_utilisateurs_multiple

Modul1 : pour définir domaine de travail ainsi que son type?

module1 : stocke les macro :
Dévérouille (retire la protection globale de la feuille)
unlockcell (retire dans les paramètres le vérouillage des cellules sur une plage ciblée de la feuille)
Vérouille (Active la protection du fichier sur la plage ciblé de la feuille)


Thisworkbook : formule qui sera appliquée code ou calcul?

C'est un module qui s'applique sur l'ensemble du classeur selon un événement précis.

la fonction sub workbook_open()
signifie que la macro se lance à l'ouverture du classeur.

une inputbox est ouverte pour reconnaitre l'utilisateur. (car je ne connaissais pas leur ID)
Le texte entré dans l'inputbox est stocké dans une variable texte "ID"

ID va être comparé grâce à un select case.
selon le cas l'action sera différente et les plages ciblées ne seront pas les mêmes.




= texte qui entré dans une variable mdp du module1.
Ce texte représente le mot de passe pour dévérouiller la feuille.


= saut de ligne dans du texte


= La fonction select case resemble à la fonction IF. (mais elle est plus rapide à l'execution et permet de regrouper aisément les cas).

If then
elseif
else
end if

select case
case is =
case else
end if

select case est plus lisible lors d'une utilisation de OR dans IF.

exemple:

If sheet(1).cells(1,1) = "Oui" or sheet(1).cells(1,1) = "Peut-être oui" then

msgbox "Oui, enfin peut-être."

end if

---------

select case sheet(1).cells(1,1)

case is = "Oui", "Peut-être oui"

msgbox "Oui, enfin peut-être."

end select

Le résultat est le même mais tu as gagné en lisibilité.
Un code lisible et bien séquencé est plus facile à travailler et retoucher.

Je constate également que les derniers colonnes en bleu ne sont pas actives ni en ouvrant par toto ni par banane, comment les rendre actives?

Dans le select case.
Il faut modifier la plage dans les appels des procedures
- unlockcell
- Vérouille


Si je veux faire une modification sur la totalité d'une colonne (ex : couleur ou formule), comment ?

Tu peux te créer un nouveau "case" dans le select case avec ton ID.(qui dévérouille tout le document).


Si je veux protéger les macros contre modification (utilisateurs) , comment?

Là, c'est plus complexe. Il faut désactiver l'accès à l'editeur VBA ou mettre un mot de passe pour y accéder.
Sur ce point je ne peux pas t'aider de façon rapide. Je vais chercher voir ce que je trouve.
 
Dernière édition:

chreitate

XLDnaute Junior
Re : Model_fichiers_utilisateurs_multiple

Merci,
Salutations.
module1 : stocke les macro :
Dévérouille (retire la protection globale de la feuille)
unlockcell (retire dans les paramètres le vérouillage des cellules sur une plage ciblée de la feuille)
Vérouille (Active la protection du fichier sur la plage ciblé de la feuille)




C'est un module qui s'applique sur l'ensemble du classeur selon un événement précis.

la fonction sub workbook_open()
signifie que la macro se lance à l'ouverture du classeur.

une inputbox est ouverte pour reconnaitre l'utilisateur. (car je ne connaissais pas leur ID)
Le texte entré dans l'inputbox est stocké dans une variable texte "ID"

ID va être comparé grâce à un select case.
selon le cas l'action sera différente et les plages ciblées ne seront pas les mêmes.





= texte qui entré dans une variable mdp du module1.
Ce texte représente le mot de passe pour dévérouiller la feuille.



= saut de ligne dans du texte



= La fonction select case resemble à la fonction IF. (mais elle est plus rapide à l'execution et permet de regrouper aisément les cas).

If then
elseif
else
end if

select case
case is =
case else
end if

select case est plus lisible lors d'une utilisation de OR dans IF.

exemple:



---------



Le résultat est le même mais tu as gagné en lisibilité.
Un code lisible et bien séquencé est plus facile à travailler et retoucher.



Dans le select case.
Il faut modifier la plage dans les appels des procedures
- unlockcell
- Vérouille




Tu peux te créer un nouveau "case" dans le select case avec ton ID.(qui dévérouille tout le document).




Là, c'est plus complexe. Il faut désactiver l'accès à l'editeur VBA ou mettre un mot de passe pour y accéder.
Sur ce point je ne peux pas t'aider de façon rapide. Je vais chercher voir ce que je trouve.
 

Yakou

XLDnaute Nouveau
Re : Model_fichiers_utilisateurs_multiple

J'ai trouvé une discussion sur le forum qui aborde la protection de ton code.

Disction sur les protection de macro

Cela permettra de masquer ton code.
Pour un mot de passe efficace.

Éviter les mots
Avoir des minuscules et majuscule
Avoir des chiffres
Avoir des caractères spéciaux.


Je crois qu'ajouté un certificat te permet d'être détenteur du fichier et donc limite partiellement l'ajout de certain composant.
Le certificat reste sur la copie.
Je pense qu'il y a peu être à creuser sur ce point.

Tu peux aussi mettre une macro sur ton programme qui à l'ouverture écrit dans un fichier texte ou t'envoie un mail d'outlook
pour l’indiquer qui a ouvert ton fichier.

je rappel la loi sur le piratage l'article 462-2:

"Quiconque, frauduleusement, aura accédé ou se sera maintenu dans tout ou partie d'un système de traitement automatisé de données sera puni d'un emprisonnement de 2 mois à 1 ans et d'une amende de 300 à 7600€ ou l'une des 2 peines."
 
Dernière édition:

chreitate

XLDnaute Junior
Re : Model_fichiers_utilisateurs_multiple

Merci infiniment, vous m'avez bcp aidé ainsi que le furum.
Salutations.
Bonjour,
Je reviens à vous pour demander votre aide sur ce problème:
J'ai un classeur à multiple utilisation, y a t-il de possibilité des protéger les colonnes par plusieurs mots de passe chaque utilisateur aura sa protection sur ce fichier partagé mais qui concerne uniquement les colonnes qui lui appartiennent.
Un fichier joint sert comme exemple, chaque colleur correspond à un utilisateur.
Merci
 

jhlamoustache

XLDnaute Occasionnel
Re : Model_fichiers_utilisateurs_multiple

Bonsoir à tous.

C'est ma première participation à ce forum. Veuillez excuser par avance mes maladresses.
J'ai moi même conçu un fichier partagé. Et ce qui précède m’intéresse. J'ai deux questions :

Le verrouillage déverrouillage de plages fonctionnent correctement avec du code VBA alors que ces commandes ne sont pas accessibles lorsque le classeur est partagé. Ai-je bien compris?

Les utilisateurs se serviront d'une interface pour renseigner la feuille de calcul. Est-il possible qu'il y ait confusion des variables, et donc des résultats en cas d'utilisation simultanée de l'interface? Ex : si j'appelle r ma variable de ligne. Pierre sélectionne dans une listbox un item correspondant à r = 25 (ligne 25 de la feuille de calcul) et réfléchit. Pendant ce temps Lucie sélectionne l'item correspondant à r = 50. Pierre décide alors de cliquer sur le bouton ajouter. Que se passera-t-il? Exécution des instructions avec la valeur 25 ou 50?
 

Discussions similaires

Statistiques des forums

Discussions
312 321
Messages
2 087 265
Membres
103 501
dernier inscrit
talebafia