OVH Cloud OVH Cloud

Faire plus court ?

11 réponses
Avatar
EliotNaiss
bonsoir à vous,
dans un tableau (cellules D20:D29), j'ai deux optionbutton (pour Oui et Non)
en face de chaque cellule.
Je teste si le contenu des cellules de D20 jusqu'à D29 est vide, et si c'est
le cas en face de chaque cellule , je rend visible false les 2 optionbutton
correspondants.
J'ai bidouillé ainsi :
If Range("D20").Value = "" Then
OptionButton1.Visible = False
OptionButton2.Visible = False
Else
OptionButton1.Visible = True
OptionButton2.Visible = True
End If
If Range("D21").Value = "" Then
OptionButton3.Visible = False
OptionButton4.Visible = False
Else
OptionButton3.Visible = True
OptionButton4.Visible = True
End If
If Range("D22").Value = "" Then
OptionButton5.Visible = False
OptionButton6.Visible = False
Else
OptionButton5.Visible = True
OptionButton6.Visible = True
End If
If Range("D23").Value = "" Then
OptionButton7.Visible = False
OptionButton8.Visible = False
Else
OptionButton7.Visible = True
OptionButton8.Visible = True
End If
If Range("D24").Value = "" Then
OptionButton9.Visible = False
OptionButton10.Visible = False
Else
OptionButton9.Visible = True
OptionButton10.Visible = True
End If
If Range("D25").Value = "" Then
OptionButton11.Visible = False
OptionButton12.Visible = False
Else
OptionButton11.Visible = True
OptionButton12.Visible = True
End If
If Range("D26").Value = "" Then
OptionButton13.Visible = False
OptionButton14.Visible = False
Else
OptionButton13.Visible = True
OptionButton14.Visible = True
End If
If Range("D27").Value = "" Then
OptionButton15.Visible = False
OptionButton16.Visible = False
Else
OptionButton15.Visible = True
OptionButton16.Visible = True
End If
If Range("D28").Value = "" Then
OptionButton17.Visible = False
OptionButton18.Visible = False
Else
OptionButton17.Visible = True
OptionButton18.Visible = True
End If
If Range("D29").Value = "" Then
OptionButton19.Visible = False
OptionButton20.Visible = False
Else
OptionButton19.Visible = True
OptionButton20.Visible = True
End If

Mais y'a t'y pas plus simple ou plus court et aussi efficace ?
Merci par avance.
Cordialement
Eliot

10 réponses

1 2
Avatar
jps
bonjour eliotnaiss
peut-être qu'avec une boucle...

For each c in activesheet.range("D20:D29")
If c.value == "" Then
OptionButton1.Visible = False
OptionButton2.Visible = False
Else
OptionButton1.Visible = True
OptionButton2.Visible = True
End If
Next c

non testé et tant pis si je me fais secouer les plumes par les gourous qui
vont dire encore que je me mêle (les pinceaux) de ce qui ne me regarde pas
jps


"EliotNaiss" a écrit dans le message de news:

bonsoir à vous,
dans un tableau (cellules D20:D29), j'ai deux optionbutton (pour Oui et
Non) en face de chaque cellule.
Je teste si le contenu des cellules de D20 jusqu'à D29 est vide, et si
c'est le cas en face de chaque cellule , je rend visible false les 2
optionbutton correspondants.
J'ai bidouillé ainsi :
If Range("D20").Value = "" Then
OptionButton1.Visible = False
OptionButton2.Visible = False
Else
OptionButton1.Visible = True
OptionButton2.Visible = True
End If
If Range("D21").Value = "" Then
OptionButton3.Visible = False
OptionButton4.Visible = False
Else
OptionButton3.Visible = True
OptionButton4.Visible = True
End If
If Range("D22").Value = "" Then
OptionButton5.Visible = False
OptionButton6.Visible = False
Else
OptionButton5.Visible = True
OptionButton6.Visible = True
End If
If Range("D23").Value = "" Then
OptionButton7.Visible = False
OptionButton8.Visible = False
Else
OptionButton7.Visible = True
OptionButton8.Visible = True
End If
If Range("D24").Value = "" Then
OptionButton9.Visible = False
OptionButton10.Visible = False
Else
OptionButton9.Visible = True
OptionButton10.Visible = True
End If
If Range("D25").Value = "" Then
OptionButton11.Visible = False
OptionButton12.Visible = False
Else
OptionButton11.Visible = True
OptionButton12.Visible = True
End If
If Range("D26").Value = "" Then
OptionButton13.Visible = False
OptionButton14.Visible = False
Else
OptionButton13.Visible = True
OptionButton14.Visible = True
End If
If Range("D27").Value = "" Then
OptionButton15.Visible = False
OptionButton16.Visible = False
Else
OptionButton15.Visible = True
OptionButton16.Visible = True
End If
If Range("D28").Value = "" Then
OptionButton17.Visible = False
OptionButton18.Visible = False
Else
OptionButton17.Visible = True
OptionButton18.Visible = True
End If
If Range("D29").Value = "" Then
OptionButton19.Visible = False
OptionButton20.Visible = False
Else
OptionButton19.Visible = True
OptionButton20.Visible = True
End If

