Changement de nom de feuille dans ma macro

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

Capine

XLDnaute Nouveau
Bonjour à tous, un de mes fichier excel contient cette macro:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Sh As Worksheet
Set Sh = Worksheets("Estimé 1")
If Target.Column <> 1 Then Exit Sub
On Error GoTo Saut
If Target = "" Then Exit Sub
Dim Z&
Z = Target.Row
Sh.Cells(Z, 52).FormulaR1C1 = "=CONCATENATE(RC[-51],'Conditions générales'!R10C16)"
Sh.Cells(Z, 2).FormulaR1C1 = "=iferror(VLOOKUP(RC[50],Tableau1,4,false),""sous-traitant"")"
Sh.Cells(Z, 8).FormulaR1C1 = "=iferror(VLOOKUP(RC[44],Tableau1,11,false),0)"
Saut:
End Sub

Le feuille dans laquelle la macro s'exécute se nomme par défaut "estimé 1" tel que montré dans la troisième ligne de la macro. Mais voilà que pour les besoins de mon travail, je dois souvent changer le nom de cette feuille, Y a-t-il moyen que la macro change automatiquement le nom de la feuille sans que j'aille toutes les fois changer le nom dans la macro.

Merci beaucoup de votre aide.

claude T
 
Re : Changement de nom de feuille dans ma macro

Bonjour,

peut être utiliser le "codename" de la feuille, visible dans le projet vba :
Code:
Set Sh = Feuil1

ou bien tout simplement "me", si c'est la feuille dans lequel est exécuté le code... :
Code:
Set Sh = me

à noter dans ce cas, point besoin de variable "sh", remplace par "me" partout dans ton code...

bon après midi
@+

Edition : bonjour Jean-Marcel🙂
 
Re : Changement de nom de feuille dans ma macro

Bonsoir.
Supprimez cette instruction ainsi que la déclaration de sh et utilisez à la place le mot clé Me.

Edit. Bonjour Pierrot93. Même réflexe en plus rapide. Ah oui, 20000 quand même… Félicitations !
 
Dernière édition:
Re : Changement de nom de feuille dans ma macro

Bonjour à tous,

S'il s'agit bien d'entrer les 3 formules dans la feuille où se trouve la macro, il suffit d'écrire
Cells(Z, 52).FormulaR1C1 = ...

Pas besoin de Sh, ActiveSheet ou Me devant Cells...

A+
 
Re : Changement de nom de feuille dans ma macro

C'est vrai que contrairement à ce qui se passe dans un module ordinaire, les méthodes Cells et Range employées dans un module de feuille sont celles de l'objet Worksheet et non celles de l'objet Application. Mais ça ne mange pas de pain de préciser Me. devant, et pour ma part je préfère dire à VBA de quel objet je veux qu'il emploie ces méthodes, car je considère que ce n'est pas à lui de décider.
 
Re : Changement de nom de feuille dans ma macro

Re Dranreb,

Ce serait un peu laborieux s'il fallait préciser la feuille à chaque fois.

La règle en VBA est simple quand on ne précise pas la feuille :

- dans un module standard : c'est la feuille active

- dans le code d'une feuille : c'est la feuille elle-même, quelle que soit la feuille active.

Autant utiliser cette règle simple.

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

Discussions similaires

Réponses
4
Affichages
243
Réponses
9
Affichages
580
Retour