Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…