Copie feuilles par macro et référence à ces feuilles dans fichier récap

sarahbernard

XLDnaute Junior
Bonjour à toutes et à tous,

Je me résouds à demander votre aide car là je ne sais pas vers quelle piste me diriger...

J'ai 12 fichiers excel (1 pour chaque mois), j'ai un fichier récap.

Par une macro, j'ai réussi à copier la première feuille de chaque fichier mois vers le fichier récap.
Mon soucis, c'est que dans mon fichier récap, j'ai un onglet "Coûts" avec des formules qui font référence à ces onglets copiés. Seulement au début de ma macro, je supprime toutes les feuilles mois pour les importer à nouveau (au cas où il y aurait des modifs de données)et du coup ça fait sauter les noms des feuilles dans les formules et j'ai des #REF! à la place.

Je suis pas très claire, mais c'est pas facile d'expliquer !:D
Je vous joints un fichier pour visualiser

NB: je fais référence aux formules du fichier Récap, de l'onglet Coûts et aux cellules B15 & B16
J'ai inclu la macro pour que vous voyez ce qui se passe quand je mets à jour mes valeurs.

En tout cas, merci pour votre aide et votre temps.

Cordialement

Sarah
 

sarahbernard

XLDnaute Junior
Re : Copie feuilles par macro et référence à ces feuilles dans fichier récap

Re coucou,
Vlà la chieuse !!!

Ta solution est vraiment super !!! Je te remercie vraiment beaucoup.
Par contre, si je pouvais abuser, il y a juste un petit soucis.
Quand je lance ta macro, dans mon fichier Récap, les onglets Septembre et Décembre sont OK. Mais pour aout, octobre, novembre et décembre, cela m'a copié le deuxième onglet TC au lieu du premier.
Enfin, sur mon onglet Couts, cela m'a copié l'onglet TC d'un fichier mensuel et à donc supprimer ce que j'avais dessus.

J'ai essayé de trouver où ça bloquait, je continue à chercher....

La suite au prochain épisode...

Quoi qu'il en soit, merci vriament du fond du coeur.
 

CHALET53

XLDnaute Barbatruc
Re : Copie feuilles par macro et référence à ces feuilles dans fichier récap

Faut pas se coucher si tard

tes razmoquettes risquent de te sortir du lit ce matin

Je regarde le problème

J'ai fait une petite modification (comprend pas trop pourquoi ça ne fonctionnait pas)

Je t'explique le déroulement du programme :

Tous les fichiers sont dans un même répertoire
J'ouvre uniquement le fichier Tableau de bord
Je lance le programme qui :
Dans une première boucle, rechercher les fichiers présents dans le répertoire et stocke les noms dans une variable indicée (Nom_fic (nbfic), nbfic variant de 1 à n : normalement 13 pour une année complète)

Ensuite, j'exploite ces fichiers dans une nouvelle boucle (je dispose des noms de fichiers par la variable indicée de 1 à nbfic)
S'il s'agit du fichier Tableau de bord, je passe au suivant
Sinon, je vérifie (malgré tout) qu'il n'est pas déjà ouvert : si pas ouvert, je l'ouvre
Je recherche la feuille avec une boucle : For Each sh in ActiveWorkbook.Sheets
Je cherche la feuille dont le nom se termine par 2 caractères numériques (d'où l'importance de la construction du nom de la feuille)
Ensuite , je récupère la partie alpha du nom de la feuille (qui correspond au mois dans le fichier Tableau de bord)
j'ouvre cette dernière dans le fichier Tableau de bord et remets à blanc la feuille
Je reviens sur la feuille du mois, je copie les cellules, je retourne dans Tableau de bord et je copie en A1
ensuite, je referme le fichier et je passe au suivant

Bon courage

a+
 

Pièces jointes

  • Tableau de bord 2009-2.xls
    135.5 KB · Affichages: 42
  • Tableau de bord 2009-2.xls
    135.5 KB · Affichages: 43
  • Tableau de bord 2009-2.xls
    135.5 KB · Affichages: 44
