Bonjour à tous,
Dans un processus de masquage/affichage de lignes, certains boutons (non activeX) présents sur certaines lignes se suppriment aléatoirement. Je ne comprends pas pourquoi alors même qu'ils sont paramétrés correctement (Format de Contrôle>Propriété> Déplacer et dimensionner avec les cellules). Ces boutons sont réalisés depuis le menu Développeur>Insérer bouton.
Auriez-vous une astuce pour forcer l'affichage de ces boutons lorsque je clique sur mon (autre) bouton "Afficher les lignes" ?
Merci pour votre aide.
Tchotchodu31
Sub MasqueBouton()
Dim Shp As Shape
Dim i As Integer
'Boucle sur les bouton de la Feuil1 (A adapter)
'Si tu veux tout masquer cette boucle est inutile ==> For i =....
For i = 1 To 7 'Si tes numéros de bouton sont de 1 à 7 (A adapter)
For Each Shp In Feuil1.Shapes
If Shp.Name = "Button " & i Then Shp.Visible = False
Next Shp
Next i
End Sub
Sub AfficheBouton()
Dim Shp As Shape
Dim i As Integer
'Boucle sur les bouton de la Feuil1 (A adapter)
'Si tu veux tout masquer cette boucle est inutile ==> For i =....
For i = 1 To 7 'Si tes numéros de bouton sont de 1 à 7 (A adapter)
For Each Shp In Feuil1.Shapes
If Shp.Name = "Button " & i Then Shp.Visible = True
Next Shp
Next i
End Sub
Bonjour chers lecteurs, le fil,
Je reviens ici pour apporter une contribution à ma demande initiale.
Selon ma demande qui indiquait que les boutons se supprimaient, Phil69970 a répondu correctement au post #23.
En creusant un peu plus, je me suis aperçu que les boutons étaient finalement écrasés en même temps que les lignes étaient masquées (donc boutons devenus invisibles).
En fouillant sur le Net, j'ai trouvé une macro qui a résolue mon problème. Cette macro gère toutes les "Shapes", respecte le ratio hauteur/largeur (attention de bien cocher "Proportionnel" dans le format de contrôle) et contrôle les dimensions des images avec l'affichage/masquage des lignes selon les attributs : xlFreeFloating -> L'objet est flottant xlMove -> L'objet est déplacé avec les cellules xlMoveAndSize -> L'objet est déplacé et redimensionné avec les cellules
Voici le code :
VB:
Sub GestionImages()
Dim Shp As Shape
For Each Shp In ActiveSheet.Shapes
If Shp.Type = msoPicture Then
With Shp
.Placement = xlMoveAndSize ' ou xlMove ou xlFreeFloating
.LockAspectRatio = msoTrue
End With
End If
Next
End Sub
Si toutefois mon explication n'était pas correcte, merci aux experts d'Excel de bien vouloir la corriger.
Bonne journée.
Tchotchodu31