Rendre un bouton actif si valeur d'une cellule atteinte

Bonsoir,

Je débute en vba. Je souhaite créer une macro qui rend un bouton actif (fonctionnel) si une cellule (exemple : E10) a la valeur attendue (exemple : "ok"). La valeur de la cellule placée en E10 est renseignée via une formule. A l'inverse si le résultat n'est pas atteint (E10 renseignera donc "nok" et le bouton sera alors inactif). Merci pour votre aide. Belle soirée.

Bonsoir,

Il existe plusieurs types de bouton,
merci de joindre un fichier si vous voulez de l'aide

Bonsoir,
JExcel2fr bonsoir,

si vous placez une détection de changement de valeur sur votre cellule E11, alors il n'y aura pas de déclenchement car l'événementiel CHANGE ne fonctionne pas sur les formules, il faudrait alors utiliser l'évènement CALCULATE, ou bien surveiller la cellule qui fait que la cellule E11 est modifiée.

Une fois la détection faite, si le bouton s'appelle BTN vous pouvez soit le rendre visible ou invisible soit passer une variable "interrupteur" à VRAI ou à FAUX afin que le code du bouton soit "joué" ou non.

@ bientôt

LouReeD

8vba-codes.xlsx (14.24 Ko)

Bonjour,

12vba-codes.xlsx (14.24 Ko)

Ci-joint le fichier a titre d'exemple, merci pour votre aide.

Belle journée

bonjour Priv,

une macro "worksheet_change" (pour les cellules C2:C2) dans le module de votre feuille qui lance la macro "M_Bouton"

On utilise le bouton rouge/vert

14vba-codes.xlsb (21.72 Ko)

Bonjour à tous,

@PriV ou tout simplement, vu que votre bouton est lié à la sub "AjoutData"

Sub AjoutData()
  If Sheets("1.Rendre bouton actif vs résult").Range("C4") = "nok" Then
    MsgBox "Tout les champs ne sont pas complétés !", vbCritical, "IMPOSSIBLE..."
    Exit Sub
  End If
  ' Suite du code pour ajouter les données
End Sub

A+

Bonjour,

au vu du non retour aux propositions faites je me permet de poster ma proposition avec affichage ou masquage du bouton en fonction de la valeur de la cellule C4 :

Private Sub Worksheet_Change(ByVal Target As Range)
  With ActiveSheet.Shapes("Bouton 1")
    If Range("C4").Value = "nok" Then .Visible = False Else .Visible = True
  End With
End Sub

C'est un code à mettre "sous la feuille" vu qu'il y a la surveillance événementielle "CHANGE".

@ bientôt

LouReeD

Rechercher des sujets similaires à "rendre bouton actif valeur atteinte"