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 :

Macro pour enlever protection de cellules


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur
    Inscrit en
    Janvier 2010
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2010
    Messages : 272
    Par défaut Macro pour enlever protection de cellules
    Bonjour à toutes et à tous,

    Lors de la suppression via macro d'une plage de cellules B, je suis confronté au problème de protection de celles-ci. Ces cellules B sont en effet des copies de cellules A qui doivent être protégées à tout prix.
    L'utilisateur a la possibilité de supprimer les cellules B. Sauf que ma macro de suppression ne fonctionne pas, puisque les cellules B sont protégées.

    J'ai essayé de m'inspirer du lien ci-dessous, sans trouver de solution convaincante à mon problème (en fait, je n'arrive pas à utiliser la fonction "unprotect" manifestement..) :

    http://www.developpez.net/forums/d42...n-feuille-vba/

    Toute idée est la bienvenue
    Merci d'avance !

  2. #2
    Membre expérimenté
    Homme Profil pro
    Technicien qualité et métrologie industrielle
    Inscrit en
    Avril 2011
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien qualité et métrologie industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 116
    Par défaut
    Bonjour,

    je pense que déprotéger la feuille avant de supprimer et la protéger après la suppression de la colonne B devrait suffire ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        ActiveSheet.Unprotect
        Columns("B:B").Delete
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    Cordialement

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur
    Inscrit en
    Janvier 2010
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2010
    Messages : 272
    Par défaut
    C'est parfait, merci beaucoup !
    Je travaillais trop spécifiquement, avec les cellules, quand il apparaît bien plus simple de jouer sur la protection de la feuille entière !

    Une autre petite question : qu'est-ce qui ne va pas dans le code ci-dessous ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If Range("E9").Value < Range("f18").Value Then
                            Range("c21").Value = 0
                        Else
                            Range("c21").Value = Sum("B4:B8") + Sum("e4:e8")) / (sqrt(3) * Range("m3").Value)
                        End If
    Lors de l’exécution de la macro, l'erreur "Sub ou Fonction non définie"

    apparaît..

    Merci encore !

  4. #4
    Membre expérimenté
    Homme Profil pro
    Technicien qualité et métrologie industrielle
    Inscrit en
    Avril 2011
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien qualité et métrologie industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 116
    Par défaut
    C'est normal la fonction ne s'utilise pas comme ça, essai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If Range("E9").Value < Range("F18").Value Then
        Range("C21").Value = 0
        Else
            Range("C21").Value = Application.Sum(Range("B4:B8")) + Application.Sum(Range("E4:E8")) / (Sqr(3) * Range("M3").Value)
        End If
    Et en VBA sqrt devient Sqr(3).

    Cordialement

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur
    Inscrit en
    Janvier 2010
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2010
    Messages : 272
    Par défaut
    En plein dans le mille une fois encore !
    Merci beaucoup..

    Quel est alors le problème avec la syntaxe ci-dessous, avec cel défini comme Range ? L'erreur 'Incompatibilité de type" apparaît, j'ai bien essayé d'enlever les guillemets, sans effet..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Sum("cel.Offset(0,-3):cel.Offset(i,-3)")
    Merci..!

  6. #6
    Membre expérimenté
    Homme Profil pro
    Technicien qualité et métrologie industrielle
    Inscrit en
    Avril 2011
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien qualité et métrologie industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 116
    Par défaut
    Oula ! ça me parait bizare ce que tu essai de faire...
    C'est assez incohérent, l'offset s'utilise comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.Offset(0, -3).Select
    Mais dans ton cas je sais pas si cela va t'aider =S

    Peut-tu m'expliquer ce que tu veux faire et le but de cette manip ?

    Enfin je pense savoir ce que tu essai de faire mais tu dois t'y prendre comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range(Cells(x, i - 3), Cells(x, i - 3)).Select
    Application.Sum(Selection)
    d'abords sélectionner les cases et ensuite faire la somme.

    En ce qui concerne les variables, comment les mettre en place, il me faudrait plus d'infos sur ce que tu veux exactement pour t'aider =)

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

Discussions similaires

  1. macro pour selectionner la premiere cellule vide de mon tableau
    Par trickzer dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 09/01/2018, 21h38
  2. [XL-2003] Macro pour modifier caractère de cellules
    Par FCL31 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 10/04/2009, 12h44
  3. Macro pour coller série de cellules dans liste
    Par Phyvon61 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/01/2009, 19h26
  4. Macro pour changer automatiquement certaines cellules?
    Par Zantetsu dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/01/2009, 19h54
  5. [VBA-E] Macro pour copier cellules
    Par jfamiens dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 07/06/2006, 20h02

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