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 :

Bouton VBA verrouillé puis déverouillé sous condition [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 126
    Points : 69
    Points
    69
    Par défaut Bouton VBA verrouillé puis déverouillé sous condition
    Bonjour,
    J'aimerai avoir un peu d'aide pour que dans mon classeur excel, il y ait un bouton qui est par défaut verrouillé.
    Lorsqu'une case contient un certain caractère (ex: A1 <> ""), alors le bouton se dévérouille pour qu'on puisse l'utiliser.

    Merci d'avance


    Cdlt

  2. #2
    Membre actif
    Inscrit en
    Août 2009
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Août 2009
    Messages : 284
    Points : 283
    Points
    283
    Par défaut
    Pourquoi tu ne mettrais pas une condition au début de la macro appelée par le bouton genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub
    If range("A1")<>"" then
    Ta macro
    End if
    End sub
    Comme ça si ta condition n'est pas rempli on a beau appuyer sur le bouton rien ne se passe.

  3. #3
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Bonjour,
    Voici un petit code à mettre sur le module de feuille pour vérifier la cellule modifiée et donc appliquer le 'Locked'

    A+

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    If Target.Address <> "$A$1" Then Exit Sub 'vérifie si la cellule modifiée est A1 si non, on sort
        If Not IsEmpty(Target.Value) Then 'Vérifie si la valeur de A1 <> de vide
        ActiveSheet.Shapes("Button 1").Locked = False 'Si non vide alors bouton non bloqué
        Else:
        ActiveSheet.Shapes("Button 1").Locked = True 'Si vide alors bouton bloqué
        End If
     
    End Sub

  4. #4
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 126
    Points : 69
    Points
    69
    Par défaut
    J'ai essayé ta technique Fvandermeulen mais je n'y arrive pas.

    Je voudrais mettre ces lignes de calcul au milieu d'un programme.

    Enfait rien que la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Shapes("Button 1").Locked = False
    ne marche pas.
    S'agit t'il des bons boutons ? (J'utilise les boutons que l'on peut créer avec la barre d'outils "Formulaire")

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Points : 547
    Points
    547
    Par défaut
    Salut,

    "Button 1" n'est peut etre pas le nom de ton bouton tout simplement.

    Quand tu fais un clique droit dessus (comme pour le modifier) tu as
    son nom dans la zone a cote de la barre de formule.
    Si tu ne vois pas, lance l'enregistreur de macro et fais une modif dessus
    (le texte, la taille;peut importe) et l'enregistreur te donnera son nom.

    ++
    Minick

  6. #6
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 126
    Points : 69
    Points
    69
    Par défaut
    Le nom est bien le même.
    Je ne comprends vraiment pas car même une simple ligne ne marche pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test()
    If Range("A1").Value = 1 Then
    ActiveSheet.Shapes("Bouton 1").Locked = False
     
    Else
    ActiveSheet.Shapes("Bouton 1").Locked = True
    End If
     
    End Sub
    Ici qu'il y ait un 1 ou pas dans A1 le bouton "Bouton 1" n'est jamais bloqué.
    Quelqu'un peut-il m'aider à trouver ce problème ?
    Ou bien créer un fichier excel bidon avec juste un bouton et le code, et le mettre en ligne pour que je vois ses lignes de vba.

    Merci

    Cdlt

  7. #7
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Points : 547
    Points
    547
    Par défaut

    Suis je bete!!!

    Locked sert a verrouiller l'objet pas a le desactiver...

    Utilise Visible mais il sera masqué.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test()
    If Range("A1").Value = 1 Then
    ActiveSheet.Shapes("Bouton 1").Visible = False
     
    Else
    ActiveSheet.Shapes("Bouton 1").Visible = True
    End If
     
    End Sub
    ++
    Minick

  8. #8
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 126
    Points : 69
    Points
    69
    Par défaut
    C'est parfait .
    Merci beaucoup.

  9. #9
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Bonjour,
    Juste pour une petite précision, le Locked ne fonctionne que si la feuille est protégé (sauf erreur de ma part), donc c'est vrai que le .visible est plus efficace.
    C'est d'autant plus idiot de ma part que j'utilise toujours .visible
    A+

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

Discussions similaires

  1. Problème VBA : suppression de lignes sous conditions multiples
    Par mia73 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/10/2012, 19h42
  2. Excel VBA - Supprimer une ligne sous condition
    Par freygeo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/08/2012, 16h55
  3. [XL-2007] génération nb alea puis conservation sous condition de ces nb
    Par 20100vero dans le forum Excel
    Réponses: 2
    Dernier message: 23/01/2011, 13h07
  4. [VBA-E] Copier coller sous conditions de couleur
    Par titeZ dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 10/04/2007, 18h27
  5. [VBA-E]feuille créée sous condition
    Par Angel79 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/02/2006, 15h11

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