Un souci pas trop compliqué en visual basic

Hotage

XLDnaute Nouveau
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
 

Pierrot93

XLDnaute Barbatruc
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
@+
 

Hotage

XLDnaute Nouveau
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)
 

Pierrot93

XLDnaute Barbatruc
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....
 

Hotage

XLDnaute Nouveau
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...
 

Pierrot93

XLDnaute Barbatruc
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....
 

Hotage

XLDnaute Nouveau
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

  • Masque Démasque V001.xls
    133.5 KB · Affichages: 60
Dernière édition:

Hotage

XLDnaute Nouveau
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 édition:

Staple1600

XLDnaute Barbatruc
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:

Hotage

XLDnaute Nouveau
Re : Un souci pas trop compliqué en visual basic

c'est une boutade comme tu dis :D

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.

:confused:
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 584
Messages
2 089 991
Membres
104 330
dernier inscrit
joedal