fi0011
Messages postés2Date d'inscriptionlundi 9 mai 2005StatutMembreDernière intervention17 septembre 2006
-
16 sept. 2006 à 22:42
FMatrix07
Messages postés233Date d'inscriptionmercredi 26 février 2003StatutMembreDernière intervention21 février 2009
-
17 sept. 2006 à 15:47
Bonjour,
Ce site m'a été très utile depuis quelques jours, depuis que je
travaille sur un fichier excel. Pourtant je suis sur un probème que je
n'arrive pas à resoudre:
Je veux récuperer la
liste des feuilles sur une des feuille dont le nom est fixe. Le nombre
de feuilles, et les noms des autres feuilles varient ( fichier destiné
à des utilisateurs).
Piste 1 : faire une macro de mise à jour de la liste muni de la commande application.volatile.
Seul solution trouvé pour l'instant mais le fichier est lourd (beaucoup
de calcul qui dépendent des noms de feuilles, et une dizaine de macros)
et cette solution peu élégante ralenti l'utilisation du fichier.
Piste 2 : utiliser un evenement worksheet_change()
mais cette procedure demande une plage de donnée. j'ai donc utiliser la
formule magique qui permet d'avoir le nom de la feuille dans une
cellule :STXT(CELLULE("Filename";A1);TROUVE("]";CELLULE("Filename" )) + 1;31) mais worksheet_change() n'est pas actif sur le changement de la valeur de la cellule par l'intermediaire d'une formule.
Piste 3 : mettre des formules dans les cases pour recuperer le
nom de la feuille sur chaque feuille mais pour cela on a besoin ... du
nom de la feuille : ='Tableau de donnée'!D19Quel est la syntaxe pour utiliser plutot le numéro de la feuille ou le nom interne ( feuilx ) ?
Merci d'avance pour votre participation à la résolution de mon problème.
Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 20097 16 sept. 2006 à 22:49
Salut,
Heu je comprends qu'à moitié tes pistes, mais pourquoi pas tout simplement :
dim i as integer
For i=0 to thisWorkbook.Worksheets.Count - 1
'Et ici tu énumère tes feuilles avec thisWorkbook.Worksheets(i)
'Tu peux récupérer leur nom avec thisWorkbook.Worksheets(i).Name
'Par exemple
thisWorkbook.Worksheet("FeuilleNomFixe").Cells(1, i).Formula = thisWorkbook.Worksheets(i).Name
Next
fi0011
Messages postés2Date d'inscriptionlundi 9 mai 2005StatutMembreDernière intervention17 septembre 2006 17 sept. 2006 à 01:18
bon, je n'ais pas été assez explicite. En fait cette macro je l'ais faite depuis le debut mais je veux savoir comment faire pour qu'elle se lance automatiquement à chaque fois qu'un onglet est modifié.