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 :

Verrouillage de cellules


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    985
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 985
    Par défaut Verrouillage de cellules
    Bonjour à Tous ,

    Un petit coup de main me serait très utile pour me permettre
    de verrouiller l'écriture dans une série de cellules comportant entre autres des formules à protéger ou des données
    j'ai vainement tenté cela mais malgré l'avertissement les cellules sont ecrites et je perds toute la dissuasion recherchée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Cel As Range
    Dim vligneder As Long
    vligneder = [A65535].End(xlUp).Row
    If Intersect(Target, Range("J7", "P" & vligneder)) Is Nothing Then Exit Sub
       For Each Cel In Intersect(Target, Range("J7", "P" & vligneder))
            MsgBox " On ne peut pas modifier le contenu !"
       Next Cel
    End Sub
    Il s'agit donc d'interdire l'ecriture dans une zone "J7" à "P.."

    Merci par avance pour votre aide
    A++

  2. #2
    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,

    La procédure normale est de dévérouiller en protection les cellules qu'on veut pouvoir écrire et de protéger la feuille ensuite...

    il y a plein d'exemple sur le forum,

    à voir...

    cordialement,

    didier

  3. #3
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    985
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 985
    Par défaut RE...
    Salut Ormonth

    Justement mon problème est de passer par du VBA et non pas
    un verrouillage classique de feuille car j'ai dans ma feuille , une ligne de filtre
    et dès que je verouille mes cellules je perds la fonction de ma ligne de filtre
    J'ai bien sûr recherché sur le forum le code et je n'ai pas trouver
    mon bonheur

    A++

  4. #4
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour cobra38 Ormonth le forum tu peus tenter un truc dans ce genre ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     If Not Application.Intersect(Target, Range("J7", "P" & [A65535].End(xlUp).Row)) Is Nothing Then
     Protect Password:="toto"
     Else
     Unprotect Password:="toto"
     End If
    End Sub

  5. #5
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    985
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 985
    Par défaut RE....
    Bonjour à Toutes et Tous

    laetitia
    j'ai tenté effectivement et cela fonctionne
    tant je ne veux pas ecrire dans la zone concernée
    mais....
    En fait, je passe par un USF qui me remplit les données dans la zone concernée et si je mets la protection là çà plante
    il faut l'enlever avant mise à jour et ensuite la remettre ( cf Ormonth)
    mais là où je ne pige pas c'est que je suis sous mon USF au moment de valider mes données alors que la protection elle s'effectue dans la feuille ( sheets )
    comment déproteger lorsque je suis sous mon USF ?

    A++

  6. #6
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    re, il faut appliquer le meme principe. suppose un bouton pour valider dans ton user
    un exemple simple 2 textbox copier dans la feuille

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub valider_Click()
     Sheets(1).Unprotect Password:="toto"
     [j9] = TextBox1.Value
     [j10] = TextBox2.Value
     'ton code
     Sheets(1).Protect Password:="toto"
    End Sub

  7. #7
    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,

    Euh Laetitia t'as donné la solution, il faut essayer de la décrypter et de l'adapter, il a 36 façons genre tu peux faire deux procédures et y faire appel quand il en est besoin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Sub ProtectF()
    Dim objFeuillP As Worksheet
     
    Application.ScreenUpdating = False
    For Each objFeuillP In ThisWorkbook.Worksheets
        objFeuillP.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=gvstrMotProtect
        objFeuillP.EnableSelection = xlNoSelection
    Next
    Application.ScreenUpdating = True
    Set objFeuillP = Nothing
    End Sub
    Sub NoProtectF()
    Dim objFeuillP As Worksheet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Application.ScreenUpdating = False
    For Each objFeuillP In ThisWorkbook.Worksheets
        objFeuillP.Unprotect Password:=gvstrMotProtect
    Next
    Application.ScreenUpdating = True
    Set objFeuillP = Nothing
    End Sub
    gvstrMotProtect est une variable contenant le mot de passe.

    cordialement,

    Didier

Discussions similaires

  1. verrouillage partiel cellules Excel /via VBA
    Par belzebuth007 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/06/2010, 16h12
  2. [Toutes versions] Verrouillage des cellules avec différentes versions d'Excel
    Par zahr kall dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/04/2009, 10h09
  3. Verrouillages des cellules VBA
    Par peofofo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/07/2008, 10h40
  4. Réponses: 5
    Dernier message: 15/07/2007, 22h49
  5. [VBA-E] Verrouillage de cellules isolées
    Par repié dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/02/2006, 16h40

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