Mais y'a t'y pas plus simple ou plus court et aussi efficace ?
Merci par avance.
Cordialement
Eliot



Avatar
EliotNaiss
bonsoir jps
j'avais bien pensé à cette possibilité, mais les optionbuttons sont
numérotés, et il y en a deux qui correspondent à chaque cellule !...
Là j'ai fait court, mais dans mon vrai tableau, je suis sur 40 cellules !
ffffffff

A+



"jps" a écrit dans le message de news:

bonjour eliotnaiss
peut-être qu'avec une boucle...

For each c in activesheet.range("D20:D29")
If c.value == "" Then
OptionButton1.Visible = False
OptionButton2.Visible = False
Else
OptionButton1.Visible = True
OptionButton2.Visible = True
End If
Next c

non testé et tant pis si je me fais secouer les plumes par les gourous qui
vont dire encore que je me mêle (les pinceaux) de ce qui ne me regarde pas
jps


"EliotNaiss" a écrit dans le message de news:

bonsoir à vous,
dans un tableau (cellules D20:D29), j'ai deux optionbutton (pour Oui et
Non) en face de chaque cellule.
Je teste si le contenu des cellules de D20 jusqu'à D29 est vide, et si
c'est le cas en face de chaque cellule , je rend visible false les 2
optionbutton correspondants.
J'ai bidouillé ainsi :
If Range("D20").Value = "" Then
OptionButton1.Visible = False
OptionButton2.Visible = False
Else
OptionButton1.Visible = True
OptionButton2.Visible = True
End If
If Range("D21").Value = "" Then
OptionButton3.Visible = False
OptionButton4.Visible = False
Else
OptionButton3.Visible = True
OptionButton4.Visible = True
End If
If Range("D22").Value = "" Then
OptionButton5.Visible = False
OptionButton6.Visible = False
Else
OptionButton5.Visible = True
OptionButton6.Visible = True
End If
If Range("D23").Value = "" Then
OptionButton7.Visible = False
OptionButton8.Visible = False
Else
OptionButton7.Visible = True
OptionButton8.Visible = True
End If
If Range("D24").Value = "" Then
OptionButton9.Visible = False
OptionButton10.Visible = False
Else
OptionButton9.Visible = True
OptionButton10.Visible = True
End If
If Range("D25").Value = "" Then
OptionButton11.Visible = False
OptionButton12.Visible = False
Else
OptionButton11.Visible = True
OptionButton12.Visible = True
End If
If Range("D26").Value = "" Then
OptionButton13.Visible = False
OptionButton14.Visible = False
Else
OptionButton13.Visible = True
OptionButton14.Visible = True
End If
If Range("D27").Value = "" Then
OptionButton15.Visible = False
OptionButton16.Visible = False
Else
OptionButton15.Visible = True
OptionButton16.Visible = True
End If
If Range("D28").Value = "" Then
OptionButton17.Visible = False
OptionButton18.Visible = False
Else
OptionButton17.Visible = True
OptionButton18.Visible = True
End If
If Range("D29").Value = "" Then
OptionButton19.Visible = False
OptionButton20.Visible = False
Else
OptionButton19.Visible = True
OptionButton20.Visible = True
End If

Mais y'a t'y pas plus simple ou plus court et aussi efficace ?
Merci par avance.
Cordialement
Eliot







Avatar
JB
Bonjour,

Sub AfficeCacheCaseOptions()
For i = 0 To 3
ActiveSheet.OLEObjects(i * 2 + 1).Visible = IIf(Cells(20 + i, 4) =
"", False, True)
ActiveSheet.OLEObjects(i * 2 + 2).Visible = IIf(Cells(20 + i, 4) =
"", False, True)
Next i
End Sub

http://cjoint.com/?bjgwqccNNC

Cordialement JB


