Changement de nom de feuille dans ma macro

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
 

Pierrot93

XLDnaute Barbatruc
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:)
 

Dranreb

XLDnaute Barbatruc
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:

job75

XLDnaute Barbatruc
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+
 

Dranreb

XLDnaute Barbatruc
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.
 

job75

XLDnaute Barbatruc
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+
 

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 851
Membres
103 974
dernier inscrit
chmikha