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

VB : selectionner une page

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

P

Pika

Guest
Bonjour,
j'ai créé une macro qu'on lance a chaque démarrage du fichier excel (via Update), cependant, cette macro doit s'appliquer à une page précise. Or actuellement, elle prend en compte les données sur la page ou elle se trouve.
Mon fichier contient en effet de nombreuses feuilles, et si on enregistre sur la feuille 5, quand on lancera le fichier, la macro tiendra compte des données de la feuille 5, et non pas de la 1 ( celle que je souhaite).

Voila mon code :
Public Function NomMinMoy(ListeNom As Range, ListeMoy As Range) As String
'Set Sheet = ActiveWorkbook.Sheets('Données HV')
ColNom = ListeNom.Column
ColMoy = ListeMoy.Column
LigMin = ListeMoy.Row
MonMin = Cells(LigMin, ColMoy)
For Ligne = ListeMoy.Row To ListeMoy.Row + ListeMoy.Rows.Count - 1
If Cells(Ligne, ColMoy) < MonMin Then
LigMin = Ligne
MonMin = Cells(LigMin, ColMoy)
End If
Next Ligne

NomMinMoy = Cells(LigMin, ColNom)
End Function

Mon probleme est donc de spécifier la page 'Données HV' pour que ce soit toujours sur cette page que la macro s'execute.
Petite précision : cette macro est contenu dans un module, et je ne peux pas la mettre dans la page en question.
Merci 😀
 
Bonjour le forum, Pika,

Moi au début de ta macro je ferais ca :
Code:
Set Sheet = Sheets('Données HV')

If Sheet is nothing then 'Gère le faites que la feuille n'existe pas
msgbox 'Feuille Données HV introuvable, Abandon de la macro',vbinformation + vbokonly, 'Erreur...'
exit sub
else
sheet.select ' Sinon séléctionne la feuille
end if

Petite remarque supplémentaire : J'evite toujours autant que possible de nommer mes variables avec des noms approchants des instructions VB, genre cell, sheet, etc...

Je prefere donner des noms plus exotiques mais plus sûres. Dans ton exemple plutôt que Sheet j'aurais mis : MaFeuille.
Comme cela ca evite tout erreur d'interprétation par VB et par moi ! lol

++

Creepy
 
Bonjour Robert, Creepy

je vous remercie de vos réponses.
ALors oui, Robert j'avais déjà essayé cela ... et ca ne marche pas.
Et oui creepy, d'habitude je ne mets pas de nom de variables si proche du code, ce qui effectivement peut porter a confusion... la c'etait juste des essais 😀.

Et malheureusement, ton code ne marche pas. il s'agit d'une fonction et donc le end sub n'est pas apprécié 😀 et cela ne le force pas a utiliser la page Données HV.

Cependant, en lisant vos réponses, je m'apercois que le code
Sheets('Données HV').Select
est correct ... et que puisque ca ne marche pas, mon erreur serait peut etre ailleurs... 🙁

si vous avez d'autres idées .. je suis preneur 😀

En tout cas merci 😀
 
Hello,

Pour d'autres suggestions il faudrait que tu nous mettes un petit exemple.

L'autre idée qui me vient comme ca, c'est que peut être avant de selectionner la feuille, ce serait de selectionner le fichier. Enfin c'est une idée comme ca !

++

Creepy
 
Bonjour Pika, Creepy, bonjour le forum,

Comme il s'agit d'une fonction et que je ne maîtrise absolument pas ce genre, je te propose une bidouille. Une macro d'ouverture du classeur qui sélectionne ta feuille :

Private Sub Workbook_Open()
Sheets('Données HV').Select
End Sub
 
Je vois pas vraiment quel exemple je peux mettre ... mais je vais mieux détailler le fonctionnement :

J'appelle la macro dans la page 'Données HV' en K6
le resultat est copié dans une autre page
='Données HV'!$K$6

Pour appeller la macro j'utilise :
=nomminmoy(B21:B32;F21:F32)

La colonne B contient des noms, la colonne F des chiffres.

Je souhaite donc bloquer la macro a la page 'Données HV'.

ce que je trouve bizar, c'est que la macro s'execute en fonction de la page qui est ouverte ... :
Quand on ouvre le fichier, la macro prend en compte la page qu on voit et non pas celle que je specifie avec sheets('Données HV').Select

Si je dois la placer ailleurs que dans un module pour que ca marche ... dites le moi 😀

Merci.

Pika
 
Désolé Robert, je n'avais aps vu ta réponse quand j'ai posté.
Alors j'ai essayé et ca ne marche toujours pas ...

J'ai placé ton code en début de mon module... dois je le placer ailleurs ?

Au passage, les macros s'execute a l'ouverture .. mais seulement si j'accepte l'update .. en effet, beaucoup de données correspondent a des liens, et à l'ouverture du fichier, il me demande si je souhaite le mettre à jour : c'est dans le cas ou j'accepte que la macro s'execute.

Voila, je continue aussi à chercher 😀 et je reste ouvert à toutes propositions

Pika
 
Bonjour le fil , le forum,

Non Pika. Ce code doit être placé dans le composant VBA ThisWorkbook. Dans Visual Basic Editor, double-clique sur ce'composant dans le cadre à en haut à gauche. Ensuide colle le code que je t'ai donné dans le grand cadre de droite.
 
Hello,

Pour d'autres suggestions il faudrait que tu nous mettes un petit exemple.

L'autre idée qui me vient comme ca, c'est que peut être avant de selectionner la feuille, ce serait de selectionner le fichier. Enfin c'est une idée comme ca !

++

Creepy

EDIT : NE PAS TENIR COMPTE DE CE MESSAGE !! COMMENT CE FAIT IL QU'IL SE SOIT DUPLIQUE ??

Message édité par: Creepy, à: 04/07/2005 11:30
 
Re Bonjour,

Alors je l'ai coller ou tu me l'as indiqué ... et en fait les valeurs sont toujours prises sur la page ou on se trouve quand on ouvre le classeur. Ton code me fait aller sur la page 'Données HV' mais après que les macros soient executées.

Pika
 
Bonjour Robert, Pika, Re Creepy, le Forum

NB : Sans aucun test sur la Function elle_même, mais juste pour la Syntax sur un Object WorkSheet avec With


NB Bien noter le . devant 'Cells'

Bon Appétit
@+Thierry
 
Re-Bonjour a tous, Bonjour _Thierry

Je te remercie pour la syntax 😀.
Ca marche parfaitement.

Bon appétit a vous 😀 (j en reviens 😀).

Encore merci a tous pour votre aide.

Pika
 
Bonjour le Fil, Thierry, bonjour le forum,

Je me disais : «Ça serait bien si Thierry pouvait faire un tour ici»...Alors voilà qu'en plus maintenant il est télépathe. Manquait plus que ça !
 
- 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

I
Réponses
2
Affichages
944
im_Guillaume
I
E
  • Question Question
Réponses
6
Affichages
1 K
elmilo13
E
S
Réponses
13
Affichages
2 K
Stedemart
S
W
Réponses
4
Affichages
3 K
WhatIsVBA
W
N
Réponses
6
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…