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 :

Sécuriser cellules via VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 63
    Par défaut Sécuriser cellules via VBA
    Bonjour à tous,

    j'aimerais savoir comment sécuriser uniquement certaines cellules d'une feuille excel, via VBA. Par exemple, j'ai ma macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub CommandButton1_Click()
     
    Worksheets("Feuil1").UsedRange.Rows(1 & ":" & 3).Insert Shift:=xlDown
    Worksheets("Feuil1").UsedRange.Rows(1 & ":" & 3).HorizontalAlignment = xlCenter
     
    Worksheets("Feuil1").Range("C1").Interior.ColorIndex = 25
    Worksheets("Feuil1").Range("C3").Interior.ColorIndex = 22
    Worksheets("Feuil1").Range("D2").Interior.ColorIndex = 6
     
    End Sub
    Qui crée 3 cellules colorées. J'aimerais rajouter un bout de code pour que ces cellules soient protégées (l'utilisateur ne peut pas y toucher) alors que le reste de la feuille reste accessible.
    Savez vous comment je peux m'y prendre? J'ai déjà fouillé sur Internet et sur l'aide VBA mais je n'ai pas trouvé.

    Merci d'avance pour vos réponses,

    Cordialement

  2. #2
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Salut,

    Soit tu passe par la protection de la feuille soit tu utilise l'évènement SelectionChange dans un module de feuille qui empèche la sélection de ces cellules, par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
    If Target.Address = "$C$1" Or Target.Address = "$C$3" Or Target.Address = "$D$2" Then
        Target.Offset(1, 0).Select
        MsgBox "Cellule non accessible"
    End If
     
    End Sub
    A+

  3. #3
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    Faire une recherche sur le forum, le FAQ, les tutos, genre :

    http://vb.developpez.com/faqvba/?page=3.3#protSheet, vois aussi le sommaire...

    Le principe est qu'on ne protège pas une cellule, mais qu'on déverrouille les cellules qu'on veut accessibles via format de cellule, protection, décoche de verrouillée (et son équivalent vba obtenu acve l'enregistreur si besoin) , et c'est une fois le Feuille protégée que le système est actif...

    dans l'aide vba :

    Protection des éléments contre tous les utilisateurs Vous pouvez empêcher les utilisateurs d'insérer, de supprimer et de mettre en forme les lignes et les colonnes, de modifier le contenu des cellules verrouillées et de déplacer le curseur vers des cellules verrouillées ou non verrouillées.

    Par défaut, toutes les cellules d'une feuille de calcul sont verrouillées. Avant de protéger une feuille de calcul, vous pouvez déverrouiller les cellules auxquelles les utilisateurs pourront accéder et modifier, de deux manières. Pour déverrouiller les cellules pour tous les utilisateurs, utilisez l'onglet Protection de la boîte de dialogue Format de cellules. Pour déverrouiller les cellules pour des utilisateurs spécifiques, utilisez la boîte de dialogue Permettre la modification des plages. Toutes les plages que vous spécifiez dans cette boîte de dialogue et auxquelles vous n'affectez aucun mot de passe (mot de passe : façon de limiter l’accès à un classeur, une feuille de calcul ou une partie de feuille de calcul. Les mots de passe Microsoft Excel peuvent comporter jusqu’à 255 lettres, chiffres, espaces et symboles. Vous devez différencier les majuscules des minuscules lors de la frappe des mots de passe.) sont également déverrouillées pour tous les utilisateurs. Les cellules que vous laissez verrouillées sont protégées à condition que vous protégiez la feuille de calcul.

    Les autres fonctionnalités et éléments de feuille de calcul dont vous pouvez restreindre l'accès de tous les utilisateurs sont les liens hypertexte (lien hypertexte : texte souligné et en couleur ou graphique sur lequel vous cliquez pour atteindre un fichier, un endroit spécifique dans un fichier, une page Web sur le World Wide Web ou une page Web sur un intranet. Les liens hypertexte permettent également d’accéder à des groupes de discussion et à des sites Gopher, Telnet et FTP.), le tri, le filtre automatique, les rapports de tableau croisé dynamique (rapport de tableau croisé dynamique : rapport interactif sous forme de tableau croisé Microsoft Excel qui synthétise et analyse les données, telles que des enregistrements de base de données, de diverses sources, y compris celles externes à Excel.), les objets graphiques et les scénarios (scénario : ensemble nommé de valeurs d’entrée que vous pouvez insérer dans un modèle de feuille de calcul.). Ces protections s'appliquent à tous les utilisateurs et à tout le classeur et ne se limitent pas à des utilisateurs individuels ou à des plages de données.

    Pour les feuilles graphiques, vous pouvez protéger le contenu d'un graphique contre des modifications et empêcher la suppression ou la modification de tout objet graphique d'une feuille. Une feuille graphique protégée est mise à jour chaque fois que les données sources du graphique sont modifiées.

    Octroi de l'accès aux plages protégées pour des utilisateurs spécifiques Si vous disposez du système d'exploitation Windows 2000, vous pouvez permettre à des utilisateurs spécifiques de modifier certaines cellules ou plages. Les utilisateurs auxquels vous octroyez l'accès peuvent modifier les cellules même si les cellules sont verrouillées. Vos restrictions en matière d'accès ne prennent effet qu'après avoir protégé la feuille de calcul.

    Les utilisateurs que vous spécifiez dans la boîte de dialogue Autorisations pour Plage peuvent automatiquement modifier la plage sans entrer de mot de passe. D'autres utilisateurs sont invités à entrer le mot de passe, à la suite de quoi ils pourront modifier la plage. Si une cellule appartient à plusieurs plages, les utilisateurs autorisés à modifier toutes les plages, peuvent alors modifier la cellule. Si un utilisateur tente de modifier plusieurs cellules à la fois et s'il est seulement autorisé à en modifier quelques-unes, l'utilisateur est invité à sélectionner et à modifier les cellules une par une.
    cordialement,

    Didier

Discussions similaires

  1. [XL-2003] Imposer 1ere lettre majuscule dans cellule via VBA
    Par medino55 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/07/2011, 03h34
  2. [XL-2010] Ecriture d'une fonction dans une cellule via VBA
    Par Seb-Office dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 11/11/2010, 17h39
  3. introduire formule dans une cellule via VBA
    Par lilly91 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/02/2010, 16h16
  4. Inserer une formule (Longue) dans une cellule via VBA
    Par alex830001 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/01/2009, 12h28
  5. probleme insertion formule dans cellule via vba
    Par moxo01 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/06/2008, 11h06

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