Un souci pas trop compliqué en visual basic

  • Initiateur de la discussion Initiateur de la discussion Hotage
  • 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 !

H

Hotage

Guest
Bonjour, et merci!

Dans cet exemple, ma macro se focalise uniquement sur la feuille 17

With Feuil17.Shapes("Button 2").TextFrame.Characters

Comment faire pour que mon code se base sur toutes les feuilles sans exception du document?

Merci d'avance!

Hotage
 
Re : Un souci pas trop compliqué en visual basic

Bonjour,

faire une boucle sur les feuilles de ton classeur...
Code:
Dim ws As Worksheet
For Each ws In Worksheets
    ws.Shapes(...............
Next ws

sans plus de détails...

bonne journée
@+
 
Re : Un souci pas trop compliqué en visual basic

La dernière solution est intéressante, mais je pense qu'il va y avoir un problème: quand est-ce que la boucle va se stoper?

Sinon que signifie ws.Shape? (je n'ai jamais fait de visual, seulement un peu de java et de php)
 
Re : Un souci pas trop compliqué en visual basic

Re,

dans la boucle "For Each ws In Worksheets", est la variable objet qui représente une feuille de calcul, "for each" permettra de boucler sur toutes les feuilles de calcul de ton classeur....
 
Re : Un souci pas trop compliqué en visual basic

en fait j'aurais du mettre le code au complet immédiatement... désolé

Code:
Sub Administration()
Dim Cel As Range

  Application.ScreenUpdating = False                             
  With Feuil17.Shapes("Button 7").TextFrame.Characters             
    If .Text = "Masquer" Then                                      
      .Text = "Personnel"                                         
      Range("14:66").EntireRow.Hidden = True                     
    Else
      .Text = "Masquer"                                           
      For Each Cel In Range("A14:A66")                         
        If Trim(Cel) <> "" Then Rows(Cel.Row).Hidden = False     
      Next Cel                                                   
    End If
  End With
End Sub

Je le met en entier parce que je ne comprend pas bien ou je dois placer quoi avec le code que tu me proposes :/ désolé je suis un peu débile...
 
Re : Un souci pas trop compliqué en visual basic

Re,

regarde ceci :
Code:
Sub Administration()
Dim Cel As Range, ws As Worksheet
  Application.ScreenUpdating = False
For Each ws In Worksheets
  With ws.Shapes("Button 7").TextFrame.Characters
    If .Text = "Masquer" Then
      .Text = "Personnel"
      ws.Range("14:66").EntireRow.Hidden = True
    Else
      .Text = "Masquer"
      For Each Cel In ws.Range("A14:A66")
        If Trim(Cel) <> "" Then ws.Rows(Cel.Row).Hidden = False
      Next Cel
    End If
  End With
Next ws
End Sub

mais cela suppose un "Button 7" sur toutes les feuilles de ton classeur....
 
Re : Un souci pas trop compliqué en visual basic

Ecoute c'est bizzare... J'ai bien un button 7 correctement attribué mais lorsque je clique sur le bouton, cela m'affiche:

With ws.Shapes("Button 7").TextFrame.Characters


Désolé l'élément est introuvable

🙁

EDIT:

Je transmet en pièce jointe mon document. merci de ne pas voler mon code (la boite ou je boss me truciderais)

thx!
 

Pièces jointes

Dernière modification par un modérateur:
Re : Un souci pas trop compliqué en visual basic

Re,

tu as bien un bouton sur toutes les feuilles ??? et ils portent tous le même nom ???

En fait actuellement je n'ai qu'une page avec le bouton. J'ai transmis le document sur le message avant. Dans l'idée il y aura les 12 mois de l'année avec la même présentation.

EDIT: J'ai oublié de préciser que sur le document fourni je n'ai pas sauvegardé le changement de macro avec ta version à toi.... dsl
 
Dernière modification par un modérateur:
Re : Un souci pas trop compliqué en visual basic

Bonsoir

Je transmet en pièce jointe mon document. merci de ne pas voler mon code (la boite ou je boss me truciderais)
c'est une boutade ou tu es sérieux ?

tu as bien un bouton sur toutes les feuilles ??? et ils portent tous le même nom ???
Si on se fie au fichier joint
la réponse est non
 
Dernière édition:
Re : Un souci pas trop compliqué en visual basic

c'est une boutade comme tu dis 😀

Mais sinon, j'ai précisé que sur le fichier join, les boutons n'étaient que sur une seule page, mais que ça n'empêchait pas les bouton de la page en question de ne plus fonctionner une fois le code proposé inséré à la place de l'autre.

EDIT:

Dit autrement, je voulais déjà voir si le code marchait sur une seule page avec la nouvelle fonction (ce qui, il me semble, devrait fonctionner puisque le nouveau code est sensé marcher sur n'importe laquelle).

Je n'ai pas encore placé les boutons sur d'autres pages. je voulais voir si le code marchait que sur une page pour commencer.

Du fait, en remplaçant mon code par celui proposé, excel me retourne une erreur.

😕
 
Dernière modification par un modérateur:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
1 K
J
Réponses
4
Affichages
765
Réponses
36
Affichages
3 K
Réponses
8
Affichages
1 K
N
Réponses
24
Affichages
4 K
Nico17620
N
Retour