Probleme pour activer une feuille

parrenma

XLDnaute Nouveau
Bonjour à tous,

Je dois créer une macro Vba pour remettre en page un résultat de sondage. Comme je la réutilise souvent je la crée dans le classeur PERSO.XLS

Cette dernière créer une nouvelle feuille:
Code:
Sheets.Add
ActiveSheet.Name = "SondageMisenPage"

Ensuite sur cette nouvelle feuille je fais ma mis en page en mettant des bordures ect... Jusque la tout fonctionne.
A partir de maintenant je veux copier le contenu des cellules de ma feuille initiale dans ma nouvelle feuille. J'ai donc des instruction de ce type qui se suivent:

Code:
For i = 0 To 5
 
Feuil1.Activate ' J'active la feuille initiale la ou il ya mes données "brutes"
buffer = Cells(2 + i, 9).Value ' je stocke la valeur de la cellule qui m'interesse
Sheets("SondageMisenPage").Activate ' J'active la nouvelle feuille creer
Cells(3 + 6 * i, 6).Value = buffer ' je copie mes données au bon endroit

Lors de la compilation j'ai une erreur 9 : l'indice n'appartient pas à la sélection sur la commande Sheets("SondageMisenPage").activate

Ce que je ne comprend pas c'est qu'avant de sauvegarder ma macro dans Personal.xls cela fonctionnait

Je pense que ça doit etre un erreur assez simple car mon code fonctionne lorsque ma macro est crée dans le classeur contenant les donnée brutes alors qu'il plante lorsque je le met dans PERSONAL.xls

Merci d'avance pour votre aide :)
 

parrenma

XLDnaute Nouveau
Re : Probleme pour activer une feuille

Merci pour la reponse,

J'ai regardé sur le forum pour voir comment fonctionne ces deux methodes mais je suis pas sur d'avoir compri
Code:
Feuil1.Activate
 Cells(2 + i, 9).Select
 Selection.Copy
Sheets("SondageMisenPage").Select
Cells(3 + 6 * i, 6).Select
ActiveCell.Paste
Cependant mon probleme est toujours la.

Et j'aimerais comprendre pourquoi lorsque j'enregistre exactement le même code sans le classeur de mes données initiales cela fonctionne et quand je l'enregistre dans Personla.xls il plante ??

Merci ;)
 

parrenma

XLDnaute Nouveau
Re : Probleme pour activer une feuille

Bonjour,

J'avais essayé quelque chose de très similaire et même avec ta notation j’obtiens la même erreur 9. Mais cette fois ci sur la ligne
Code:
Workbooks("results_survey693479-8.xls").Sheets("SondageMisenPage").Activate
J'ai essayé en rentrant le chemin d'acces complet aussi mais ça ne fonctionne pas !
Code:
Workbooks("C:\Documents and Settings\parrenma\Local Settings\Temp\results_survey693479-8.xls").Sheets("SondageMisenPage").Activate

De plus le nom de mon projet pourrait changer et je voudrais que ce que je rentre dans le Workbooks() soit automatiquement le classeur depuis lequel je rentre ma macro ! y'a t il une solution pour faire cela ?

Merci pour les différentes solution proposées même si mon problème n'est pas résolu ça m'oriente :)
 

Pierrot93

XLDnaute Barbatruc
Re : Probleme pour activer une feuille

Bonjour,

De plus le nom de mon projet pourrait changer et je voudrais que ce que je rentre dans le Workbooks() soit automatiquement le classeur depuis lequel je rentre ma macro ! y'a t il une solution pour faire cela ?
pour spécifier le classeur dans lequel se trouve la macro :
Code:
ThisWorkbook.Sheets("NomFeuille").Activate
bonne journée
@+
 

parrenma

XLDnaute Nouveau
Re : Probleme pour activer une feuille

Je viens de tester ta solution mais thisWorkbook.sheets("namesheets").Activate rend actif le classeur Projet.xls et donc je crée ma nouvelle feuille dans ce classeur...
En regardant sur différents forums j'ai vu que activer mes feuilles avant de les utiliser n’étais pas forcement utile . Mon nouveau code ressemble donc plus à ça :

Code:
buffer = Feuil1.Cells(2 + i, 27 + 7 * l).Value
Sheets("SondageMisenPage").Cells(5 + 6 * i, 6).Value = buffer

au lieu de
Feuil1.Activate
Cells(2 + i, 9).Select
Selection.Copy
Sheets("SondageMisenPage").Select
Cells(3 + 6 * i, 6).Select
ActiveCell.Paste

Comme avant cette macro fonctionne si elle est enregistré sur le classeur ou j'ai mes données mais ne fonctionne pas si je l'enregistre sur Projet.xls.

J'ai fait différents tests et j'ai remarque que c'est cette commande qui ne passe pas
Code:
buffer = Feuil1.Cells(2 + i, 27 + 7 * l).Value
car lorsque je lance le debugger buffer m'affiche toujours 'vide' alors qu'il ya bien quelquechose à cette adresse ! Est-ce une erreur de synthaxe ?

Merci pour votre aide !
 

Discussions similaires

Statistiques des forums

Discussions
312 184
Messages
2 086 007
Membres
103 088
dernier inscrit
Psodam