Dernière édition:

sarahbernard

XLDnaute Junior
Re : Copie feuilles par macro et référence à ces feuilles dans fichier récap [résolu]

Bonjour,

Pour mes razmoquettes, comme je les mets sur un cintre le soir, je suis tranquille !!! :p
Par contre, c'est mon patron qui veut que je vienne travailler, lui j'ai pas encore réussi à le mettre sur un cintre ...:eek:

Pour le fichier, c'est génial, plus de problème sur ma feuille coûts. Mais j'avais un petit soucis avec les onglets mois. Seul la feuille juin me donnait le bon onglet du fichier mensuel. Alors j'ai ouvert les fichiers mensuels et me suis aperçue que seul le fichier xxxxx 06.2009.xls avait l'onglet Juin 2009 active à l'ouverture. Pour les autres fichiers, c'était l'onglet TC.
Alors, j'ai regarder dans ta macro, et je me suis permise de rajouter une petite ligne.

Code:
Windows(nm).Activate
Sheets(nmfeuille).Activate
Cells.ClearContents
Windows(fg).Activate
Worksheets(1).Activate
Cells.Copy
Windows(nm).Activate
Range("A1").Select
ActiveSheet.Paste
'Sheets("Sheet1").Activate

J'ai rajouté
Code:
Worksheets(1).Activate

Après un test, ça marche super !!!!
Je suis MEGA HYPER SUPER contente....
Un énorme merci pour ton aide

Bonne journée

Sarah
 

sarahbernard

XLDnaute Junior
Re : Copie feuilles par macro et référence à ces feuilles dans fichier récap

Je me permet de te relancer, car ce soir j'ai voulu faire une démo du super à mon mari.
Et pis quand j'ai copié - collé le fichier récap dans le dossier 2010 (les autres c'est pareil d'ailleurs), et ben la macro n'a pas voulu se lancer !!!!
Est-ce que tu aurais une idée du pourquoi ????

Merci par avance
 

sarahbernard

XLDnaute Junior
Re : Copie feuilles par macro et référence à ces feuilles dans fichier récap

Comme tu me l'as demandé par MP, voici le fichier 2011.

J'ai re-testé quand même le fichier que tu m'avais envoyé.
Et je suis de plus en plus perplexe. Au boulot, on tourne sous office 2002 et la macro se lance.
Par contre, à la maison, je suis sous office 2007, et j'ai remarqué que la macro se lançait mais elle bloquait à un niveau :
Code:
For x = 1 To nbfic
fg = Nom_fic(x)
If fg = nm Then GoTo fin
Dim cpt As Integer
On Error Resume Next

Sur la ligne If fg = nm, quand je suis en mode débogage, il affiche comme info fg="Tableau de bord 2011.xls" , donc il applique Then Go To fin; et ça s'arrête. C'est pour ça qu'hier à 19h, je pensais que la macro ne se lançait pas.

Et puis, je me suis aperçue que l'onglet Juin 20XX dans le fichier mensuel, était pas forcement la première feuille du fichier. J'ai donc retirer la ligne de code que j'avais rajouté hier.
Je cherche donc un moyen de lui dire de me sélectionner l'onglet qui a pour valeur "xxx 2009", après la ligne "Windows(fg).Activate".

Je te remercie encore du temps que tu m'accordes

Sarah
 

Pièces jointes

  • 2011.zip
    228.3 KB · Affichages: 32
  • 2011.zip
    228.3 KB · Affichages: 30
  • 2011.zip
    228.3 KB · Affichages: 29

CHALET53

XLDnaute Barbatruc
Re : Copie feuilles par macro et référence à ces feuilles dans fichier récap

Re,

Je m'absente ce matin
Je m'y remets après 14 h

