Visible/non visible sur des formes groupées

F

Francis38

Guest
Bonjour Le FORUM,

Comme toujours quand je suis bloqué et que je ne trouve pas la solution , je viens chercher de l'aide sur Le FORUM.

Ce que je désire faire : Depuis une zone de liste déroulante (barre d'outils formulaire), je récupère la cellule liée (J19) et suivant sa valeur j'active une Private Sub sur la même feuille pour rendre visible une seule forme sur trois qui sont 'empilées' les unes sur les autres.
Ces 3 formes sont un groupement de formes diverses et chacune d'elles est nomée (Angle0; AngleDroit; Angle45).
Et comme vous vous en doutez ça ne fonctionne pas, il ne se passe rien.
Ci joint ma procédure car mon fichier est trop important (3.5 Mo).
Je ne suis pas un pro de VBA, mais je me débrouille en récupérant des exemples données sur des fils ou je les créée moi-même.

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Dim Valeur As Range
Set Valeur = Range('J19')
If Application.Intersect(Target, Valeur) Is Nothing Then Exit Sub
If Target = 1 Or Target <= 5 Then
ActiveSheet.Shapes('Angle45').Visible = True
ActiveSheet.Shapes('AngleDroit').Visible = False
ActiveSheet.Shapes('Angle0').Visible = False
Else
If Target = 12 Or Target <= 17 Then
ActiveSheet.Shapes('Angle45').Visible = False
ActiveSheet.Shapes('AngleDroit').Visible = True
ActiveSheet.Shapes('Angle0').Visible = False
Else
If Target = 6 Or Target <= 11 And Target = 18 Or Target <= 42 Then
ActiveSheet.Shapes('Angle45').Visible = False
ActiveSheet.Shapes('AngleDroit').Visible = False
ActiveSheet.Shapes('Angle0').Visible = True
End If
End If
End If
End If
End Sub


Merci par avance pour votre aide en me signalant les erreurs.
Francis 38.
 

Creepy

XLDnaute Accro
Bonsoir le Forum, Francis,

Houlalala compliqué ton code jecomprends que ca marche pas. Voici mon code avec la commande select case.

Tu mets : Select case XXXXX (XXXXX etant une variable ou autre) et ensuite en dessous tu mets les case ou 'Cas' en francais

Et puis pourquoi attribuer la valeur de J19 à une variable autant tester directement la valeur de J19, Gain de temps et code plus propre !! Bon ok dans ton code le temps n'est pas tres long mais bon.

Private Sub Worksheet_Change(ByVal Target As Range)

Application.ScreenUpdating =
False

With ActiveSheet
Select Case .Range('J19').Value
   
Case 1 To 5 ' Si valeur entre 1 et 5, on aurait aussi pu faire
   
'Case 1,2,3,4,5 mais c'est moins propre
   
'ou encore un case par valeur : case 1, puis, case 2, etc...
        .Shapes('Angle45').Visible =
True
        .Shapes('AngleDroit').Visible =
False
        .Shapes('Angle0').Visible =
False
   
Case 12 To 17 ' Si valeur entre 12 et 17
        .Shapes('Angle45').Visible =
False
        .Shapes('AngleDroit').Visible =
True
        .Shapes('Angle0').Visible =
False
   
Case 6 To 11, 18 To 42 ' Si valeur comprise entre 6 et 11 & 18 et 42
        .Shapes('Angle45').Visible =
False
        .Shapes('AngleDroit').Visible =
False
        .Shapes('Angle0').Visible =
True
   
Case Else 'Autres Valeurs y compris Null
       
Exit Sub
End Select
End With

Application.ScreenUpdating =
True

End Sub

Voila

@+

Creepy

Message édité par: Creepy, à: 03/11/2005 21:45
 
F

Francis38

Guest
Merci CREEPY,

C'est vrai que mes macros sont compliquées, mais ne connaissant pas vraiment le langage VBA, j'apprends au fur et à mesure des conseils et exemples recueillis sur LE FORUM.
J'ai bien recopié ta procédure mais ca ne fonctionne toujours pas ???
J'ai donc recopié les feuilles et ta macro dans un nouveau fichier pour pouvoir le joindre, je pense que celà t'aidera dans la résolution de mon problème.

A+ et encore merci.

Bonsoir. [file name=Visible_NonVisible.zip size=29398]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Visible_NonVisible.zip[/file]
 

Pièces jointes

  • Visible_NonVisible.zip
    28.7 KB · Affichages: 23

Creepy

XLDnaute Accro
Hello le Forum, Francis,

Normal que ca ne marche pas tu as mis cette macro dans Workshett_Change. CEtte procédure ne se déclenche que si tu fais un changement manuel dans la feuille.

Les changemennts par macro ne sont pas pris en compte !

Si tu essaies en J19 de mettre des valeurs tu vois que tes graphs se modifient !

Il faut donc créer une macro et l'attribuer à ton controle combobox pour qu'elle s'execute au changement de valeur de celle-ci.

Pour attribuer une macro à un controle, fait un clique droit sur le controle.

@+

Creepy [file name=Visible_NonVisible_20051104091419.zip size=28923]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Visible_NonVisible_20051104091419.zip[/file]

Message édité par: Creepy, à: 04/11/2005 09:14
 

Pièces jointes

  • Visible_NonVisible_20051104091419.zip
    28.2 KB · Affichages: 17
F

Francis38

Guest
Salut CREEPY, LE FORUM,

Merci pour ton aide, je viens d'essayer vite fait au boulot, ca fonctionne correctement, il me reste juste à améliorer la superposition des formes entre elles.
Bien enregistré que le changement est manuel pour cette macro.
Ma formation se 'perfectionne' un peu plus tous les jours.

Bonne fin de journée et bon week-end à tous.

Francis38.
 

Discussions similaires

Statistiques des forums

Discussions
312 963
Messages
2 093 998
Membres
105 906
dernier inscrit
aifa