pauline6172
XLDnaute Nouveau
Bonjour à tous !
alors voilà mon problème : je souhaite dans un fichier de synthèse ("Master") récupérer les informations de plusieurs autres fichiers ("filles").
Chaque fichier "fille" a un nombre d'onglets variables, nommés par des chiffres (de 001 à 999).
Le but de ma macro est d'ouvrir un par un les "Filles", de collecter les informations sur chaque onglet et de les rapatrier dans le fichier "Master" sur l'onglet correspondant.
ci dessous le début de ma macro. La feuille Para contient toutes les informations de noms de fichier à ouvrir, de noms de feuilles à chercher et des chemins d'accès (car variables chaque mois).
Sub Opener()
'Definition des variables
FIC = "Master_SYNTH_FRAIS.xlsm"
ChemDir = Range("ChDir").Value
Fille1 = Range("Fille1").Value
Fille2 = Range("Fille2").Value
Fille3 = Range("Fille3").Value
Fille4 = Range("Fille4").Value
Fille5 = Range("Fille5").Value
Fille6 = Range("Fille6").Value
Fille7 = Range("Fille7").Value
Fille8 = Range("Fille8").Value
Fille9 = Range("Fille9").Value
Fille10 = Range("Fille10").Value
Sheets("Para").Activate
Range("I2").Select
Range(Selection, Selection.End(xlDown)).Select
For Each y In Selection
'ouvrir
Workbooks.Open Filename:=ChemDir & Fille & y, UpdateLinks:=False, Notify:=False
'Cherche une feuille
For i = 1 To Sheets.Count
If Sheets(i).Name < "999" Then
Sheets(i).Activate
Section = ActiveSheet.Name
'rechercher la dernière ligne
Range("A65536").End(xlUp).Activate
lig = ActiveCell.Row
'mettre la correspondance compte/Catégorie dans colonne K
Range("K13").Activate
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-10],[Master_SYNTH_FRAIS.xlsm]corr!R1C1:R75C2,2,FALSE)"
ActiveCell.Copy
Range("K14:K" & lig).Select
Selection.PasteSpecial (xlFormulas)
Range("K:K").Select
Selection.Copy
Selection.PasteSpecial (xlValues)
Application.CutCopyMode = False
'retourner au fichier Master
Windows(FIC).Activate
Sheets(Section).Activate
'Faire la somme.si
Range("D10").Select
ActiveCell.FormulaR1C1 = _
'"=SUMIF('[toto.xlsx]303'!C11,RC[-3],'[toto.xlsx]303'!C5)"
Dans mon fichier Master, selon les catégories indiquées, je souhaite faire la somme des valeurs du fichier Fille, grâce à la colonne K que j'ai complété avant. Voir lignes de codes en Bleu.
Mon problème est sur la formule SUMIF : je souhaite remplacer le nom du fichier "toto.xlsx" par ma variable y, et le "303" par ma variable Section.
J'ai beau mettre des synthaxes (en déplaçant les ' et ") comme ' " & y & "' & Section &'!C11, VBA me retourne le message d'erreur : erreur de syntaxe.
Si vous avez une idée, ça serait formidable !
Merci d'avance,
alors voilà mon problème : je souhaite dans un fichier de synthèse ("Master") récupérer les informations de plusieurs autres fichiers ("filles").
Chaque fichier "fille" a un nombre d'onglets variables, nommés par des chiffres (de 001 à 999).
Le but de ma macro est d'ouvrir un par un les "Filles", de collecter les informations sur chaque onglet et de les rapatrier dans le fichier "Master" sur l'onglet correspondant.
ci dessous le début de ma macro. La feuille Para contient toutes les informations de noms de fichier à ouvrir, de noms de feuilles à chercher et des chemins d'accès (car variables chaque mois).
Sub Opener()
'Definition des variables
FIC = "Master_SYNTH_FRAIS.xlsm"
ChemDir = Range("ChDir").Value
Fille1 = Range("Fille1").Value
Fille2 = Range("Fille2").Value
Fille3 = Range("Fille3").Value
Fille4 = Range("Fille4").Value
Fille5 = Range("Fille5").Value
Fille6 = Range("Fille6").Value
Fille7 = Range("Fille7").Value
Fille8 = Range("Fille8").Value
Fille9 = Range("Fille9").Value
Fille10 = Range("Fille10").Value
Sheets("Para").Activate
Range("I2").Select
Range(Selection, Selection.End(xlDown)).Select
For Each y In Selection
'ouvrir
Workbooks.Open Filename:=ChemDir & Fille & y, UpdateLinks:=False, Notify:=False
'Cherche une feuille
For i = 1 To Sheets.Count
If Sheets(i).Name < "999" Then
Sheets(i).Activate
Section = ActiveSheet.Name
'rechercher la dernière ligne
Range("A65536").End(xlUp).Activate
lig = ActiveCell.Row
'mettre la correspondance compte/Catégorie dans colonne K
Range("K13").Activate
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-10],[Master_SYNTH_FRAIS.xlsm]corr!R1C1:R75C2,2,FALSE)"
ActiveCell.Copy
Range("K14:K" & lig).Select
Selection.PasteSpecial (xlFormulas)
Range("K:K").Select
Selection.Copy
Selection.PasteSpecial (xlValues)
Application.CutCopyMode = False
'retourner au fichier Master
Windows(FIC).Activate
Sheets(Section).Activate
'Faire la somme.si
Range("D10").Select
ActiveCell.FormulaR1C1 = _
'"=SUMIF('[toto.xlsx]303'!C11,RC[-3],'[toto.xlsx]303'!C5)"
Dans mon fichier Master, selon les catégories indiquées, je souhaite faire la somme des valeurs du fichier Fille, grâce à la colonne K que j'ai complété avant. Voir lignes de codes en Bleu.
Mon problème est sur la formule SUMIF : je souhaite remplacer le nom du fichier "toto.xlsx" par ma variable y, et le "303" par ma variable Section.
J'ai beau mettre des synthaxes (en déplaçant les ' et ") comme ' " & y & "' & Section &'!C11, VBA me retourne le message d'erreur : erreur de syntaxe.
Si vous avez une idée, ça serait formidable !
Merci d'avance,