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

VB 6 et antérieur Discussion :

Verrouillage de cellules Excel après remplissage (VB6)


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Homme Profil pro
    Services rédactionnels
    Inscrit en
    Juin 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Services rédactionnels

    Informations forums :
    Inscription : Juin 2014
    Messages : 18
    Points : 11
    Points
    11
    Par défaut Verrouillage de cellules Excel après remplissage (VB6)
    Bonjour à tous,
    je tente depuis un moment de verrouiller des cellules d'un fichier Excel après les avoir remplis de différentes informations récupérées dans une BD postgres ou directement des champs remplis dans l'application.
    Tout se passe bien pour l'ouverture du fichier, le remplissage des champs mais le verrouillage provoque une erreur que je ne comprends pas bien.
    Voici le bout de 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
     Dim bdcModel
              Dim objWorkBook
     
           Set bdcModel = CreateObject("Excel.Application")
             bdcModel.Visible = True
          Set objWorkBook = bdcModel.Workbooks.Open("F:\Stage_BTS_SIO\bdcModel.xltx")
          attente = DoEvents()
          With bdcModel
              .cells.Locked = False
              .cells(11, "C") = idcommande
              .cells(12, "C") = frmFonctionnement.cboAgents.Text
              .cells(15, "C") = frmFonctionnement.txtDate.Text
              .cells(29, "C") = frmFonctionnement.txtMontant.Text
              .cells(11, "C").Locked = True
              .cells(12, "C").Locked = True
              .cells(15, "C").Locked = True
              .cells(29, "C").Locked = True
              '.Cells(28, "B") = "Il reste " & etat & "€ sur le budget primitif alloué à cette action et à cet article"
              .ActivateSheet.protect DrawingObjects:=True, Contents:=True, Scenarios:=True
           End With
    Je précise que le fichier est un brouillon comme son extension le précise d'ailleurs déjà et que le fichier qui s'ouvre est bien un fichier excel normal xls


    L'erreur est la suivante : Erreur d'exécution 1004 : impossible de définir la propriété Locked de la classe Range.


    Avez-vous une idée d'où ça coince ?
    Merci

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 806
    Points
    5 806
    Par défaut
    On doit déverrouiller d'abord la feuille(ou plage de cellules) puis le(s) verrouiller :
    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
        Sub Verouillage()
            Sheets("MyData").Select
            ActiveSheet.Unprotect
            Range("B6:F6,B3:F3,E3:F4,B7:D32").Select
            Range("B7").Activate
            Selection.Locked = True
            Selection.FormulaHidden = False
            ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
            Range("A1").Select
        End Sub
    '=========================    
        Sub Deverouillage()
            Sheets("MyData").Visible = True
            Sheets("MyData").Select
            ActiveSheet.Unprotect
            Cells.Select
            Selection.Locked = False
            Selection.FormulaHidden = False
        End Sub
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  3. #3
    Membre à l'essai
    Homme Profil pro
    Services rédactionnels
    Inscrit en
    Juin 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Services rédactionnels

    Informations forums :
    Inscription : Juin 2014
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    Merci pour votre réponse !

    Je suis finalement passé par un verrouillage dans Excel puis ce code-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     Set bondecommande = CreateObject("Excel.Application")
             bondecommande.Visible = True
          Set objWorkBook = bondecommande.Workbooks.Open("F:\Stage_BTS_SIO\bondecommande.xltx")
             With bondecommande
                .ActiveSheet.Unprotect
                .Cells(11, "C") = idcommande
                .Cells(12, "C") = frmInvestissement.cboAgents.Text
                .Cells(15, "C") = frmInvestissement.txtDate.Text
                .Cells(29, "C") = frmInvestissement.txtMontant.Text
                .ActiveSheet.Protect
    Ce n'est peut-être encore une fois pas très académique mais le résultat correspond à mes attentes...


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

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. Réponses: 5
    Dernier message: 15/07/2007, 22h49
  3. remplissage d'une cellule excel
    Par magictom42 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 26/10/2006, 09h24
  4. Remplissage automatique de cellules Excel à partir d'une liste
    Par Gullivert dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 31/08/2006, 17h48
  5. faire liaison Zone texte en VB6 avec cellule Excel
    Par brahime dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 21/05/2006, 21h25

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