bonsoir à vous,
dans un tableau (cellules D20:D29), j'ai deux optionbutton (pour Oui et N on)
en face de chaque cellule.
Je teste si le contenu des cellules de D20 jusqu'à D29 est vide, et si c'est
le cas en face de chaque cellule , je rend visible false les 2 optionbutt on
correspondants.
J'ai bidouillé ainsi :
If Range("D20").Value = "" Then
OptionButton1.Visible = False
OptionButton2.Visible = False
Else
OptionButton1.Visible = True
OptionButton2.Visible = True
End If
If Range("D21").Value = "" Then
OptionButton3.Visible = False
OptionButton4.Visible = False
Else
OptionButton3.Visible = True
OptionButton4.Visible = True
End If
If Range("D22").Value = "" Then
OptionButton5.Visible = False
OptionButton6.Visible = False
Else
OptionButton5.Visible = True
OptionButton6.Visible = True
End If
If Range("D23").Value = "" Then
OptionButton7.Visible = False
OptionButton8.Visible = False
Else
OptionButton7.Visible = True
OptionButton8.Visible = True
End If
If Range("D24").Value = "" Then
OptionButton9.Visible = False
OptionButton10.Visible = False
Else
OptionButton9.Visible = True
OptionButton10.Visible = True
End If
If Range("D25").Value = "" Then
OptionButton11.Visible = False
OptionButton12.Visible = False
Else
OptionButton11.Visible = True
OptionButton12.Visible = True
End If
If Range("D26").Value = "" Then
OptionButton13.Visible = False
OptionButton14.Visible = False
Else
OptionButton13.Visible = True
OptionButton14.Visible = True
End If
If Range("D27").Value = "" Then
OptionButton15.Visible = False
OptionButton16.Visible = False
Else
OptionButton15.Visible = True
OptionButton16.Visible = True
End If
If Range("D28").Value = "" Then
OptionButton17.Visible = False
OptionButton18.Visible = False
Else
OptionButton17.Visible = True
OptionButton18.Visible = True
End If
If Range("D29").Value = "" Then
OptionButton19.Visible = False
OptionButton20.Visible = False
Else
OptionButton19.Visible = True
OptionButton20.Visible = True
End If

Mais y'a t'y pas plus simple ou plus court et aussi efficace ?
Merci par avance.
Cordialement
Eliot


Avatar
JLuc
*Bonjour jps*,
C'était bon mais tu as oublier un truc :

x = 0
For each c in activesheet.range("D20:D29")
If c.value == "" Then
Controls("OptionButton" & x + 1).Visible = False
Controls("OptionButton" & x + 2).Visible = False
Else
Controls("OptionButton" & x + 1).Visible = True
Controls("OptionButton" & x + 2).Visible = True
End If
x = x + 2

Next c

non testé
Idem lol


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

Avatar
JB
Bonjour,

A ma connaissance, Controls() ne fonctionne que dans les UserForms.

Cordialement JB

*Bonjour jps*,
C'était bon mais tu as oublier un truc :

x = 0
For each c in activesheet.range("D20:D29")
If c.value == "" Then
Controls("OptionButton" & x + 1).Visible = False
Controls("OptionButton" & x + 2).Visible = False
Else
Controls("OptionButton" & x + 1).Visible = True
Controls("OptionButton" & x + 2).Visible = True
End If
x = x + 2

Next c

non testé
Idem lol


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O



Avatar
jps
merdum, eliotnaiss : pas vu le changement de numérotation des OptionButtons
désolé, je passe la main à plus fortiche....s'il y en a!!!!!!
jps

"EliotNaiss" a écrit dans le message de news:

bonsoir jps
j'avais bien pensé à cette possibilité, mais les optionbuttons sont
numérotés, et il y en a deux qui correspondent à chaque cellule !...
Là j'ai fait court, mais dans mon vrai tableau, je suis sur 40 cellules !
ffffffff

A+



"jps" a écrit dans le message de news:

bonjour eliotnaiss
peut-être qu'avec une boucle...

For each c in activesheet.range("D20:D29")
If c.value == "" Then
OptionButton1.Visible = False
OptionButton2.Visible = False
Else
OptionButton1.Visible = True
OptionButton2.Visible = True
End If
Next c

non testé et tant pis si je me fais secouer les plumes par les gourous
qui vont dire encore que je me mêle (les pinceaux) de ce qui ne me
regarde pas
jps


"EliotNaiss" a écrit dans le message de news:

