Message box

sarahbernard

XLDnaute Junior
Bonjour à tous,

Une fois encore je sollicite vos lumières.

J'ai écrit une macro dans un fichier "mensuel". Le but de cette macro est d'écrire les formules dans les cellules, puis copier-coller les valeurs. Ceci afin d'alléger le fichier lors de l'ouverture, l'enregistrement ou l'envoi.
J'ai donc des fichiers "hebdo" qui pointent vers mon fichier "mensuel".

Mon soucis c'est que à chaque fois que je déclenche la macro, ça fait bien le lien vers le fichier "hebdo1.xls" mais pour les autres, j'ai une message box : Les liens vers 'hebdo2.xls' n'ont pas été mis à jour, parce que 'hebdo2.xls' n'a pas été recalculé avant l'enregistrement.

Je vous met une partie de ma macro, sachant que c'est aussi le cas pour "hebdo3.xls", etc...

Code:
Sub Janvier()

'Ici on détermine des noms de raccourcis pour les chemins d'accès au fichiers
'Chemin correspond au chemin d'accès jusqu'au dossier 2012 de l'agence MANPOWER
'Fichier1 correspond au fichier Semaine1.xls,etc...
Dim Chemin As String, Fichier1 As String, Fichier2 As String, Fichier3 As String, Fichier4 As String, Fichier5 As String

'Maintenant on leur attribut une valeur
Chemin = "E:\Intérim heures\Relevé hebd MANPOWER\2012\"
Fichier1 = "Semaine 1.xls"
Fichier2 = "Semaine 2.xls"
Fichier3 = "Semaine 3.xls"
Fichier4 = "Semaine 4.xls"
Fichier5 = "Semaine 5.xls"


'Nous allons nous occuper de la semaine 1
'Nous allons travailler avec 2 plages de cellules différentes pour nos formules
'Nous allons donc leur donner un nom
'Nous allons combiner le chemin d'accès, le fichier excel et la plage de cellule
ThisWorkbook.Names.Add "plage1", _
RefersTo:="='" & Chemin & "[" & Fichier1 & "]Sheet1'!$A$4:$N$3000"

ThisWorkbook.Names.Add "plage1bis", _
RefersTo:="='" & Chemin & "[" & Fichier1 & "]Sheet1'!$A$4:$A$65536"


'Nous allons insérer de façon automatique une formule dans la colonne H des cellules 5 à 553
Worksheets("Janvier").[H5:H553].FormulaLocal = "=si(esterreur(concatener(index(plage1;EQUIV($E5;plage1bis;0)+6;7);index(plage1;EQUIV($E5;plage1bis;0)+6;8);index(plage1;EQUIV($E5;plage1bis;0)+6;9)));"""";concatener(index(plage1;EQUIV($E5;plage1bis;0)+6;7);index(plage1;EQUIV($E5;plage1bis;0)+6;8);index(plage1;EQUIV($E5;plage1bis;0)+6;9)))"

'Nous allons nous occuper de la colonne I
Worksheets("Janvier").[I5:I553].FormulaLocal = "=si(esterreur(si(index(plage1;EQUIV($E5;plage1bis;0)+6;12)=0;"" "";index(plage1;EQUIV($E5;plage1bis;0)+6;12)));"" "";si(index(plage1;EQUIV($E5;plage1bis;0)+6;12)=0;"" "";index(plage1;EQUIV($E5;plage1bis;0)+6;12)))"

'Maintenant la colonne des Jours fériés
Worksheets("Janvier").[J5:J553].FormulaLocal = "=si(esterreur(si(index(plage1;EQUIV($E5;plage1bis;0)+6;10)=0;"" "";index(plage1;EQUIV($E5;plage1bis;0)+6;10)));"" "";si(index(plage1;EQUIV($E5;plage1bis;0)+6;10)=0;"" "";index(plage1;EQUIV($E5;plage1bis;0)+6;10)))"

'Enregistre les modifications du fichier contenant la macro
ThisWorkbook.Save

'On passe à la semaine 2
ThisWorkbook.Names.Add "plage2", _
RefersTo:="='" & Chemin & "[" & Fichier2 & "]Sheet1'!$A$4:$N$3000"

ThisWorkbook.Names.Add "plage2bis", _
RefersTo:="='" & Chemin & "[" & Fichier2 & "]Sheet1'!$A$4:$A$65536"

Worksheets("Janvier").[L5:L553].FormulaLocal = "=si(esterreur(concatener(index(plage2;EQUIV($E5;plage2bis;0)+6;7);index(plage2;EQUIV($E5;plage2bis;0)+6;8);index(plage2;EQUIV($E5;plage2bis;0)+6;9)));"""";concatener(index(plage2;EQUIV($E5;plage2bis;0)+6;7);index(plage2;EQUIV($E5;plage2bis;0)+6;8);index(plage2;EQUIV($E5;plage2bis;0)+6;9)))"

