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...
En vous remerciant pour vos lumières
Sarah
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