[VBA]désactiver un bouton en fonction de la valeur d'une cellule

Fermé
abdellah_tadjine Messages postés 191 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 5 janvier 2022 - Modifié le 10 août 2017 à 21:35
abdellah_tadjine Messages postés 191 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 5 janvier 2022 - 13 août 2017 à 12:11
Bonjour,
bonjours, j'ai crée une application en vba userform pour gerer une petite base de donnée avec un bouton "valider"....justement je cherche un code vba pour desactiver le bouton "valider" en fonction de la valeur d'une cellule (feuil1 cellule a1)...exp....si la valeur de la (cellule a1 de la feuil1) est superieur a 5 je voudrais que le bouton "valider" soit désactivé.si moins de 5 le bouton valider reste activer...merci



2 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
10 août 2017 à 21:41
Bonjour,

Pour désactiver un bouton :
  CommandButton1.Enabled = False
1
Bonjour abdellah,

1) Tu as créé un doublon de ton sujet précédent :
https://forums.commentcamarche.net/forum/affich-34770923-vba-desactiver-un-bouton-en-fonction-de-la-valeur-d-un-textbox

2) Comment se fait-il que tu reposes la même question
    alors que je l'avais déjà résolue ?

Ta réponse : « merci bcp.....ca marche »
 
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
Modifié le 11 août 2017 à 00:12
Bonjour steve

En regardant son historique, abdellah est coutumier du fait (poser plusieurs fois la même question à quelques jours d'intervalle) !

Cdlt
Patrice
0
abdellah_tadjine Messages postés 191 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 5 janvier 2022 6 > Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023
11 août 2017 à 23:26
bonjour. si vous lisez bien ma deuxième question vous allez probablement constater qu'il ne ressemble pas car la 1ére question j'avais demandé le code vba pour désactiver un bouton par rapport au valeur d'un textbox, par contre ma deuxième question était comment désactiver (code vba) un bouton par rapport a une cellule d'une feuil excel exp (cellule a1 / feuil1).

merci cordialement abdallah
0
steve > abdellah_tadjine Messages postés 191 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 5 janvier 2022
12 août 2017 à 02:52
 
Bonjour abdellah,

Oui, tu as raison ; bien que très similaire, ton 2ème énoncé est différent ;
aussi, je te présente mes excuses, car ce n'est pas un sujet en double.

=============================

Avant, c'était le code de TextBox1_Change() qui décidait si le bouton
Valider allait être activé ou non ; maintenant que ça ne dépend plus
de TextBox1, comment faire ?

Il faut bien voir que ça ne peut pas être décidé par le code du bouton
Valider car alors, ce serait un peu comme « le serpent qui se mord
la queue » : ce serait en cliquant sur le bouton Valider que ça devrait
décider si ce même bouton doit être activé ou non => c'est pas bon.

---------------------------------------------------

Une 1ère solution : c'est le code d'initialisation du formulaire qui
décide, dès l'ouverture du formulaire, si le bouton Valider va
être actif ou non, selon ta cellule A1 :


Private Sub UserForm_Initialize()
  Valider.Enabled = Val([Feuil1!A1]) <= 5
End Sub

Private Sub Valider_Click()
  MsgBox "Hello !"
End Sub


---------------------------------------------------

La 2ème solution, c'est en cas de changement de A1 =>

a) code du formulaire UserForm1 :


Private Sub Valider_Click()
  MsgBox "Hello !"
End Sub


b) code de Feuil1 :


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Address <> "$A$1" Then Exit Sub
  With UserForm1
    .Valider.Enabled = Val(Target) <= 5: .Show
  End With
End Sub


Comme c'est le code de Feuil1, inutile de préciser cette feuille.

Mais selon le vrai cas réel, ce sera peut-être plus judicieux
d'afficher le formulaire seulement si A1<=5 :


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Address <> "$A$1" Then Exit Sub
  If Val(Target) <= 5 Then UserForm1.Show
End Sub


Merci de me donner ton avis.

Cordialement
 
0
abdellah_tadjine Messages postés 191 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 5 janvier 2022 6 > steve
13 août 2017 à 12:11
merci bcp pour votre aide..je vais essayer ced codes....
0