• Initiateur de la discussion Initiateur de la discussion nrdz83
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

nrdz83

XLDnaute Impliqué
Bonjour à tous voila mon problème, J'ai fait une macro qui me permet de masquer mes feuilles, ça fonctionnait tres bien avec un bouton sur la feuille.
Afin d'amiéliorer l'hestétique j'ai fait un userform avec une concentration de bouton commande, le hic c'est que la maccro masque feuille ne fonctionne plus avec erreur "activesheet.shapes("autoshape2).select.
J'ai joint le fichier ici :
Cijoint.fr - Service gratuit de dépôt de fichiers
Je pense qu'il faut renomer la commande, je vous dit un merci d'avance , amitiés 😎
 
Re : erreur autoshape

Bonsoir ndrz83, jeanpierre

Voici ta macro modifée :

Code:
Sub BnAfficheMasque()
  Dim I As Integer, MesSht As String, TSht() As String, TxtShp As String
  ' Tableau des feuilles à AFFICHER/CACHER séparée par des virgule
  ' Mettre en premier n'importe quel texte, ne sera pas pris en compte
  MesSht = "X,choix"
  TSht = Split(MesSht, ",")
  ' Sélectionner le CommandButton 2
  'ActiveSheet.Shapes("AutoShape 2").Select
  ' Récupérer le texte de la forme
  TxtShp = USF_affcmd.CommandButton2.Caption
  ' Suivant le texte que contient la forme automatique
  If TxtShp = "Afficher les feuilles" Then
    ' Demander le mot de passe
    USF_Mdp.TextBox1.Value = ""
    USF_Mdp.Show
    If FlgOk = False Then
      MsgBox "Mot de passe érroné !"
      Exit Sub
    End If
    ' Si OK, masquer les feuilles
    For I = 1 To UBound(TSht)
      Sheets(TSht(I)).Visible = True
    Next I
     USF_affcmd.CommandButton2.Caption = "Masquer les feuilles"
  Else
    For I = 1 To UBound(TSht)
      Sheets(TSht(I)).Visible = False
    Next I
     USF_affcmd.CommandButton2.Caption = "Afficher les feuilles"
  End If
  Range("A2").Select
End Sub

Tu utilises un bouton dans ton USF et non plus objet Shape.

A+
 
Re : erreur autoshape

bonjour à tous,

Suis bien incapable d'apporter quoi que ce soit à la discussion, so sorry, mais dommage de laisser perdre ce superbe fichier sur Cjoint, donc le voici avec quelques lignes de moins en PJ.

@ +

mth
 

Pièces jointes

Re : erreur autoshape

merci jean-pierre tu m'avais déja dépanné sur le sujet hier car j'avais changé de bouton et là j'ai voulu améliorer en faisant un userform et du coup ça bug.
BQTR j'ai retranscri ton code en modifiant tes corrections mais ça marche toujours pas ,

Sub BnAfficheMasque()
Dim I As Integer, MesSht As String, TSht() As String, TxtShp As String
' Tableau des feuilles à AFFICHER/CACHER séparée par des virgule
' Mettre en premier n'importe quel texte, ne sera pas pris en compte
MesSht = "X,choix"
TSht = Split(MesSht, ",")
' Sélectionner le CommandButton 2
'ActiveSheet.Shapes("AutoShape 2").Select
' Récupérer le texte de la forme
TxtShp = USF_affcmd.CommandButton2.Caption
' Suivant le texte que contient la forme automatique
If TxtShp = "Afficher les feuilles" Then
' Demander le mot de passe
USF_Mdp.TextBox1.Value = ""
USF_Mdp.Show
If FlgOk = False Then
MsgBox "Mot de passe érroné !"
Exit Sub
End If
' Si OK, masquer les feuilles
For I = 1 To UBound(TSht)
Sheets(TSht(I)).Visible = True
Next I
USF_affcmd.CommandButton2.Caption = "Masquer les feuilles"
Else
For I = 1 To UBound(TSht)
Sheets(TSht(I)).Visible = False
Next I
USF_affcmd.CommandButton2.Caption = "Afficher les feuilles"
End If
Range("A2").Select
End SubTu utilises un bouton dans ton USF et non plus objet Shape.


l'erreur ne viendrai pas de la ligne ; 'ActiveSheet.Shapes("AutoShape 2"). ?
si oui que faut il mettre comme code ? d'avance merci a tous pour votre dévouement
 
Re : erreur autoshape

Re,

C'est étonnant j'ai testé et ca fonctionne, la feuille "Choix" s'affiche et se masque. Le texte du bouton change aussi en fonction du statut de la feuille "Choix" (masquée ou affichée).

'ActiveSheet.Shapes("AutoShape 2").Select est précédé d'un apostrophe cela correspond à un commentaire et n'a donc aucune incidence sur le déroulement de la macro.


A+

Edit: fichier retiré et replacé plus loin dans la discussion.
 
Dernière édition:
Re : erreur autoshape

Re,

Tu as une autre erreur dans ta macro.

Le tableau TSht a deux éléments (les feuilles "X" et "Choix"). Dans ta boucle sur les éléments du tableau tu commences avec I = 1 alors qu'il faut commencer par I = 0.
Le premier élément d'un tableau à pour index 0, le deuxième 1 etc....

Si tu laisses I = 1 le premier élément du tableau sera ignoré.

A+
 
Re : erreur autoshape

TRop fort BQTR ça fonctionne j'ai cherché d'ou provennait mon erreur en fait j'avais oublié de une ligne a changé de code , trop bète . Enfin maintenant je le saurais encore merci pour ta gentillesse amitiés , bye
 
Re : erreur autoshape

Re, Bonsoir Pierre Olivier,

dans le post de 21h26 la ligne est bien en commentaire, dans le fichier origine, non.

PO, je viens de voir ton fichier qui fonctionne pour moi au-delà des divergences 2000/2003, bien sûr. Pas tout vérifié, néanmoins.
 
Re : erreur autoshape

merci jean-pierre effectivement j'ai cherché à comprendre d'ou venait l'erreur puisque avant sur un bouton ça fonctionnait.
Effectivement la ' etait absente.
Je ne me doutais même pas que ça pouvait venir de là .
Merci ton coup d'oeil m'apprendra à être un peu plus vigilant pour les prochaines fois, mes amitiés bye
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
1 K
M
Réponses
9
Affichages
1 K
M
C
  • Résolu(e)
Réponses
2
Affichages
1 K
clarouche33
C
A
Réponses
12
Affichages
2 K
AnjyD
A
Retour