Worksheets("Janvier").[M5:M553].FormulaLocal = "=si(esterreur(si(index(plage2;EQUIV($E5;plage2bis;0)+6;12)=0;"" "";index(plage2;EQUIV($E5;plage2bis;0)+6;12)));"" "";si(index(plage2;EQUIV($E5;plage2bis;0)+6;12)=0;"" "";index(plage2;EQUIV($E5;plage2bis;0)+6;12)))"

Worksheets("Janvier").[N5:N553].FormulaLocal = "=si(esterreur(si(index(plage2;EQUIV($E5;plage2bis;0)+6;10)=0;"" "";index(plage2;EQUIV($E5;plage2bis;0)+6;10)));"" "";si(index(plage2;EQUIV($E5;plage2bis;0)+6;10)=0;"" "";index(plage2;EQUIV($E5;plage2bis;0)+6;10)))"

'Enregistre les modifications du fichier contenant la macro
ThisWorkbook.Save

En vous remerciant pour vos lumières


Sarah
 
D

Denis

Guest
Re : Message box

Bonjour Sarah et le forum,
Voici ton fichier en retour.
Je te laisse regarder, il n'y a pas grand chose de plus, seulement des astuces pour éviter trop de lignes de code.
Notre ancien programme et inclus dans une nouvelle boucle pour les semaines.
Bon courage et à +
Denis
 

Pièces jointes

  • Manpower 2012final.xls
    75.5 KB · Affichages: 38

sarahbernard

XLDnaute Junior
Re : Message box

Salut Denis,

Toutes mes excuses de ne pas avoir donner de nouvelles avant, mais c'était une vraie folie au boulot. C'est pas les vacances pour tout le monde :D
J'ai été très impressionnée par ton travail, voilà ça c'est dit ...

Mais il y a un petit hic. Sur la macro que tu as mise sur l'onglet "Février", les données s'écrivent sur les memes colonnes, donc elles s'écrasent les une sur les autres.
Et comme je l'ai dit sur mon message précédent, il y a certaines semaines où il y a 2 extractions donc ça donne par exemple "Semaine 31" et "Semaine 31 bis".
Est-ce que je peux encore abuser et te demander ton aide ?

Mille mercis par avance

Sarah
 
D

Denis

Guest
Re : Message box

Bonjour Sarah et le forum,
Peux tu mettre en PJ un modèle du classeur récap avec plusieurs semaines enregistrées sur un mois, que je vois ta mise en page finale?
Merci et à+
Denis
 

sarahbernard

XLDnaute Junior
Re : Message box

Re bonjour,


Comme promis voici le fichier que tu as demandé. Je n'ai laissé que les 6 premiers mois ça devrait suffir.

Si tu as besoin des fichiers hedbo pour faire des tests surtout n'hésites pas à me le dire, je les enverrais.

Encore merci beaucoup pour ton aide.

Sarah
 

sarahbernard

XLDnaute Junior
Re : Message box

Bonjour Denis,

Toujours pas de nouvelle de ta part et je commence à être inquiète...
Si tu n'as pas trouver de solution à mon problème ou que tu souhaites laisser tomber je comprendrais, tu m'as déjà beaucoup aidé.
Mais fais un signe pour dire que tout va bien .

A très vite j'espère

Sarah
 

Statistiques des forums

Discussions
312 386
Messages
2 087 849
Membres
103 668
dernier inscrit
Aekhassen