Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Gestion des différentes vues

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 !

chasseur44

XLDnaute Occasionnel
Bonjour à tous
J'ai ds un fichier des vues différentes me permettant de présenter mes données sous différentes formes !
Pour l'instant rien de complexe, je navigue entre mes vue au travers de bouton associé à un bout de macro classique du style "ActiveWorkbook.CustomViews("nom_vue").show".
Ma question porte sur le fait que je cherche à savoir comment est-il possible (en vba) de faire un test pour savoir sur quelle vue je suis ? sachant que j'ai 3 vues possibles et à un moment , je voudrais faire démarrer une macro mais seulement quand je suis dans une vue particulière !

Merci de votre aide
 
Re : Gestion des différentes vues

Bonjour Chasseur44,

si j'affiche une vue A et qu'ensuite je masque une ligne, est-ce que tu considères qu'on est encore dans la vue A ?
Je ne crois pas qu'Excel gère la "vue personnalisée en cours", donc à mon avis à toi de stocker dans une variable la dernière vue appliquée
 
Re : Gestion des différentes vues

Bonjour,

Tout comme mon ami Tototiti. Plus:

Si tu as 3 vues et que tu veux lancer une macro avec la vue 3.

Code:
 ActiveWorkbook.CustomViews("Vue_3") .Show
 Call MaMacro

Mais faudrait voir comment tu as monté tes codes.

A+
 
Re : Gestion des différentes vues

J'ai un bouton de macro dispo dans ma feuille et visible et ce peu importe la vue !
par contre je souhaiterais que selon la vue dans laquelle je suis, la macro commence en A1 ds la vue 1 et en B2 ds la vue 2
Donc ds cette macro je voudrais faire un test pour savoir sur quelle vue je suis (1 ou 2).
C'est peut être pas tres clair 🙁
 
Dernière édition:
Re : Gestion des différentes vues

Bonjour chasseur, Bonjour Hasco 🙂

Donc on en revient à :

Je ne crois pas qu'Excel gère la "vue personnalisée en cours", donc à mon avis à toi de stocker dans une variable la dernière vue appliquée

Sur le principe, déclare une variable publique et dans les macros qui changent la vue, affecte une valeur identifiable à ta variable
Puis teste la valeur de ta variable dans ta macro principale

Après, certaines remarques de notre part n'ont pas obtenu de réponse

si j'affiche une vue A et qu'ensuite je masque une ligne, est-ce que tu considères qu'on est encore dans la vue A ?

Mais faudrait voir comment tu as monté tes codes.
 
Re : Gestion des différentes vues

Merci Tototi2008
Mais c'est justement cela que je n'arrive pas bien à écrire !!!
"Sur le principe, déclare une variable publique et dans les macros qui changent la vue, affecte une valeur identifiable à ta variable"
 
Re : Gestion des différentes vues

bonjour le fil,

Bonjour Tototiti😀

Un exemple ci-joint avec non pas une variable publique mais une propriété publique. J'utilise souvent cette structure lorsqu'une Variable doit entraîner des traitements différents suivant son état. Les états sont ainsi traités à un seul endroit avec les changements qui s'en suivent.

Le bouton de la feuille Feuil1 n'est là que pour changer l'état de la propriété 'Vue'. Celle-ci est également modifiée dans ThisWorkBook_Open: Vue = 'Vue_1'

Bien-sûr j'aurais pu créer un module de classe avec évènement Vue_Change par exemple mais je ne crois pas qu'il soit utile pour le demandeur, de se lancer là-dedans pour l'instant.
A+
 
Re : Gestion des différentes vues

Re,

@Hasco : Pas encore réussi à prendre le temps de me plonger correctement dans les modules de classes et les propriétés, même si j'ai de vagues notions, et donc je n'ai pas bien compris la partie

Les états sont ainsi traités à un seul endroit avec les changements qui s'en suivent.

Pour des traitements, il n'aurais pas fallu faire des méthodes ? pas tout suivi et pas tout compris, le toto 😱
 
Re : Gestion des différentes vues

Re,

Hello Tototiti😀 Sans doute le Ges est une langue difficile et pas claire!😀

Pour faire concret dans l'exemple joint , il suffit partout dans tous le code du classeur, module, modules de feuille, de classeur etc. de faire Vue = "Vue_2" (ou "Vue_1") pour lancer à la fois l'affichage idoine, éventuellement une macro et tout ce qu'on peut imaginer faire à partir de là, suivant la valeur de Vue. Cela a pour avantage d'éviter les multiples

If Vue="Vue_1" Then JeFaisCeci Else JeFaisCela

Ces tests étants fait une fois pour toutes. Bien-sûr cela s'entend dans un programme pensé et structuré.

Comme nous n'avions pas de fichier exemple, nous pouvons tout à loisir imaginer et faire comme bon nous semble.

Dans un module de classe effectivement, une propriété peut très bien appeler une 'méthode' à l'interieur de Property Let (ou Set ou Get) et lever un évènement ou non!

Est-ce plus clair? j'en sais rien!

A+
 
Dernière modification par un modérateur:
Re : Gestion des différentes vues

Re,

Si, si c'est plus clair, merci 🙂
Et je ne savais pas qu'on pouvait créer une propriété qui n'est pas associée à un objet (donc sans module de classe)
A moins que la propriété Vue soit associée à un objet par défaut ?
Mais je ne veux pas polluer le fil de chasseur..
 
Re : Gestion des différentes vues

Re,

Une propriété dans un module standard devient un peu une propriété du classeur (pour VBA uniquement) par contre elle ne peut pas lever d'évènement. Excel traite les propriétés de façon spéciale et plus rapide que les simple variables.

A+
 
Re : Gestion des différentes vues

bonsoir,


Le nom de chacune des vues peut s'obtenir de la manière suivante :
For Each cvw In ActiveWorkbook.CustomViews
Debug.Print cvw.Name
Next cvw


Le nom de la vue active (de la fenêtre active) peut s'obtenir comme suit :
Set x = ActiveWorkbook.CustomViews(Application.ActiveWindow.View)
Debug.Print x.Name

L'instruction Application.ActiveWindow.View retourne seulement l'index de la vue.
 
- 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

C
Réponses
0
Affichages
1 K
cptass71
C
V
Réponses
0
Affichages
2 K
V
C
Réponses
1
Affichages
1 K
Cattleya97
C
R
Réponses
3
Affichages
4 K
R
K
Réponses
1
Affichages
1 K
K
D
Réponses
2
Affichages
3 K
D
S
Réponses
0
Affichages
2 K
SOCAF
S
B
Réponses
6
Affichages
3 K
Banshor
B
P
  • Question Question
Réponses
10
Affichages
4 K
P
C
Réponses
6
Affichages
2 K
Cekankonvaou
C
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…