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 :

Problème Verouillage Cellule excel 2003 : For each


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 10
    Points : 5
    Points
    5
    Par défaut Problème Verouillage Cellule excel 2003 : For each
    Bonjour,
    J'ai crée un fichier pour les congés dans ma boite. Malheureusement je n'ai pas les bases pour développer correctement moi même le code en VBA, et je me suis servi de code récupéré a gauche et droite sur des forums en tachant d'en comprendre le fonctionnement. Voila donc mon Problème. Le code :

    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
    Private Sub ValidationBOX_Click()
     
    Select Case ValidationBOX
        Case True
        MsgBox _
                "Vous Pouvez maintenant Saisir", _
                vbExclamation, "Informations"
     
                ActiveSheet.Unprotect ("08!"): Range("A8:G30").Locked = False
     
                ActiveSheet.Protect Password:="08!"
     
        Case False
     
       ' MsgBox _
                "Vous devez valider pour pouvoir saisir", _
                vbExclamation, "Informations"
     
                ActiveSheet.Unprotect ("08!"): Range("A8:G30").Locked = True
                ActiveSheet.Protect Password:="08!"
     
                End Select
    'On empeche de modifier les lignes deja saisies (fonctionne sur excel 2007 et supérieur
     
    For Each c In Sheets("Congés").Range("A8:G30")
        If c <> "" Then
           ActiveSheet.Unprotect Password:="08!"
           c.Locked = True
          ActiveSheet.Protect Password:="08!"
       End If
    Next c
     
    End Sub
    En gros il faut cocher la case pour pouvoir saisir,mais une fois une cellule saisie elle doit se verrouiller pour ne plus être modifiée.

    Ceci Fonctionne très bien à partir d'office 2007 mais pas sur 2003. J'ai une erreur d’exécution 13 "incompatibilité de type".J'ai arpenté les forums qui parlent d'un problème de variable.
    Je peux joindre le fichier ci besoin pour illustrer mon problème.
    Merci par avance de votre aide.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 258
    Points : 306
    Points
    306
    Par défaut
    Il faudrait savoir sur quelle ligne il te donne le défaut de compatibilité.

    j'en vois 2 possibles:

    1 / Retirer l'apostrophe devant Msgbox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      Case False
     
       ' MsgBox _
                "Vous devez valider pour pouvoir saisir", _
                vbExclamation, "Informations"
    Mais je pense que tu l'aurais vu

    2/ Peut etre déclarer la variable c comme étant une cellule en tête de fonction.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim c As CellFormat
    Christophe

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Merci de ton aide Christophe, mais en ajoutant ce code j'ai le problème sur 2003 et 2007.Si je le retire ok pour 2007.

  4. #4
    Futur Membre du Club
    Inscrit en
    Janvier 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Bien, Christophe tu m'as mis sur la voie. il fallait declarer "c" en plage de cellule :

    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
    Dim c As Range
     
    Select Case ValidationBOX
        Case True
        MsgBox _
                "Vous Pouvez maintenant Saisir", _
                vbExclamation, "Informations"
                ActiveSheet.Unprotect ("08!"): Range("A8:G30").Locked = False
                ActiveSheet.Protect Password:="08!"
     
        Case False
     
       ' MsgBox _
                "Vous devez valider pour pouvoir saisir", _
                vbExclamation, "Informations"
     
                ActiveSheet.Unprotect ("08!"): Range("A8:G30").Locked = True
                ActiveSheet.Protect Password:="08!"
    End Select
     
    'On empeche de modifier les lignes deja saisies
     
    For Each c In Sheets("Congés").Range("A8:G30")
       If c <> "" Then
           ActiveSheet.Unprotect Password:="08!"
           c.Locked = True
          ActiveSheet.Protect Password:="08!"
       End If
    Next c
    Merci Beaucoup !!

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

Discussions similaires

  1. Problème de soustraction dans Boucle For each
    Par athos7776 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/04/2011, 05h46
  2. Coloration suivant le résultat d'un calcul de la cellule [Excel 2003 SP3]
    Par Gegeleblond dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/02/2009, 17h07
  3. Affichage d'image .bmp dans cellule excel 2003
    Par samson_02 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 03/02/2009, 22h10
  4. [Excel-VBA] For Each..Next
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/09/2006, 17h23
  5. [VBA-A]Problème de cellule Excel vide
    Par soad029 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 05/05/2006, 14h12

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