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 :

Obligation de renseigner 4 cellules pour pouvoir continuer à travailler


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 12
    Points : 7
    Points
    7
    Par défaut Obligation de renseigner 4 cellules pour pouvoir continuer à travailler
    Bonjour,

    Je commence en VBA, je souhaiterais obliger la saisie du nom, du prénom, de la classe et de la date pour que l'utilisateur puisse continuer à travailler

    Il faudrait protéger le tableau tant que les obligations ne sont pas remplies et bien sur le déprotéger lorsque les conditions sont remplis.

    Merci pour votre aide.

  2. #2
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2019
    Messages : 101
    Points : 128
    Points
    128
    Par défaut
    Bonjour,
    Ce n'est pas très clair, tu souhaites que tes lignes de ton tableau soient modifiables uniquement si les cellules en colonne A, B, C, D sont remplies ?

    Peux-tu envoyer le code que tu as pour le moment ?

    Mickamax

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 12
    Points : 7
    Points
    7
    Par défaut Réponse
    Bonjour et merci

    Je souhaiterais utiliser obligatoirement les cellules B1 B2 P1 P2 avant de pouvoir continuer à travailler.

    Si B1 B2 P1 P2 ne sont pas renseignés alors la partie suivante ou la plage n'est pas disponible, elle est protégée ainsi que la feuille

    Si B1 B2 P1 P2 sont bien renseignés alors la partie suivante ou la plage devient accessible en le déprotégeant et en protégeant la feuille



    macro1.xlsm

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 761
    Points : 28 619
    Points
    28 619
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je n'arrive pas à transmettre le fichier.
    Il n'y a aucune raison de déposer un fichier. La plupart des contributeurs refusent d'ouvrir ceux-ci et j'en fais partie

    Il suffit de bien exprimer sa demande pour obtenir une réponse pertinente.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Bonjour et merci

    Je souhaiterais utiliser obligatoirement les cellules B1 B2 P1 P2 avant de pouvoir continuer à travailler.

    Si B1 B2 P1 P2 ne sont pas renseignés alors la partie suivante ou la plage n'est pas disponible, elle est protégée ainsi que la feuille

    Si B1 B2 P1 P2 sont bien renseignés alors la partie suivante ou la plage devient accessible en la déprotégeant et en protégeant la feuille

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 761
    Points : 28 619
    Points
    28 619
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Au préalable et manuellement
    • déverrouiller les cellules B1 B2 P1 et P2
    • protéger la feuille

    En VBA
    Ecrire une procédure Function qui vérifie si ces quatre cellules sont remplies et renvoie True si les conditions sont remplies, déprotéger la feuille et dans le cas contraire la protéger
    Cette fonction doit être invoquée par la procédure événementielle Worksheet_Change
    Les deux procédures a placer dans le module de la feuille à protétger

    La fonction nommée CellsFilled qui vérifie si les quatre cellules sont remplies
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Function CellsFilled() As Boolean
     Const addrCells As String = "B1:B2,P1:P2"
     CellsFilled = Application.WorksheetFunction.CountA(Range(addrCells)) = Range(addrCells).Count
    End Function
    La procédure événementielle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_Change(ByVal Target As Range)
      With Me
       If CellsFilled Then .Unprotect Else .Protect
      End With
    End Sub
    Pour l'exemple la feuille n'est pas protégée par mot de passe

    Si évidemment le ou les utilisateurs connaissent Excel, il ne sera pas compliqué de déprotéger la feuille manuellement

    Si l'on protège la feuille avec Mot de passe, un utilisateur connaissant le VBA pourra visualiser le mot de passe et déprotéger la feuille

    Si l'on protège le code VBA et que ..........
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. [XL-2007] Obligation de remplir toute les cellules pour pouvoir continuer.
    Par Enzo.CE dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 24/04/2018, 12h40
  2. Obliger l'utilisateur à quitter une cellule avant de continuer !
    Par Crachover dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/04/2017, 09h26
  3. [POI] Style et taille de cellule pour Excel
    Par relivio dans le forum Documents
    Réponses: 6
    Dernier message: 28/05/2014, 10h45
  4. [Excel] fonction SOMME.SI avec une cellule pour critère
    Par repié dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/03/2006, 17h39
  5. [Renseignement] Compilateur C pour µC
    Par Vincent PETIT dans le forum C
    Réponses: 6
    Dernier message: 19/01/2003, 00h24

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