toutefois par "xxx 2009, tu entends le mois en lettres suivi de l'année
C'est pour cela que je testais la numéricité des deux derniers caractères de la feuille partant du principe qu'aucune autre feuille ne se terminait par deux chiffres
a+
 

sarahbernard

XLDnaute Junior
Re : Copie feuilles par macro et référence à ces feuilles dans fichier récap

Bon, après la ligne "Windows(fg).Activate" qui se trouve quasiment à la fin, j'ai rajouté " Sheets("TC").Visible=False"; et ça a l'air de fonctionner.
Soucis résolu.
Reste plus que le mystère entre excel versions 2002 et 2007.
 

sarahbernard

XLDnaute Junior
Re : Copie feuilles par macro et référence à ces feuilles dans fichier récap

Bon alors j'avance, apparemment c'est pas une question de version 2002 ou 2007.

J'ai découvert que si j'exécute le fichier directement sur l'ordinateur tout fonctionne bien.
Par contre, si je l'exécute depuis ma clé USB, la macro ne va pas jusqu'au bout.

Je continue donc à chercher pourquoi, mais je pense avoir identifier le vrai problème.
 

CHALET53

XLDnaute Barbatruc
Re : Copie feuilles par macro et référence à ces feuilles dans fichier récap

Re,

Quelques anomalies à rectifier dans les bouts de programme mentionnés ci-dessous

A la fin de cette procédure, remonter l'étiquette fin : comme ici devant le Next (ce qui explique ton post 23)

fin:
Next
'Stop
Windows(nm).Activate
Sheets("Coûts").Activate
ActiveWorkbook.Save


Application.DisplayAlerts = True


End Sub


Dans la séquence suivante du programme : ajouter les lignes en gras

Windows(fg).Activate
For Each sh In ActiveWorkbook.Sheets
feuil = sh.Name
f = Right(sh.Name, 2)
If Not IsNumeric(f) Then GoTo lasuite
If Not IsNumeric(Val(f)) Then GoTo lasuite

tbl = Split(sh.Name, " ")
nmfeuille = tbl(0)
Sheets(feuil).Activate
lasuite:
Next
 

Pièces jointes

  • Tableau de bord 2011.xls
    144.5 KB · Affichages: 48

sarahbernard

XLDnaute Junior
Re : Copie feuilles par macro et référence à ces feuilles dans fichier récap

Génial ça fonctionne sur l'ordinateur et sur ma clé USB et dans les différents dossiers.

Je vais tester à la maison avec la version 2007, et je dirais quoi après.

En tout cas, merci, parce que ça m'a rendue chèvre hier soir !!!!:p
 

CHALET53

XLDnaute Barbatruc
Re : Copie feuilles par macro et référence à ces feuilles dans fichier récap

Ne sois pas trop sévère avec toi : tu me sembles pas trop mal maîtriser VBA

Pour ton info : je travaille sous excel 2007
J'ai également un micro en 97/2003 : j'ai testé et ça marche aussi
Tu vas pouvoir épater ton mari ce soir
Quand à moi, je pourrai retourner faire du ski demain l'esprit tranquille : elle est pas belle la vie!!!!!
Semaine prochaine, les Parisiens sont en vacances : sans doute moins de ski (on s'occupera de nos 2 petites filles : ski pour la plus grande)
Si souci, n'hésite pas

a+
 

sarahbernard

XLDnaute Junior
Re : Copie feuilles par macro et référence à ces feuilles dans fichier récap

C'est fait, j'ai épaté mon mari !!!

encore merci du fond du coeur. Et demain, quand tu skieras en famille, descends une piste pour moi car ça fait super longtemps que j'ai pas skié.
Nous, ça sera retour chez nous en Normandie. Et la vache fait meuh, et le poussin piou ....
 

Discussions similaires

Réponses
8
Affichages
402

Statistiques des forums

Discussions
312 330
Messages
2 087 335
Membres
103 521
dernier inscrit
Excellover 21