XL 2013 Macro liée à un onglet renommé

RH_FFF

XLDnaute Nouveau
Bonjour à tous,

J'ai réalisé une macro mais je n'arrive pas à trouver la ligne de code qui me permettra de faire fonctionner ma macro si je renomme ma feuille ("ficheseance").
Voici mon code:

Worksheets("Images").Activate
With ActiveSheet.Shapes.Range(Array("GT")).Select
Selection.Copy
Worksheets("Ficheseance").Activate
Range("N18").Select
ActiveSheet.Paste
End With
End Sub

Je pense qu'il faut agir sur worksheets("Ficheseance").Activate mais malheureusement je n'arrive pas à trouver la solution. Ce qui m'amène à demander votre aide.

Merci par avance
 
Dernière modification par un modérateur:

Dranreb

XLDnaute Barbatruc
Re : Macro liée à un onglet renommé

Bonsoir.

C'est précisément pour ça qu'il vaut mieux utiliser dans les macros les objets Worksheet directement connus du projet VBA sous leurs noms indiqués dans la rubrique Microsoft Excel Objets devant le nom des feuilles Excel auxquels ils correspondent rappelés entre parenthèses, plutôt que de reconstituer chaque fois une expression Worksheet par extraction de la collection Workseets du classeur d'après ce nom Excel.
 

RH_FFF

XLDnaute Nouveau
Re : Macro liée à un onglet renommé

Bonsoir,

Merci pour votre réponse même si je ne vous cache pas que mon inexpérience en VBA ne me permet pas de comprendre votre réponse.

Bien cordialement
 
Dernière modification par un modérateur:

Dranreb

XLDnaute Barbatruc
Re : Macro liée à un onglet renommé

Qu'est ce qu'il vous affiche si vous exécutez cette petite procédure ?
VB:
Sub x()
MsgBox Worksheets("Images").CodeName & vbLf _
    & Worksheets("Ficheseance").CodeName
End Sub
 
Dernière édition:

RH_FFF

XLDnaute Nouveau
Re : Macro liée à un onglet renommé

J'ai inséré votre code dans mon module. l'effet produit est identique que le mien à savoir que la shape copiée de la feuille 2 vient en feuille 1 mais lorsque je copie ma feuille 1 qui est mon modèle, ma macro ne fonctionne pas avec ma feuille 3 créée.

Donc pour être plus clair, j'ai une fiche séance (feuil1) qui me sert de modèle pour faire des séances avec des shapes et que je vais dupliquer. Toutes mes shapes sont dans Images (Feuil2). Je veux dupliquer ma feuille 1 et faire en sorte que mes macros fonctionnement avec la nouvelle feuille.

Bien cordialement et encore merci pour votre aide.
 

Dranreb

XLDnaute Barbatruc
Re : Macro liée à un onglet renommé

Je ne vous suis pas très bien.
Vous voulez dire des macros exécutées quand on clique sur les Shape ?
Normalement la propriété OnAction du Shape de départ devrait être copiée avec.
Mais si ce n'est pas le cas essayez d'ajouter ça derrière :
Feuil1.Shapes(Feuil1.Shapes.Count).OnAction = Feuil2.Shapes("GT").OnAction

Vous avez seulement parlé d'une feuille renommée dans Excel, pas d'une feuille créée par copie, c'est tout à fait différent.
Utilisez une variable déclarée FeuilX As Worksheet à la place de Feuil1 et faites un Set FeuilX = Worksheets(Worksheets.Count) si vous avez pris soin de la copier en dernière position.

Maintenant vous pouvez écrire la macro pour qu'elle ramène toujours les Shape dans la feuille active, puisque vous n'êtes plus obligé d'activer la feuille "Images" qui les contient pour aller les y chercher…
 
Dernière édition:

RH_FFF

XLDnaute Nouveau
Re : Macro liée à un onglet renommé

Bonjour Dranreb,

Je n'avais effectivement pas été très clair mais par contre vous m'avez éclairé dans votre dernier message et je vous en remercie profondément.
J'ai donc, grâce à vous, trouvé la solution:

Feuil2.Shapes("GT").Copy
ActiveSheet.Activate
ActiveSheet.[N18].Select
ActiveSheet.Paste

Bien cordialement, ou puis-je dire maintenant...
Amitiés.
 

Dranreb

XLDnaute Barbatruc
Re : Macro liée à un onglet renommé

Oui enfin… Ça ne sert à rien d'activer la feuille active quand même: elle reste la feuille active tant qu'on n'en active pas une autre !
Ne marche-t-elle que pour les Range ou du moins pas pour les Shape, la forme :
Feuil2.Shapes("GT").Copy Destination:=ActiveSheet.[N18] ?
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87