bonsoir à vous,
dans un tableau (cellules D20:D29), j'ai deux optionbutton (pour Oui et
Non) en face de chaque cellule.
Je teste si le contenu des cellules de D20 jusqu'à D29 est vide, et si
c'est le cas en face de chaque cellule , je rend visible false les 2
optionbutton correspondants.
J'ai bidouillé ainsi :
If Range("D20").Value = "" Then
OptionButton1.Visible = False
OptionButton2.Visible = False
Else
OptionButton1.Visible = True
OptionButton2.Visible = True
End If
If Range("D21").Value = "" Then
OptionButton3.Visible = False
OptionButton4.Visible = False
Else
OptionButton3.Visible = True
OptionButton4.Visible = True
End If
If Range("D22").Value = "" Then
OptionButton5.Visible = False
OptionButton6.Visible = False
Else
OptionButton5.Visible = True
OptionButton6.Visible = True
End If
If Range("D23").Value = "" Then
OptionButton7.Visible = False
OptionButton8.Visible = False
Else
OptionButton7.Visible = True
OptionButton8.Visible = True
End If
If Range("D24").Value = "" Then
OptionButton9.Visible = False
OptionButton10.Visible = False
Else
OptionButton9.Visible = True
OptionButton10.Visible = True
End If
If Range("D25").Value = "" Then
OptionButton11.Visible = False
OptionButton12.Visible = False
Else
OptionButton11.Visible = True
OptionButton12.Visible = True
End If
If Range("D26").Value = "" Then
OptionButton13.Visible = False
OptionButton14.Visible = False
Else
OptionButton13.Visible = True
OptionButton14.Visible = True
End If
If Range("D27").Value = "" Then
OptionButton15.Visible = False
OptionButton16.Visible = False
Else
OptionButton15.Visible = True
OptionButton16.Visible = True
End If
If Range("D28").Value = "" Then
OptionButton17.Visible = False
OptionButton18.Visible = False
Else
OptionButton17.Visible = True
OptionButton18.Visible = True
End If
If Range("D29").Value = "" Then
OptionButton19.Visible = False
OptionButton20.Visible = False
Else
OptionButton19.Visible = True
OptionButton20.Visible = True
End If

Mais y'a t'y pas plus simple ou plus court et aussi efficace ?
Merci par avance.
Cordialement
Eliot











Avatar
jps
mais où avais-je la tête, JLuc? peur d'être en retard et de trouver close la
porte de l'hospice, peut-être
en tous cas, merci pour le follow-up et c'est eliotnaiss qui va-t-être
content, comme aurait pu dire Aimé Jacquet....
jps

"JLuc" a écrit dans le message de news:

*Bonjour jps*,
C'était bon mais tu as oublier un truc :

x = 0
For each c in activesheet.range("D20:D29")
If c.value == "" Then
Controls("OptionButton" & x + 1).Visible = False
Controls("OptionButton" & x + 2).Visible = False
Else
Controls("OptionButton" & x + 1).Visible = True
Controls("OptionButton" & x + 2).Visible = True
End If
x = x + 2

Next c

non testé
Idem lol


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O





Avatar
jps
merdum (bis)
jps

"JB" a écrit dans le message de news:

Bonjour,

A ma connaissance, Controls() ne fonctionne que dans les UserForms.

Cordialement JB

*Bonjour jps*,
C'était bon mais tu as oublier un truc :

x = 0
For each c in activesheet.range("D20:D29")
If c.value == "" Then
Controls("OptionButton" & x + 1).Visible = False
Controls("OptionButton" & x + 2).Visible = False
Else
Controls("OptionButton" & x + 1).Visible = True
Controls("OptionButton" & x + 2).Visible = True
End If
x = x + 2

Next c

non testé
Idem lol


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O



Avatar
Pierre CFI [mvp]
dis plutot "Mertitude" si tu veux etre in the wind
à part çà, plein de bonnes résolutions ??
--
Pierre CFI
MVP Microsoft Access


"jps" a écrit dans le message de news: %
merdum (bis)
jps

"JB" a écrit dans le message de news:
Bonjour,

A ma connaissance, Controls() ne fonctionne que dans les UserForms.

Cordialement JB

*Bonjour jps*,
C'était bon mais tu as oublier un truc :

x = 0
For each c in activesheet.range("D20:D29")
If c.value == "" Then
Controls("OptionButton" & x + 1).Visible = False
Controls("OptionButton" & x + 2).Visible = False
Else
Controls("OptionButton" & x + 1).Visible = True
Controls("OptionButton" & x + 2).Visible = True
End If
x = x + 2

Next c

non testé
Idem lol


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O







Avatar
jps
vi, vi
:-))))
jps

"Pierre CFI [mvp]" a écrit dans le message de
news: %
dis plutot "Mertitude" si tu veux etre in the wind
à part çà, plein de bonnes résolutions ??
--
Pierre CFI
MVP Microsoft Access


"jps" a écrit dans le message de news:
%
merdum (bis)
jps

"JB" a écrit dans le message de news:

Bonjour,

A ma connaissance, Controls() ne fonctionne que dans les UserForms.

Cordialement JB

*Bonjour jps*,
C'était bon mais tu as oublier un truc :

x = 0
For each c in activesheet.range("D20:D29")
If c.value == "" Then
Controls("OptionButton" & x + 1).Visible = False
Controls("OptionButton" & x + 2).Visible = False
Else
Controls("OptionButton" & x + 1).Visible = True
Controls("OptionButton" & x + 2).Visible = True
End If
x = x + 2

Next c

non testé
Idem lol


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O











1 2