XL 2010 Perte aléatoire de boutons sur lignes masquées/affichées

Orson83

XLDnaute Impliqué
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
 
Solution
Le fil

VB:
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

Edit ...

Staple1600

XLDnaute Barbatruc
Bonjour le fil, Tchotchodu31

=>Tchotchodu31
Tu veux dire qu'ils se masquent ?
ou qu'ils sont supprimés par code (dans une procédure évènementielle)

NB: Ce sont donc des Boutons de la barre Outils Formulaires.

[Pour infos]
Les CommandButton (ActiveX) offrent plus de possibilités.

[Suggestion]
Est-ce que le phénomène se produit si tu testes avec des CommandButton ?
 
Dernière édition:

Phil69970

XLDnaute Barbatruc
Bonjour Tchotchodu31, Staple1600, le forum

Si j'ai bien compris :
1614428795795.png

A part ça je ne vois pas...
@Phil69970
 

Orson83

XLDnaute Impliqué
Bonjour Tchotchodu31, Staple1600, le forum

Si j'ai bien compris :
Regarde la pièce jointe 1096931

@Phil69970
Bonjour à tous,
Oui, c'est bien ces paramètres qui sont appliqués aux boutons et malgré cela, les boutons sont carrément supprimés (et non masqués) de façon aléatoire.
Pour plus de précisions voici le code du bouton qui masque/affiche les lignes :
VB:
'NAVIGATION PRINCIPALE - ETAPE 1
'Masque/affiche les lignes de la page de saisie
Sub BtnNAVA_DAS()
    Sheets("Données_à_saisir").Visible = True
    Sheets("Données_à_saisir").Unprotect PassWord:="toto"
    Sheets("Données_à_saisir").Rows("6:133").Hidden = True
    Sheets("Données_à_saisir").Rows("2:34").Hidden = False 'ici les images concernées
    Sheets("Données_à_saisir").Rows("120:121").Hidden = False
    Sheets("Données_à_saisir").Protect PassWord:="toto", UserInterfaceOnly:=True
    Application.Goto Sheets("Données_à_saisir").Range("A1")
    Application.Goto Sheets("Données_à_saisir").Range("E7")
End Sub
Les images concernées se trouvent : 6 images en ligne 4 et 1 grande image en lignes 9,10,11,12.
 
Dernière édition:

Orson83

XLDnaute Impliqué
Le fil

@Staple1600 :
Oui apparemment ce sont des boutons contrôles de formulaire et non pas des CommandButton (ActiveX)

@Tchotchodu31 :
Peut être les boutons sont à cheval sur x lignes et au moment du masquage /démasquage sont "perdus" en quelque sorte.
Essaye de les déplacer légerement et/ou les agrandir démesurément pour voir si ton pb perdure....

@Phil69970
Les 6 boutons de la ligne 4 sont bien centrés dans une ligne de 35px et le gros bouton est centré dans 4 cellules fusionnées (ligne 9,10,11,12 colonnes B:C).
Les boutons se nomment "Bouton 428", etc. et sont des objets "Shape".
Ne serait-il pas possible de forcer l'affichage objet shape par leurs noms ?
 

Orson83

XLDnaute Impliqué
Bonjour @Tchotchodu31, :)

Et le petit fichier exemple avec les boutons et la macro en cause, il faut qu'on se le coltine nous-même pour faire nos essais ? Vous n'êtes plus un novice pourtant! 😉
Ou bien vu votre pseudo, vous attendez chaque 31 du mois pour le mettre à disposition ? (ça va faire long jusqu'à fin mars 😄)
Salut mapomme, le forum,
31 c'est le département, mais si tu passes par là, je t'offrirai l'apéro avec plaisir même si tu n'as pas de solution à mon problème ;) .
Sinon, effectivement, un fichier serait plus clair, mais je pensai qu'une bonne explication ferait le travail.
Je prépare ça.
A toute.
 

Staple1600

XLDnaute Barbatruc
Re, Bonjour mapomme ;)

je me permets au passage de proposer une syntaxe simplifiée du code posté.
VB:
Sub BtnNAVA_DAS_bis()
With Sheets("Données_à_saisir")
    .Visible = True
    .Unprotect Password:="toto"
    .Rows("6:133").Hidden = True
    .Range("2:34,120:121").EntireRow.Hidden = False 'ici les images concernées
    .Protect Password:="toto", UserInterfaceOnly:=True
End With
    Application.Goto Sheets("Données_à_saisir").Range("A1")
    Application.Goto Sheets("Données_à_saisir").Range("E7")
End Sub

=>Tchotchodu31
Et sinon, tu peux tester avec cette macro si oui ou non tes boutons ont vraiment disparus
A exécuter en étant sur la feuille Données_à_saisir
VB:
Sub Voir_Tout()
ActiveSheet.DrawingObjects.Visible = True
End Sub

=>Phil
Tu n'as pas vu ma petite question à ton endroit ? ;)
 

Phil69970

XLDnaute Barbatruc
Le fil

@Staple1600 je t'ai répondu ici :
@Staple1600 :
Oui apparemment ce sont des boutons contrôles de formulaire et non pas des CommandButton (ActiveX)
@Tchotchodu31 :
Est-il possible d'adapter ce code dans la macro du post #5 ou faut-il une macro à part ?
Oui c'est possible dans ton code ou celui de Staple1600
Avant de cacher tes lignes tu masques les boutons
VB:
Worksheets("Données_à_saisir").Shapes("Bouton 428").Visible = False

Et quand tu les démasques tu fais le contraire
VB:
Worksheets("Données_à_saisir").Shapes("Bouton 428").Visible = True

@Phil69970
 

Statistiques des forums

Discussions
312 229
Messages
2 086 423
Membres
103 206
dernier inscrit
diambote