Pb sélection avec un classeur fermé

Bonjour à tous,

J'ai créé une macro ayant initialement :

  • 1er fichier : comportant la macro de lancement
  • 2e fichier : celui à traiter comportant des formules dans plusieurs onglets.

La macro doit pouvoir :

1) Figer les formules de tous les onglets du 2e fichier et enregistrer sous via un nouveau nom : Fichier_à_éclater

2) Dans ce fichier à éclater, la macro éclate les différents onglets en fonction du périmètre (5 exactement) :

Onglets 1/2/3 : CSP

Onglets 4/5 : ACTHYIN

Lorsqu'un classeur d'un périmètre est créé, il faut le mettre aussi au format pdf.

Pour ce faire :

  • J'indique à la macro - supprime tous les feuillets ne comportant pas le mot "CSP"
  • Lorsque la macro a fait le ménage, elle fait un nouveau enregistrer sous avec le mot : "CSP"
  • Via ce nouveau fichier "SP", elle créait un PDF avec tous les onglets présents.
  • Lorsque la macro a terminé de créer le PDF, elle ouvre à nouveau le fichier : Fichier_à_éclater (comportant tous les périmètres)
et fait à nouveau fichier répondant à la condition : supprime tous les feuillets ne comportant pas le mot "CO"

C'est précisément à ce moment là, où je suis bloqué. Etant donné qu'il y a un premier "Enregistrer sous" du Fichier_à_éclater celui se ferme, j'ai trouvé un moyen de le réouvrir pour à nouveau faire l'éclatement. Problème au niveau de la sélection, la macro se redirige vers le fichier comportant la macro (1er fichier lancement macro) et ne plus faire le ménage pour traiter les autres périmètres.

Voici le code, où cela bug. Je mets également les fichiers à disposition.

Function OpenFileExcel()

Dim chemin As String
Dim appExcel As Excel.Application
Dim wbExcel As Excel.Workbook
Dim wsExcel As Excel.Worksheet
Dim WS_ficheclater As String
Dim WB_ficheclater As Workbooks

Set appExcel = CreateObject("Excel.application")
chemin = ThisWorkbook.Path
Set wbExcel = appExcel.Workbooks.Open(chemin & "\" & NomFicheclater)
Set wsExcel = wbExcel.Worksheets(1)

With appExcel
   ' .Workbooks.Open chemin & "\" & NomFicheclater
    .Visible = True
End With

With wbExcel
    .Workbook.Worksheets(1).Select
End With

'Quitte application Excel pour éviter de l'avoir en arrière plan
'appExcel.Quit

End Function

Merci d'avance pour votre aide !

bonjour

il semble que tu as fait un truc complexe, image de ce qui se faisait sur papier

revois la structure, simplifie (tu dois avoir au grand max 2 onglets de saisie)

ensuite tu fais des TCD pour extraire les données et les visualiser

note : on ne fait pas un TCD par région, mais un TCD qu'on filtre (sur ton Excel 2007 il n'y a pas de segments)

on évite ainsi de multiplier les onglets inutiles et très lents à modifier si besoin.

le tout sans VBA

Bonjour jmd,

Je suis d'accord avec vous, c'est quelque chose que j'ai repris et n'ai aucune marge de manœuvre pour faire autrement.

Merci pour votre avis.

re

alors, refusant de bricoler derrière un truc mal emmanché, je passe volontiers la parole à d'autres forumeurs

il y en a plein ici, et pleins de talent (c'est pas de la brosse à reluire, je le pense vraiment)

bon travail à tous

Rechercher des sujets similaires à "selection classeur ferme"