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 :

Interdire l'effacement d'une cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Gestionnaire de paies
    Inscrit en
    Octobre 2016
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Gestionnaire de paies
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2016
    Messages : 77
    Par défaut Interdire l'effacement d'une cellule
    Bonjour,

    Je souhaite interdire l'effacement d'une cellule qui contient une formule. Je précise : le fichier ne doit pas être verrouillé.

    Voici un appercu du fichier : Nom : Capture.PNG
Affichages : 1817
Taille : 10,4 Ko

    Les cellules grisées sont celles avec les formules. Ces cellules, dont les colonnes commencent par "JANVIER", "FEVRIER", "MARS", "AVRIL", "MAI", "JUIN" ou "JUILLET" et dont les lignes commencent par "CUMUL 1" et "CUMUL 2", ne peuvent pas être supprimées.

    Je précise je ne peux pas cibler la macro sur les cellules B6 à H7 car le fichier peut être sur une autre plage ou il peut y avoir d'autres lignes ou colonnes d'insérées.

    J'ai une petite idée de ce qui peut être écrit mais je n'arrive pas à le poser ...

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour,

    alors ne pas utiliser Excel si non respect de son fonctionnement !   Envisager Access par exemple.

    Sinon sous Excel c'est simple :  déprotéger uniquement les cellules de saisie puis protéger la feuille de calculs …

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Stockholm, London, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  3. #3
    Membre émérite Avatar de Nicolas JACQUIN
    Homme Profil pro
    .
    Inscrit en
    Avril 2014
    Messages
    556
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : .
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2014
    Messages : 556

  4. #4
    Membre confirmé
    Femme Profil pro
    Gestionnaire de paies
    Inscrit en
    Octobre 2016
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Gestionnaire de paies
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2016
    Messages : 77
    Par défaut
    Merci pour vos réponses mais je ne peux pas verrouiller les cellules.

    Ma seule solution c'est excel, la partie que je vous montre est une infime partie du fichier qui est construit avec plein de MACRO.

    N'est-il pas possible de remettre automatiquement le contenu de la cellule lorsque celui-ci est supprimé ?

  5. #5
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Via l'évènement de feuille de calculs Worksheet_Change (cf aide VBA interne et tutoriel de ce forum)
    tu pourras construire ton usine à gaz !   Mais en réfléchissant quant à la logique à appliquer …

    Sinon avec un peu de jugeote, il suffit d'interdire la sélection de cellules contenant une formule
    au travers de l'évènement Worksheet_SelectionChange

    Et en encore plus simple juste en déclarant la zone sélectionnable via la propriété ScrollArea

    Tout ceci évidemment pour de gentils utilisateurs bien disciplinés sinon c'est évidemment facilement contournable,
    la feuille n'étant pas protégée et même si elle l'était en fait !

    Cela me rappelle une anecdote :  lors d'une présentation / formation imposée par un p'tit incompétent pistonné fils de directeur
    on lui a tout démonté avant qu'il n'ait eu le temps de terminer et évidemment lorsqu'il a demandé de tester comme présenté,
    toutes les "protections" ayant été contournées, il s'est trouvé plutôt embarrassé et a enfin ravalé un peu de sa superbe

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    je ne vois pas le rapport entre une multitude de macro et le fait de verrouiller uniquement cette ligne!

    réécrire la ligne de formule revient à verrouiller la ligne et n'en déplaise à tes macros!

  7. #7
    Membre confirmé
    Femme Profil pro
    Gestionnaire de paies
    Inscrit en
    Octobre 2016
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Gestionnaire de paies
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2016
    Messages : 77
    Par défaut
    Je vais essayer de tester avec ScrollArea …

    Comment faire pour le faire avec Select Case ?
    Voici ce que j'ai fais mais cela ne fonctionne pas...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Select Case Cells(1, Target.Columns)
     
    Case "JANVIER", "FEVRIER", "MARS", "AVRIL"
    If Cells(Target.Row, 1) = "LUNDI" Then
     
    Worksheets(1).ScrollArea = ???
     
    End If
     
        Case Else
     
            End Select
    Merci !

  8. #8
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Select Case servant à remplacer l'instruction If hors il y en a une dans le bloc Select Case ! …

    Déjà poser sur papier le besoin afin d'en extraire enfin une logique viable puis nous l'expliquer;
    l'aide VBA interne de la méthode ScrollArea étant suffisamment claire quant à son utilité;
    dans l'exemple de la présentation initiale ce serait de B2 à H5 et sans Select Case

  9. #9
    Membre confirmé
    Femme Profil pro
    Gestionnaire de paies
    Inscrit en
    Octobre 2016
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Gestionnaire de paies
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2016
    Messages : 77
    Par défaut
    Citation Envoyé par Marc-L Voir le message


    dans l'exemple de la présentation initiale ce serait de B2 à H5 et sans Select Case
    Comme indiqué dans le premier post, je ne peux pas rester sur les cellules B2 à H5 car cette plage peut être sur d'autres cellules et ce tableau peut apparaitre plusieurs fois.

    Voila donc ce que je souhaite :

    Donner l’accès au cellule dont la 1ère colonne commence par : JANVIER, FEVRIER, MARS, AVRIL, MAI, JUIN ou JUILLET et dont la première Ligne commence par LUNDI, MARDI, MERCREDI ou JEUDI

    Il faut donc que je cible mes cellules en fonction des informations ci-dessus

  10. #10
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    En refusant d'utiliser Excel tel qu'il a été conçu, la solution la plus simple ne nécessitant même pas de code,
    en utilisant par exemple la méthode ScrollArea comme indiqué pourtant dans l'aide VBA
    il faut bien lui indiquer au final une adresse de la plage des cellules autorisées !

    Et en présentant déjà tous les cas possibles, d'autres intervenants pourraient proposer d'autres voies
    car, faut-il encore le rappeler, la qualité des réponses dépendant de celle de la présentation initiale …

Discussions similaires

  1. [XL-2000] Interdire la saisie dans une cellule.
    Par cedana dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/12/2009, 16h47
  2. Interdire la modification d'une cellule si condition respectée.
    Par Devmddi dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/04/2009, 12h23
  3. Interdire la saisie dans une cellule
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/11/2007, 13h49
  4. Effacer TOTALEMENT une plage de cellule
    Par Zebulon777 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/05/2007, 12h19
  5. Réponses: 4
    Dernier message: 05/03/2007, 15h53

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