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 la saisie dans certaines cellules excel via un Userform


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 14
    Par défaut Interdire la saisie dans certaines cellules excel via un Userform
    Moi qui pensait ne jamais poser une question ici...Il faut croire que le grand jour est enfin arrivé

    Je viens tout juste d'apprendre le VBA et je souhaiterai interdire la saisie dans certaines cellules en fonction de données que l'utilisateur fourni dans un Userform (je crée un tableau et il faudrait que les plages en dehors du tableau soit inaccessibles !)


    Je sais protéger ma feuille grâce à la fonction (placée dans le module de la feuille Excel)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("1:3")) Is Nothing Then Range("A4").Select
    End Sub
    Mais je ne sais pas comment faire pour faire un appel depuis le Userform, ou s'il est possible de faire une autre procédure qui permettrait de bloquer les cellules !

    Merci d'avance
    Smurf

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour et bienvenue sur le forum,
    Protéger la feuille avec ou sans mot de passe.
    Par VBA, Déverrouillé les cellules que tu veux laisser accessibles.
    A+

  3. #3
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 14
    Par défaut
    Merci pour l'accueil et la réponse rapide,

    néanmoins je n'ai pas tout à fait saisie la réponse
    Etant donné que j'ai le nombre de lignes et le nombre de colonnes en variables n'est-il pas possible de faire une fonction telle que celle de mon premier post qui réaliserait la même chose?

    cordialement

  4. #4
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Si l'utilisateur a activé ton userform il ne peut pas écrir dans la feuille de calcul non?

    J'ai du mal a saisir ce que tu veux faire ton code empêche juste de sélectionner des lignes. Je ne voi pas ce que tu veux appeler a partir de ton userform.
    Essaye d'être un peu plus claire ,quel manipulation veux tu bloquer?

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Mais si, en protégant la feuille TOUTES les cellules sont verrouillées. Ont ne peu rien changer. En déverrouillant la plage de cellule que tu connais par tes variable tu peu la déverrouiller avec..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Deverrouille()
    Dim LigDeb, LigFin, ColDeb, ColFin
        LigDeb = 2: LigFin = 12
        ColDeb = 3: ColFin = 10
        Sheets("LeNomDeLaFeuille").Unprotect
        Range(Cells(LigDeb, ColDeb), Cells(LigFin, ColFin)).Locked = False
        Sheets("LeNomDeLaFeuille").Protect
    End Sub
    L'utilisateur pourra modifier la plage C2:J12 et rien d'autre.
    pour changer tu reverrouille la plage en mettant Locked = True et tu déverrouille une autre plage !
    A+
    Edit : bonjour Krovax, j'ai supposé que ce devait être actif lors de la fermeture de l'UF ou qu'il est en mode non modal.

  6. #6
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 14
    Par défaut
    J'ai tellement de mal en VBA que je ne suis même pas claire dans mes propos !

    Une fois avoir entrer les dimensions du tableau de l'UF et valider, celui-ci se ferme, on se retrouve sur la feuille de calcul et je voulais que les cellules hors du tableau soient inaccessibles.
    je comptais faire une fonction (dans le style de "Worksheet_SelectionChange") qui serait appelé une fois que l'utilisateur ait cliquer sur le bouton valider de l'UF.

    C'est vrai que j'ai également aussi de préciser que je suis en mode modal :o

    Encore merci pour ta soluce LeForestier !!! C'est beaucoup plus claire maintenant

Discussions similaires

  1. Insérer une formule dans une cellule Excel via VBA
    Par *.Har(d)t dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/02/2020, 13h02
  2. Erreur If Then, saisie dans certaines cellules obligatoire
    Par AmbreM dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/09/2013, 16h30
  3. [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, 15h47
  4. Réponses: 1
    Dernier message: 08/08/2008, 17h16
  5. Interdire la saisie dans une cellule
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/11/2007, 12h49

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