[VBA] Le même code dans plusieurs feuilles

Bonjour,

je dois faire un changement de couleur automatique en fonction d'une valeur saisie dans la cellule en VBA. Je sais comment faire sur une feuille mais je ne sais pas comment écrire le même code sur beaucoup de feuilles sans avoir à C/C dans chaque feuille associée, comment puis-je faire ?

Merci d'avance !

13 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,

    Si j'ai bien compris, une solution rapide, tu ouvres ta Thiswokbook dans le VBA et tu colles le code dans cette syntaxe
    le fait de basculer sur tes feuilles le code s'active

    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    ' et ici ton code
    ' ou tu fais référence à ta macro précédé de Call comme ci dessous
    Call le nom de ta macro
    End Sub

    A+
    Mike-31

    Je suis responsable de ce que je dis, pas de ce que tu comprends...
    1. Re,

      dans la Thiswokbook, comme cela

      Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
      If Target.Address = "$A$1" Then Target = "Test"
      End Sub

      1. Bonjour, merci pour ta réponse rapide, j'ai trouvé la méthode correspondante, c'est Workbook_SheetChange() car je veux appeler une procédure au changement de valeur d'une cellule. Merci d'avoir confirmé ma piste :)
        1. Je met un lien très explicatif pour les prochains qui viendront sur ce topic en quête d'une réponse : https://www.excel-pratique.com/fr/vba/evenements_classeur.php
          1. Par contre je ne comprends pas, si je modifie une cellule, la cellule A1 n'est-elle pas censée prendre "Test" comme valeur ?

            Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Source As Range)
            Range("A1") = "Test"
            End Sub
            1. Ça ne fait rien :/ Quand je met par exemple dans une feuille spécifique :
              Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
              MsgBox("Test")
              End Sub

              Ça m'affiche bien le message quand je modifie une cellule, mais quand je met ce code dans ThisWorkbook ça marche plus
              1. Re,

                ce que tu as écrit ne veux rien dire, explique exactement ce que tu veux faire
                1. Non c'est bon j'ai réussi à régler le problème merci :) En fait j'avais deux feuilles ThisWorkbook (ThisWorkbook et ThisWorkbook1) je ne sais pas pourquoi et j'avais mis dans la premier. Mais quand j'ai mis dans ThisWorkbook1 ça a marché
                  1. Bah j'ai repris le fichier de quelqu'un et y en avait deux et ils sont tous les deux insupprimables
                    1. Cf. screenshot : http://www.noelshack.com/2017-20-1495131412-sans-titre.png
                      1. Re,

                        oui je vois bien qu'il y en a deux, mais ce n'est pas logique et encore plus bizarre est que celui qui fonctionne est le doublon Thiswokbook(1)
                        pour la part je referais mon dossier à partir d'un nouveau fichier, mais bon cela n'engage que moi et demande un peu de travail
                        1. Je suis juste stagiaire dans l'entreprise mais je dirai qu'il faudra refaire un dossier l'an prochain (mais bon je suis le seul informaticien donc je verrai) ^^