VBA SumIf avec nom d'onglet et nom de fichier en variables

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,
 

ERIC S

XLDnaute Barbatruc
Re : VBA SumIf avec nom d'onglet et nom de fichier en variables

Bonjour

moins facile et moins motivant quand il n'y a pas un bout de fichier .........

la syntaxe suivante doit fonctionner (les enchainements de guillemets sont souvent un pb)

Code:
y = "toto.xlsx"
section = 303

    ActiveCell.FormulaR1C1 = _
        "=SUMIF('[" & y & "]" & section & "'!R3C3:R5C3,RC[-3],'[" & y & "]" & section & "'!R3C4:R5C4)"

a adapter pour les plages du sumif
 

pauline6172

XLDnaute Nouveau
Re : VBA SumIf avec nom d'onglet et nom de fichier en variables

Bonjour Eric,

grand merci pour ta réponse c'est la bonne synthaxe.
Désolée pour le fichier joint mais je n'ai pas réussi à le charger dans ma demande, je ne sais pas pourquoi.

Bonne journée,
 

Discussions similaires

Statistiques des forums

Discussions
312 223
Messages
2 086 407
Membres
103 201
dernier inscrit
centrale vet