Eviter la répétition d'une macro.

  • Initiateur de la discussion Safety85
  • Date de début
S

Safety85

Guest
Bonjour à tous,

Mon problème est le suivant, j'ai un fichier excel qui à 50 feuilles. Les noms de ces feuilles sont de ce type '01', '01G', '02', '02G' ....'25', '25G'.
Je veux qu'une macro s'exécute à chaque fois que je me trouve sur une feuille avec un G ('01G', '02G', ...'25G').

Merci de me donner l'astuce.

Safety85

NB: Vous pouvez encore noter que je ne suis pas très bon dans visual basic.
 
A

Arnaud

Guest
salut :),

tu peux par exemple faire comme ça : ( a écrire dans le ThisWorkbook )

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

If InStr(1, UCase(ActiveSheet.Name), "G", vbTextCompare) <> 0 Then

'écris ton code ici

End If

End Sub
 
@

@+Thierry

Guest
Bonjour Arnaud

Encore gagné !! lol

Et en prime tu proposes le Ucase qui donc ne fera pas de distinction entre "G" et "g" si Safety en a besoin au cas où !

Par contre si dans ta Function "Instr" tu fixes la Constante "vbTextCompare" alors plus besoin du Ucase car ça fait double emploi.

Bon Aprèm
@+Thierry
 
A

Arnaud

Guest
re,

héhé :) il y a de la bousculade pour réponde :) au moins les gens qui postent ici ne peuvent pas se plaindre de pas avoir de réponse vu qu'ils en ont souvent deux pour le prix d'une.

sinon pour ce qui est de la fonction Instr, et bien en fait je l'ai tjs utilisé comme ça donc j'avais jamais fait gaffe que c'été un parramètre optionel ( et je savais pas non plus qu'il faisai derrière forcement plus la distinction des maj/min).
merci du renseignement ;)
 

Discussions similaires

Réponses
7
Affichages
689

Statistiques des forums

Discussions
314 208
Messages
2 107 290
Membres
109 796
dernier inscrit
aelgar