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 :

Ajouter un commentaire à une cellule verrouillée


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Par défaut Ajouter un commentaire à une cellule verrouillée
    Bonjour à tous,

    Je programme depuis peu en VBA pour Excel et je rencontre un problème auquel je ne trouve pas de solution.

    Je dois construire un fichier qui va valider des données, via macro, et que je dois fournir à des clients. Afin d'éviter toute mauvaise manipulation de la part du client, je dois verrouiller certaines cellules.
    Le problème est qu'après avoir protégé la feuille excel, quand la macro essaye d'insérer un commentaire, j'ai une erreur 1004 "Cell is protected ... blabalbla"

    Ci-dessous, la fonction qui foire et ci-joint, le fichier xls de test.

    Ca fait deux jours que je cherche une solution et toujours rien (d'habitude Google m'est plus utile que ça )

    Donc, pouvez-vous m'aider? Ca me ferait grand plaisir ;-)

    Merci d'avance

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    /*********************************************************/
    Sub Highlight_Cell()
     
        Dim c As Comment
        Dim ws As Worksheet
        Dim i As Integer, j As Integer
     
        i = 3
        j = 8
     
        Set ws = Application.Sheets(1)
     
        ' highlight empty cell in red
        ws.Cells(i, j).Interior.Color = RGB(255, 170, 170)
        ws.Cells(i, j).Font.Color = RGB(255, 0, 0)
     
        ' unlock the cell
        'If ws.Cells(i, j).Locked = True Then
        '    ws.Cells(i, j).Locked = False
        'End If
     
        If ws.Cells(i, j).Comment Is Nothing Then
            Set c = ws.Cells(i, j).AddComment
        Else
            Set c = ws.Cells(i, j).Comment
        End If
     
        c.Visible = True
        c.Text "- Test test"
        c.Shape.TextFrame.AutoSize = True
        c.Shape.Shadow.Transparency = 0.5
        c.Shape.Top = c.Parent.Offset(-2, 0).Top
        c.Shape.Left = c.Parent.Offset(0, 2).Left - 30
     
        ' lock the cell
        'ws.Cells(i, j).Locked = False
     
    End Sub
    Fichiers attachés Fichiers attachés

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Par défaut
    Bonjour,

    il faut que tu dé-protèges ta feuille avant l'éxécution de ton code, et puis re-protèges après :

    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
    16
    17
    Sub Highlight_Cell()
     
        Dim c As Comment
        Dim ws As Worksheet
        Dim i As Integer, j As Integer
     
        i = 3
        j = 8
     
        Set ws = Application.Sheets(1)
    ws.Unprotect "mot de passe"
     
    ' execution du code qui modifie la feuille
     
    ws.Protect "mot de passe", AllowFormattingCells:=True, Scenarios:=False, Contents:=False, UserInterfaceOnly:=True
     
    End Sub
    D'ailleurs, je te conseille de définir une variable public pour ton mdp, au cas où tu aurais à le changer... Ca sera plus simple que de remplacer (CTRL+H) ton mdp dans tous les modules du projet.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Par défaut
    Ok merci, j'entrevois le bout du tunnel!

    Ca fonctionne MAIS ... ma sheet reste non protégée après la manipulation, pourtant j'ai bien mon sheet.protect en bout de procédure ... je creuse ;-)

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Par défaut
    Un petit état d'avancement des choses ...

    - Grâce à Unprotect, j'arrive bien à permettre d'insérer des commentaires dans les cellules protégées
    - problème: chaque cellule qui a été traitée, passe en mode locked. Ce qui est embêtant étant donné que le client doit pouvoir éditer les cellules qui ont un commentaire (car non valides)
    - problème: la sheet ne passe pas en mode protégée après les opérations ... j'imagine que c'est un problème que je vais savoir résoudre seul, ça

    des idées pour le locked?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Par défaut
    ok trouvé!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Application.Sheets(x).Cells(i,j).Locked = False

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajouter un commentaire à une vidéo Youtube avec zend Framework
    Par donovanes dans le forum Zend Framework
    Réponses: 0
    Dernier message: 29/12/2012, 16h41
  2. [XL-2003] Adapter la largeur du commentaire ajouté à une cellule
    Par zangaloni dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/04/2011, 11h20
  3. Ajouter des caractères à une cellule
    Par DarkGriffin dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 05/06/2009, 15h43
  4. [OLE] Excel : Ajouter un commentaire à une cellule
    Par Vertyos dans le forum Delphi
    Réponses: 5
    Dernier message: 09/11/2006, 19h26
  5. [VB6] Ajouter un commentaire à une fonction d'une DLL
    Par Ace303 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 05/06/2003, 08h14

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