Macro qui gère le recalcul selon contenu d'une cellule

Bonjour à tous,

Voilà ma problématique : j'ai un gros fichier en mode calcul manuel.

Lorsque je lance le calcul avec calculate(), ça prend du temps. Ca recalcule inutilement tout le fichier, alors que parfois 1 ou 2 feuillets suffiraient.

Donc je voudrais rédiger une macro qui dit :

"Si la valeur de A1 du feuillet1 = "X", alors calcule les feuillets "feuillet2", "feuillet3", "feuillet4"

Si la valeur de A1 du feuillet1 = "Y", alors calcule les feuillets "feuillet3", "feuillet5", "feuillet6"

etc..."

Au lieu de lancer Calculate(), je lancerai cette macro qui gérera les feuillets à calculer selon le contenu d'une cellule dédiée à cela.

Quelqu'un peut-il me donner un exemple d'une macro rédigée en ce sens?

Je remplacerai les coordonnées des cellules et feuillets pour les adapter à mon fichier.

Merci

Nicole

Bonjour,

Si tu as beaucoup d'onglets / de valeurs de A1 cela risque d'être un peu "pompeux" mais si c'est un nombre limité :

Select case Range("A1")
   Case "X"
      Worksheets("feuillet2").Calculate
      Worksheets("feuillet3").Calculate
      Worksheets("feuillet4").Calculate
   Case "Y"
      Worksheets("feuillet3").Calculate
      Worksheets("feuillet4").Calculate
      Worksheets("feuillet5").Calculate
   Case ....

   Case ....
'etc etc
End Select

Cordialement.

Merci Zirak,

Je vais essayer.

Juste pour être sure : c'est bien une macro éxécutable à créer n'est-ce pas?

ou c'est à placer dans le code du feuillet?

(Moi j'ai besoin d'une macro éxécutable.)

Bonjour,

Oui il faut créer une nouvelle procédure (sub) dans un module et y placer ce bout de code à l'intérieur. Mais c'est également possible de le placer dans le code de la feuille où vous renseignez votre cellule A1.

(D'ailleurs si vous décidez de mettre le code dans un module, il faudra préciser dans le Select Case de quel onglet il faut tester la cellule A1).

Exemple plus "complet" :

Sub recalcul()

Select case Worksheets("votre feuille").Range("A1")
   Case "X"
      Worksheets("feuillet2").Calculate
      Worksheets("feuillet3").Calculate
      Worksheets("feuillet4").Calculate
   Case "Y"
      Worksheets("feuillet3").Calculate
      Worksheets("feuillet4").Calculate
      Worksheets("feuillet5").Calculate
   Case ....
'etc etc
End Select

End Sub

Mettre ce code dans un module, le modifier avec vos informations réelles (concernant les noms de feuilles et les possibles valeurs de A1).

Ensuite, vous pouvez appeler cette macro via un bouton placé sur votre feuille ou en la lançant manuellement depuis le menu des macros.

Cordialement,

Merci Zirak !

Rechercher des sujets similaires à "macro qui gere recalcul contenu"