OVH Cloud OVH Cloud

Problème !!!

2 réponses
Avatar
STEN83
Bonsoir,
Dans un classeur plusieurs feuilles, les modules sont enregistrés dans une
macro complémentaire, jusque là rien de bien difficile.
Sur la feuille 1 du xls j'ai un bouton dont le code se trouve dans le xla
qui demande d'ouvrir la feuille 2 Erreur
pourtant j'ai déclarer la variable mais rien a faire!!
En voici le code

Sub OuvreF2 ()

Dim Feuil2 As Worksheet
Set Feuil2 = Feuil2

Feuil2.Activate

End Sub

Merci de m'aider
--
Le partage du savoir contribue à l'amélioration de la condition humaine!
Merci à tous

2 réponses

Avatar
michdenis
Bonjour Sten83,

A ) comme ta macro est dans le fichier Xla, la méthode la plus facile d'avoir accès au
macro de ce fichier est de passer ce fichier xla comme référence au classeur où
nous voulons y travailler. Pour ce faire, tu dois :

1- Déverrouiller ta macro complémentaire si elle l'est.
2- Sélectionner l'élément ThisWorkbook de ton fichier xla dans l'explorateur
de projetVBA et utiliser la "Propriété Name" pour attribuer un Nom singulier
(significatif) à ton fichier .xla.
3- Ne pas oublier d'enregistrer ton fichier xla manuellement... un fichier xla
ne demande pas à la fermeture de celui-ci si tu veux sauvegarder tes modifications,
tu dois le faire manuellement et ne pas t'attendre à cette requête d'excel.
4 - à partir de la barre des menus de la barre de la fenêtre d'éditeur de macro,
outils / références / bouton parcourir jusqu'à la localisation de ton fichier
de macro complémentaire...et tu coches cette dernière dans la liste si ce
n'est déjà fait avant de refermer la fenêtre "Références".

L'autre alternative est de te créer un procédure dans ton fichier xls et appeler
la procédure de la macro complémentaire comme ceci :
Application.Run "Fichier.xla!toto" : Toto étant la macro appelé qui est situé
dans un module Standard du classeur .xla

B ) Maintenant tu vas pouvoir exécuter la macro à partir d'un bouton de
commande issu de la barre d'outils formulaire.
Dans le code que tu as écris dans la procédure "Sub OuvreF2 ()"
il y a un problème à cette ligne : Set Feuil2 = Feuil2
Ceci équivaut à créer une référence à la feuil2 du fichier Xla.

Pour créer une référence à la feuil2 du fichier appelant, tu dois
écrire quelque chose comme :
Dim F as worksheet
Set F = ActiveWorkbook.Worksheets("Feuil2")
F.activate

P.S. J'aurais dû me méfier des trucs faciles !!!


Salutations!




"STEN83" a écrit dans le message de news:
Bonsoir,
Dans un classeur plusieurs feuilles, les modules sont enregistrés dans une
macro complémentaire, jusque là rien de bien difficile.
Sur la feuille 1 du xls j'ai un bouton dont le code se trouve dans le xla
qui demande d'ouvrir la feuille 2 Erreur
pourtant j'ai déclarer la variable mais rien a faire!!
En voici le code

Sub OuvreF2 ()

Dim Feuil2 As Worksheet
Set Feuil2 = Feuil2

Feuil2.Activate

End Sub

Merci de m'aider
--
Le partage du savoir contribue à l'amélioration de la condition humaine!
Merci à tous
Avatar
Ange Ounis
Pour ce que j'en comprends, l'instruction

Set Feuil2 = Feuil2

n'affecte rien du tout à la variable Feuil2.
Je pense qu'il serait sans doute préférable de donner des indications plus
claires à Excel. Qqchose de ce style :

Sub OuvreF2 ()
Dim Feuil2 As Worksheet
Set Feuil2 = ActiveWorkbook.Sheets("Feuil2")
Feuil2.Activate
End Sub

----------
Ange Ounis
----------

Bonsoir,
Dans un classeur plusieurs feuilles, les modules sont enregistrés dans une
macro complémentaire, jusque là rien de bien difficile.
Sur la feuille 1 du xls j'ai un bouton dont le code se trouve dans le xla
qui demande d'ouvrir la feuille 2 Erreur
pourtant j'ai déclarer la variable mais rien a faire!!
En voici le code

Sub OuvreF2 ()

Dim Feuil2 As Worksheet
Set Feuil2 = Feuil2

Feuil2.Activate

End Sub

Merci de m'aider