Activer Une Feuille - Forum Excel-Pratique

ForumsExcel - VBAActiver une feuilleActiver une feuille Le 19/07/2011 à 23:08m@tixMembre fidèleMessages198Inscrit29/06/2011

TELECHARGEMENTS

Plus de 300 applications Excel sont disponibles gratuitement en téléchargement !

  • Budget, gestion de comptes
  • Gestion commerciale, personnel
  • Plannings, calendriers
  • Etc.
Voir les applications ...

Bonsoir,

Je manipule un fichier excel composé de plusieurs feuilles à partir d'un autre fichier excel. Chacune des feuilles représente les mois de l'année, sauf l'une d'entre elles nommée "Total" (de l'année en cours).

Après avoir ouvert le fichier en question, j'ai commencé par sélectionner l'une des feuilles (celle du mois en cours) via ces commandes (mois étant une variable préalablement définie renvoyant le nom du mois en cours):

fic = ActiveWorkbook.Name ActiveWorkbook.Worksheets(mois).Activate feu = ActiveSheet.Name

Jusque là tout va bien, feu = juin.

Suite à cela, j'ai écrit les instructions que je voulais, qui également se sont bien exécutées. Mais après, j'ai voulu sélectionner une autre feuille, à savoir "Total 2011". Et là ça coince, erreur à l'exécution (L'indice n'appartient pas à la sélection) avec les instructions suivantes (annee étant une variable renvoyant l'année en cours, testée dans d'autres cas avec succès):

ActiveWorkbook.Worksheets("Total " & annee).Activate feu = ActiveSheet.Name

Où est l'erreur ?

Merci d'avance !

Le 19/07/2011 à 23:45Banzai64Fanatique d'ExcelMessages16'686Votes1'961Excel2003 FR (learning 2010 - 2013)Inscrit21/11/2010LieuJurançon

Bonsoir

Sans le code pas évident

des idées en vrac

Changes tu de fichier ?

Variable annee bien intialisée ?

Le nom de la page comportent des espaces supplémentaires ?

Fais un pas-à-pas et testes les valeurs

et ...... je ne sais plus

A suivre avec le code (minimum) où le fichier (mieux)

Le 20/07/2011 à 00:07m@tixMembre fidèleMessages198Inscrit29/06/2011

Alors, je ne change pas de fichier, la nouvelle feuille est sur le même fichier.

J'ai mis des espions, et la variable annee prend bien 2011 comme valeur, aucun souci de ce côté là.

J'ai également vérifié les espaces, il y en a un seul, entre "Total" et l'année.

Voici la partie de code intéressante (en faisant quelques tests j'ai l'impression qu'on est plus situé sur le bon classeur au moment de l'appel de la feuille, d'où l'erreur... mais je ne saisis pas pourquoi):

Workbooks.OpenText Filename:=Workbooks(fic).Sheets(feu).Range("A6").Value & "\gestion " & annee & ".xls", Origin:=xlWindows, _ StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _ ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _ , Space:=False, Other:=False fic = ActiveWorkbook.Name ActiveWorkbook.Worksheets(mois).Activate feu = ActiveSheet.Name Workbooks(fic).Sheets(CStr(annee)).Activate nbcol = ActiveSheet.Cells.CurrentRegion.Columns.Count Sheets(CStr(annee)).Cells(1, 1).Resize(1, nbcol).Select 'champ 1 à traiter Set rech = Selection.Find(What:="champ_1", After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False) If Not rech Is Nothing Then Sheets(CStr(annee)).Cells(mois + 1, rech.Column).Value = Workbooks(fic).Sheets(feu).Range("K45").Value End If 'champ 2 à traiter Set rech = Selection.Find(What:="champ_2", After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False) If Not rech Is Nothing Then Sheets(CStr(annee)).Cells(mois + 1, rech.Column).Value = Round(Workbooks(fic).Sheets(feu).Range("L45").Value, 2) End If fic = ActiveWorkbook.Name ActiveWorkbook.Worksheets("Total " & annee).Activate feu = ActiveSheet.Name Workbooks(fic).Close End IfLe 20/07/2011 à 00:59Banzai64Fanatique d'ExcelMessages16'686Votes1'961Excel2003 FR (learning 2010 - 2013)Inscrit21/11/2010LieuJurançon

Bonjour

Bizarre

Sauf erreur de ma part voilà ce que j'en ai déduit

Déjà ta macro est incomplète, donc pas facile de la comprendre

Sinon après l'ouverture "OpenText" tu bascules sur le 2ème fichier

Tu redéfinies tes variables Fic et Feu

Tu traites tes informations : Ce qui m'intrigue la page Sheets(CStr(annee)) est dans quel classeur

ActiveWorkbook ou ThisWorkbook ?

Pourquoi après tu redéfinies tes variables Fic et Feu ?

Pas à ce moment qu'il manques du code ? (Il y a un End if sans son If)

Dans l'état actuel je ne vois pas ce qui cloche (manques trop de renseignements)

A suivre si tu veux

Le 20/07/2011 à 09:53m@tixMembre fidèleMessages198Inscrit29/06/2011

ACCES PREMIUM

Soutenez le site en devenant membre Premium et profitez de plusieurs options exclusives :

  • Navigation sans publicités
  • Option "No Tracking"
  • Option "Mode Incognito"
  • Option "Dark Mode"
Plus d'informations ...

Bonjour Banzai64,

J'ai résolu le problème, mais je voulais t'en informer. En fait l'erreur venait du fait que la feuille n'était pas reconnue car le classeur actif n'était pas le bon. La ligne ci-dessous affectait à fic le classeur sur lequel je travaillais et non le classeur sur lequel j'allais récupérer mes données:

fic = ActiveWorkbook.Name

Désolé...

Rechercher des sujets similaires à "activer feuille"ForumsExcel - VBAActiver une feuille

Tag » Activer Feuille Excel Vba