Bouton visible si cellule <> ""

  • Initiateur de la discussion José
  • Date de début
J

José

Guest
Bonjour tout le forum,

Je cherche une formule VB pour que sur ma feuil1 mes boutons restent invisible tant que certaines cellules sont vides.

[K6] <> '' alors CommandButton29.Visible = True
[K7] <> '' alors CommandButton30.Visible = True
...
[K13] <> '' alors CommandButton36.Visible = True

Comment faire???

Merci a tous
 

Hervé

XLDnaute Barbatruc
BOnjour

une proposition en pièce jointe.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim plage As Range
Set plage = Range('k6:k13')

If Application.Intersect(Target, plage) Is Nothing Then Exit Sub

If Target <> '' Then
ActiveSheet.Shapes('CommandButton' & Target.Row + 23).Visible =
True
Else
ActiveSheet.Shapes('CommandButton' & Target.Row + 23).Visible =
False

End If
End Sub

salut
[file name=Classeur1_20050601085253.zip size=14284]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur1_20050601085253.zip[/file]
 

Pièces jointes

  • Classeur1_20050601085253.zip
    13.9 KB · Affichages: 46
J

José

Guest
Re Hervé !!!

Merci énormément pour ton aide précieuse, mais pourrais je abuser encore un peu.
En effet je voudrais compléter ceci mais ca devient un peu plus compliqué.

C'est ok pour k6:k13

Mais ensuite il me faudrait pour k15:k17
les boutons 37 à 39

k19:k20 les boutons 40 et 41

k22 le bouton 42

Comment compléter ceci ???

Merci encore a toi Hervé
 

Hervé

XLDnaute Barbatruc
re

Une proposition :

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range('k6:k13')) Is Nothing Then
&nbsp; &nbsp;
If Target <> '' Then
&nbsp; &nbsp; &nbsp; &nbsp; ActiveSheet.Shapes('CommandButton' & Target.Row + 23).Visible =
True
&nbsp; &nbsp;
Else
&nbsp; &nbsp; &nbsp; &nbsp; ActiveSheet.Shapes('CommandButton' & Target.Row + 23).Visible =
False
&nbsp; &nbsp;
End If
End If

If Not Application.Intersect(Target, Range('k15:k17')) Is Nothing Then
&nbsp; &nbsp;
If Target <> '' Then
&nbsp; &nbsp; &nbsp; &nbsp; ActiveSheet.Shapes('CommandButton' & Target.Row + 22).Visible =
True
&nbsp; &nbsp;
Else
&nbsp; &nbsp; &nbsp; &nbsp; ActiveSheet.Shapes('CommandButton' & Target.Row + 22).Visible =
False
&nbsp; &nbsp;
End If
End If

If Not Application.Intersect(Target, Range('k19:k20')) Is Nothing Then
&nbsp; &nbsp;
If Target <> '' Then
&nbsp; &nbsp; &nbsp; &nbsp; ActiveSheet.Shapes('CommandButton' & Target.Row + 21).Visible =
True
&nbsp; &nbsp;
Else
&nbsp; &nbsp; &nbsp; &nbsp; ActiveSheet.Shapes('CommandButton' & Target.Row + 21).Visible =
False
&nbsp; &nbsp;
End If
End If

If Not Application.Intersect(Target, Range('k20')) Is Nothing Then
&nbsp; &nbsp;
If Target <> '' Then
&nbsp; &nbsp; &nbsp; &nbsp; ActiveSheet.Shapes('CommandButton' & Target.Row + 21).Visible =
True
&nbsp; &nbsp;
Else
&nbsp; &nbsp; &nbsp; &nbsp; ActiveSheet.Shapes('CommandButton' & Target.Row + 21).Visible =
False
&nbsp; &nbsp;
End If
End If


End Sub

pas testé, peut etre à adapter, mais l'idée y est.

il doit y avoir une manière plus élégante de faire ceci, mais je manque cruellement de temps aujourd'hui.

Salut
 
J

José

Guest
Re Hervé,

Tout d'abord MERCI pour ton aide précieuse. C'est génial.

Mais voici pour toi un nouveau probleme...

Le bouton qui s'affiche me sert a vider la cellule qui le rend visible.
C a d
je rempli k6 alors Bouton29.visible = true
Sub CommandButton29_click()
[k6] = ''
End sub

La cellule k6 est vide, mais le bouton est tjrs visible

J ai essayé avec
Sub CommandButton29_click()
[k6] = ''
CommandButton29.Visible = False
End sub

Mais rien n'y fait...

Une petite idée???

P.S.: ci joint les essai sur le premier bouton [file name=Classeur1_20050601162727.zip size=17089]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur1_20050601162727.zip[/file]
 

Pièces jointes

  • Classeur1_20050601162727.zip
    16.7 KB · Affichages: 39

Discussions similaires

Réponses
2
Affichages
447

Statistiques des forums

Discussions
312 613
Messages
2 090 233
Membres
104 458
dernier inscrit
Adeline43