OVH Cloud OVH Cloud

commandbutton_click

4 réponses
Avatar
Pascal Manach
Bonjour,


J'ai rédigé une macro qui permet de créer plusieurs onglets à partir d'une
feuille de référence dans un classeur.
Une fois les onglets créés j'ai besoin d'effectuer dans chacun d'entre eux
des opérations de tri.
Pour se faire j'ai créer une boucle qui permet de se positionner dans chaque
onglet et d'effectuer les évolutions souhaitées. La macro se déroule bien
quand j'utilise la fonction éxécuter dans le module visual.
Par contre lorsque j'essaye de positionner un bouton de commande (en
l'occurence j'ai dupliqué le contenu du module et l'ai intégré dans la
feuille principale qui possède le bouton de commande) dans la feuille
principale la macro ne fonctionne que partiellement, elle crée normalement
les différents onglets mais n'arrive pas à se positionner dans chacun
d'entre eux au moyen de la boucle.

Merci de m'aider à comprendre ce qui ne va pas

4 réponses

Avatar
Philippe.R
Bonjour Pascal,
Peux tu publier ici le code, histoire de pouvoir y promener un oeil ?
--
Amicales Salutations
XL 97 / 2000 / 2002
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Pascal Manach" a écrit dans le message de news:

Bonjour,


J'ai rédigé une macro qui permet de créer plusieurs onglets à partir d'une
feuille de référence dans un classeur.
Une fois les onglets créés j'ai besoin d'effectuer dans chacun d'entre eux
des opérations de tri.
Pour se faire j'ai créer une boucle qui permet de se positionner dans chaque
onglet et d'effectuer les évolutions souhaitées. La macro se déroule bien
quand j'utilise la fonction éxécuter dans le module visual.
Par contre lorsque j'essaye de positionner un bouton de commande (en
l'occurence j'ai dupliqué le contenu du module et l'ai intégré dans la
feuille principale qui possède le bouton de commande) dans la feuille
principale la macro ne fonctionne que partiellement, elle crée normalement
les différents onglets mais n'arrive pas à se positionner dans chacun
d'entre eux au moyen de la boucle.

Merci de m'aider à comprendre ce qui ne va pas




Avatar
anonymousA
bonjour,

compte tenu du peu de renseignement de code que tu communiques, il est
difficile de se prononcer mas une phrase que tu écris me met la puce à
l'oreille

elle crée normalement les différents onglets mais n'arrive pas à se
positionner dans chacun d'entre eux au moyen de la boucle.

Méfie toi de la différence entre select et activate pour une feuille et
particulièrement lorsque on exécute une procédure depuis un module de
feuille différente d'une feuille appelée.


A+

Bonjour,


J'ai rédigé une macro qui permet de créer plusieurs onglets à partir d'une
feuille de référence dans un classeur.
Une fois les onglets créés j'ai besoin d'effectuer dans chacun d'entre eux
des opérations de tri.
Pour se faire j'ai créer une boucle qui permet de se positionner dans chaque
onglet et d'effectuer les évolutions souhaitées. La macro se déroule bien
quand j'utilise la fonction éxécuter dans le module visual.
Par contre lorsque j'essaye de positionner un bouton de commande (en
l'occurence j'ai dupliqué le contenu du module et l'ai intégré dans la
feuille principale qui possède le bouton de commande) dans la feuille
principale la macro ne fonctionne que partiellement, elle crée normalement
les différents onglets mais n'arrive pas à se positionner dans chacun
d'entre eux au moyen de la boucle.

Merci de m'aider à comprendre ce qui ne va pas




Avatar
j
ce qui se passe probablement c'est que ton bouton garde le focus
deux solutions,
- soit tu commence ta macro par cells(1).select qui te replace dans la page
excel
- soit tu vas dans les propriétés du bouton et tu bascules le
takefocusonclick à false

http://jacxl.free.fr


"Pascal Manach" a écrit dans le message de news:

Bonjour,


J'ai rédigé une macro qui permet de créer plusieurs onglets à partir d'une
feuille de référence dans un classeur.
Une fois les onglets créés j'ai besoin d'effectuer dans chacun d'entre eux
des opérations de tri.
Pour se faire j'ai créer une boucle qui permet de se positionner dans
chaque

onglet et d'effectuer les évolutions souhaitées. La macro se déroule bien
quand j'utilise la fonction éxécuter dans le module visual.
Par contre lorsque j'essaye de positionner un bouton de commande (en
l'occurence j'ai dupliqué le contenu du module et l'ai intégré dans la
feuille principale qui possède le bouton de commande) dans la feuille
principale la macro ne fonctionne que partiellement, elle crée normalement
les différents onglets mais n'arrive pas à se positionner dans chacun
d'entre eux au moyen de la boucle.

Merci de m'aider à comprendre ce qui ne va pas




Avatar
MichDenis
Bonjour Pascal Manach,

Tu devrais conserver ton code dans un module standard et dans la feuille module de ta feuille principale, dans la procédure de ton
bouton de commande, appelle la procédure dans le module standard. Pourquoi ceci ? La façon de faire référence aux objets est
différente dans un module standard de la façon utilisée dans un module feuille. Dans un module feuille chaque objet qui n'appartient
pas à cette feuille doit être référencié précisément... ce n'est pas le cas dans un module feuille. Cela peut expliquer pourquoi ta
procédure se plante lorsque tu la copies dans un module feuille.

Exemple : Petit test

Dans un module standard :

'-------------------------
Sub ValeurCelluleA1()

Worksheets("Feuil1").select
Msgbox Range("A1").value
End Sub
'-------------------------

Si tu places la même procédure dans le module feuille de la FEUIL2
Avec cette ligne de code :
Msgbox Range("A1").value

Tu vas obtenir la valeur de la cellule A1 de la feuil2 et non pas la valeur de la cellule de la feuil1


Une façon d'écrire ton code pour que cela fonctionne dans un module Feuil2

Worksheets("Feuil1").select
Msgbox Worksheets("Feuil1").Range("A1").value


Une autre façon utilisant une syntaxe plus courte et qui fonctionne toujours peu importe où tu écris ta macro

With worksheets("Feuil1")
.Select
Msgbox .range("A1").value
End With



Salutations!




"Pascal Manach" a écrit dans le message de news:
Bonjour,


J'ai rédigé une macro qui permet de créer plusieurs onglets à partir d'une
feuille de référence dans un classeur.
Une fois les onglets créés j'ai besoin d'effectuer dans chacun d'entre eux
des opérations de tri.
Pour se faire j'ai créer une boucle qui permet de se positionner dans chaque
onglet et d'effectuer les évolutions souhaitées. La macro se déroule bien
quand j'utilise la fonction éxécuter dans le module visual.
Par contre lorsque j'essaye de positionner un bouton de commande (en
l'occurence j'ai dupliqué le contenu du module et l'ai intégré dans la
feuille principale qui possède le bouton de commande) dans la feuille
principale la macro ne fonctionne que partiellement, elle crée normalement
les différents onglets mais n'arrive pas à se positionner dans chacun
d'entre eux au moyen de la boucle.

Merci de m'aider à comprendre ce qui ne va pas