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

VBA Access Discussion :

Blocage sur code VBA


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Décembre 2014
    Messages : 13
    Points : 8
    Points
    8
    Par défaut Blocage sur code VBA
    Bonjour à tous,

    je viens de créer un code me permettant de verrouiller ou déverrouiller facilement certains champs de mes formulaires

    si je mets le code en local sur chaque formulaire cela fonctionne (exemple FOR_MOT-PARA) [code sur les boutons Modifer/Ajouter/Enregistrer]

    Par contre si je mets le code dans un module pour éviter de répéter ce code à chaque fois, il bloque systématique sur le code ci-dessous avec le message "erreur de compilation : Variable non définie" (test fait sur le Formulaire FOR_MOT_accessoire]

    je ne comprends pas pourquoi
    pouvez-vous m'aider ?

    merci par avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        For Each ctl_CLEF In Controls
           If ctl_CLEF.Tag = "CLEF" Then
               ctl_CLEF.Locked = Verrouillage
                ctl_CLEF.BackColor = code_Couleur
            End If
            Next ctl_CLEF
    Fichiers attachés Fichiers attachés

  2. #2
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    740
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 740
    Points : 1 045
    Points
    1 045
    Par défaut
    Un controle n'est pas concevable sans qu'il appartienne a une forme ou un rapport
    il faut passer ta forme en argument de la procedure d'inactivation et alors tu pourras faire la boucle
    "For Each ctl_CLEF In Myform.Controls"

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Décembre 2014
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Merci pour la réponse mais cela ne fonctionne pas, j'ai toujours la même erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        For Each ctl_CLEF In myForm.Controls
           If ctl_CLEF.Tag = "CLEF" Then
               ctl_CLEF.Locked = Verrouillage
                ctl_CLEF.BackColor = code_Couleur
            End If
            Next ctl_CLEF

  4. #4
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 113
    Points : 31 588
    Points
    31 588
    Billets dans le blog
    16
    Par défaut
    Essayez ceci :

    
    Public Sub Verrouillage_prog()
    
    'Autorisation de modification champs
    
    Dim theControl As Object, theControlAutre As Object
    
    Set theControl = Screen.ActiveForm
    Set theControlAutre = Screen.ActiveForm
    
        For Each ctl_CLEF In theControl.Controls
          If ctl_CLEF.Tag = "CLEF" Then
               ctl_CLEF.Locked = Verrouillage
                ctl_CLEF.BackColor = code_Couleur
           End If
        Next ctl_CLEF
            
    'Cadre de regroupement/sous formulaire
    
        For Each ctl_CLEF_Autres In theControlAutre.Controls
            If ctl_CLEF_Autres.Tag = "CLEF_AUTRES" Then
               ctl_CLEF_Autres.Locked = Verrouillage
           End If
        Next ctl_CLEF_Autres
        
    End Sub
    
    

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Décembre 2014
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Merci fsmrel

    Cela fonctionne quand j'ouvre directement le formulaire.

    Mais quand j'utilise mon formulaire de navigation pour ouvrir ce formulaire, je n'arrive pas à le débloquer les champs (je n'ai aucun message d'erreur)

    Merci par avance pour l'aide

  6. #6
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 113
    Points : 31 588
    Points
    31 588
    Billets dans le blog
    16
    Par défaut
    Bonsoir jalain.gosse


    Citation Envoyé par jalain.gosse
    Mais quand j'utilise mon formulaire de navigation
    Quel est-il ? On clique sur quoi pour y accéder ? Quand on ouvre votre fichier, tout est est blanc...

  7. #7
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 113
    Points : 31 588
    Points
    31 588
    Billets dans le blog
    16
    Par défaut
    En tout cas, il est probable qu’il faille faire la même manip dans le code VBA pour :

    MO_Name_User
    Form_FOR_MOT_PARA
    Form_FOR_PARA_MACRO-Type_distribution
    Form_FOR_PARA_MACRO-ALIM 24VDC
    Form_FOR_PARA_MACRO-Alimentation
    Form_FOR_PARA_MACRO-DISJ_ELECTRONIQUE
    Form_FOR_PARA_MACRO_DISTRI_INT_EXT
    Form_FOR_PARA_MACRO-Surveillance - DISJ
    Form_FOR_PNEU_CPV10
    Form_FOR_PNEU-TRAITEMENT-AIR
    Form_FOR_SPEC
    Form_FOR_SPEC Type Couleur Fil
    Form_FOR_PARA_MACRO-EMERGENCY STOP
    Form_FOR_SPEC_TYPE_POTENTIEL
    Form_FOR_PARA_ETIQUETTE
    Form_FOR_PNEU_ARTICLE
    Form_FOR_PARA_EMERGENCY_BP
    Form_FOR_PARA_MACRO-POWERMETTER
    Form_FOR_PARA_MACRO-LAMPES/VENTILATIONS

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Décembre 2014
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    j'avais un peu trop fait le vide dans mon fichier
    j'ai ajouté le formulaire "NAVIGATION" celui me permet d'ouvrir l'ensemble de mes formulaires (pour accéder aux formulaires TEST puis le nom du formulaire)

    En tout cas, il est probable qu’il faille faire la même manip dans le code VBA pour :
    oui c'est pour ça que je veux faire un seul code

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Décembre 2014
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    j'ai trouvé la méthode pour accéder aux champs des sous formulaires, voici mon 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    Public Sub Verrouillage_prog()
     
    'Déclaration des variables
        Dim theControl As Object, SOUS_FOR As Object
     
    'Récupération Nom des formulaires
        'Formulaire actif
            Set theControl = Screen.ActiveForm
        'Sous formulaire
            Set SOUS_FOR = Screen.ActiveControl.Parent
     
     
    'Autorisation de modification champs
        For Each ctl_CLEF In SOUS_FOR.Controls
          If ctl_CLEF.Tag = "CLEF" Then
               ctl_CLEF.Locked = Verrouillage
                ctl_CLEF.BackColor = code_Couleur
           End If
        Next ctl_CLEF
     
     
    'Cadre de regroupement/sous formulaire
        For Each ctl_CLEF_Autres In SOUS_FOR.Controls
            If ctl_CLEF_Autres.Tag = "CLEF_AUTRES" Then
               ctl_CLEF_Autres.Locked = Verrouillage
           End If
        Next ctl_CLEF_Autres
     
    End Sub
    Merci à tous pour votre aide

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

Discussions similaires

  1. [XL-2000] Aide sur Code VBA
    Par Dan21 dans le forum Excel
    Réponses: 3
    Dernier message: 08/02/2010, 14h38
  2. Problématique sur Code VBA graphique
    Par karim19 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/12/2009, 18h54
  3. Option sur code vba déjà créé
    Par akmer dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 14/05/2008, 15h55
  4. [VBA]Conseil sur code VBA
    Par mat67000 dans le forum VBA Access
    Réponses: 15
    Dernier message: 22/03/2007, 11h23
  5. mot de passe sur code VBA
    Par Cupidon dans le forum VBA Access
    Réponses: 4
    Dernier message: 07/02/2007, 15h05

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