IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Feuille protégée, document partagé, sauvegarder via macro.


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    salarié
    Inscrit en
    Janvier 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : salarié
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 24
    Par défaut Feuille protégée, document partagé, sauvegarder via macro.
    Bonjour à tous,

    J'ai créé un masque de saisie sur un document Excel, mais je me retrouve le bec dans l'eau.

    Le commanditaire souhaite que la feuille soit protégée, et donc modifiable via le formulaire VBA uniquement. J'ai donc utilisé les commandes worksheets("").Unprotect et Worksheets("").Protect

    Celà fonctionne parfaitement. Mais le commanditaire m'est revenu avec un problème :
    Le document est partagé entre plusieurs utilisateurs.
    Je pensais donc utiliser la commande Protectsharing, mais je n'obtiens pas le résultat escompté.

    Quelqu'un aurait une idée ?

    Cordialement, Jérôme D

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     'Sauvegarde du document
    ThisWorkbook.Save
    Worksheets("saisie").Unprotectsharing
    If Rad_Oui_depot.Value = True Then
    Worksheets("saisie").Range("L1").Value = "Oui"
    Else
    Worksheets("saisie").Range("L1").Value = "Non"
    End If
     
    If Check_Oui_6semaines.Value = True Then
    Worksheets("saisie").Range("M1").Value = "Oui"
    Else
    Worksheets("saisie").Range("M1").Value = "Non"
    End If    
        Worksheets("saisie").ProtectSharing

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 153
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je ne sais pas si cela répond à ta question mais il est possible de protéger une feuille pour l'utilisateur et permettre l'écriture par VBA.
    Il s'agit de la propriété userinterfaceonly dont la valeur doit être à True
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Feuil1.Protect Password:= "Toto", userinterfaceonly:=True
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre averti
    Homme Profil pro
    salarié
    Inscrit en
    Janvier 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : salarié
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 24
    Par défaut
    Bonjour,

    Merci pour votre réponse, j'aurai besoin d'une petite précision :
    Où copier ce code ?
    Je ne vois pas trop où le mettre, ni sous quel sub l'enregistrer.

    cordialement, Jérôme D

  4. #4
    Membre extrêmement actif
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 037
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Un classeur partagé, ça veut dire que des utilisateurs spécifiques y ont des droits d'accès en lecture uniquement ou lecture/écriture.

    l'utilisateur s'identifie à l'ouverture pour que le classeur soit disponible conformément au droit d'accès qui lui est attribué.

    La protection du partage ne s'applique qu'au classeur et non à l'Objet worksheet.

    ProtectSharing sert juste à empêcher l'utilisateur de supprimer l'historique des modifications.

    les autorisations spéciales par contre sont applicables aux plages des feuilles.

    Il faut bien comprendre les nuances d'autorisation de modification de plages et de droits d'accès au classeur et ne pas faire des définitions conflictuelles.


    Dans un classeur partagé il n'est plus question de modifier les autorisations spéciales à moins de ne supprimer le partage peut-être ou de refaire un classeur avec ces autorisations de plage avant la définition du partage du classeur.

    ton code ne peut accéder aux fonctionnalités non disponibles. Et Y en a des tas de fonctionnalités auxquels tu n'as plus accès notamment la protection.
    Les fonctionnalités de mise en page ou d'impression sont pour la plupart disponible.
    tu peux par exemple insérer une feuille mais tu ne peux manipuler sa protection. et insérer une ligne ou colonne entière dans la nouvelle feuille mais pas une plage.
    En un mot il faut comprendre que c'est un classeur estropié que tu auras à bien organiser avant le partage.

  5. #5
    Membre averti
    Homme Profil pro
    salarié
    Inscrit en
    Janvier 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : salarié
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 24
    Par défaut
    Bonjour,

    Merci de vous pencher sur mon problème.

    Donc si je comprends bien, je dois d'abord définir les propriétés d'accès et de modification dans le document Excel, pour restreindre les possibilités de rectification uniquement via VBA.

    Il me faut pour celà me concentrer sur les possibilités d'Excel, et non chercher la solution via VBA ?

    Cordialement, Jérôme D

Discussions similaires

  1. [XL-2003] Macro tri sur feuille protégée et classeur partagé
    Par bralbouy dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/12/2011, 16h05
  2. [XL-2003] Macro tri sur feuille protégée et classeur partagé
    Par bralbouy dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 29/12/2011, 14h47
  3. Réponses: 10
    Dernier message: 05/04/2011, 17h27
  4. [XL-2007] Macro sur feuille protégée et formulaire
    Par _ryo_ dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/02/2010, 16h12
  5. [E - 03] Probleme de protection feuille via MACRO
    Par crochepatte dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/03/2009, 13h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo