Macro ne fonctionne pas si autre feuille active

Bonjour à tous,

Le titre n'est pas très explicite, mais c'est simple à comprendre.

Je vous joins mon fichier Excel. Dans celui-ci, j'ai 2 feuilles:

  • "Paramètres" qui contient la liste des jours féries de l'année en cours
  • "Planning" qui contient l'année en cours saisie dans une cellule

Lorsque je lance ma macro en ayant la feuille "Paramètres" active, aucun souci ça fonctionne parfaitement. Par contre, si je lance en ayant la feuille "Planning" active, ça me sort une erreur... J'ai beau retourné le problème dans tous les sens, je ne comprends pas pourquoi

En vous remerciant.

10planningtest.xlsm (20.07 Ko)

Bonjour

Je pense que c'est la page d'exécution qui n'est pas sélectionnée avant la procédure.

Cordia5

Merci pour ton retour.

Il doit quand même bien y avoir un moyen de s'affranchir de la sélection de la bonne feuille à chaque fois, non ? Si on a par exemple une macro qui fait intervenir 15 feuilles d'un même classeur Excel, on va pas à chaque commande rajouter une ligne de code pour sélectionner la bonne feuille, si ?

Bonjour,

Si on tient absolument à utiliser ce genre de méthode, on écrirait :

Sub test()
Dim Ferie As Range
Dim JoursFeries As Range
With Worksheets("Paramètres")
   Set Ferie = .Cells.Find(what:="Date", LookAt:=xlWhole)
   Set JoursFeries = .Range(.Cells(Ferie.Row + 1, Ferie.Column), .Cells(.Cells(Rows.Count, Ferie.Column).End(xlUp).Row, Ferie.Column))
End With
JoursFeries.Select
End Sub

Ceci dit en pratique on n'utilise jamais ce genre de méthode pour une plage fixe :

On la décrit directement dans le Gestionnaire de noms avec

"Se réfère à :"

=Paramètres!$C$3:$C$15

Perdre également cette habitude inutile de mette des lignes et des colonnes toutes aussi inutiles (ColonneA, Ligne1)

A+

Rechercher des sujets similaires à "macro fonctionne pas feuille active"