XL 2016 Récupérer le contenu de cellule par VBA

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

telemarrk

XLDnaute Occasionnel
Bonjour,

Je voulais savoir si par le biais d'un code VBA, on peut remplir les cellules d'un tableau en allant chercher les infos sur d'autres fichiers Excel.

Explication :

J'ai un fichier général "TEST" et 4 fichiers : SGCS - SGST - SGINFORMAT - SGCULTURE

Je voudrais mettre dans mon tableau TEST le contenu des cellules L6 et M6 des quatre fichiers.

Je vous joins le fichier test et deux fichiers

Merci
 

Pièces jointes

Dernière édition:
Bonjour telemarrk,
Un essai en PJ avec :
VB:
Sub CopieDonnées()
Application.ScreenUpdating = False
FichierCoutant = ThisWorkbook.Name
For L = 6 To Cells(Cells.Rows.Count, "A").End(xlUp).Row
    Fichier = Cells(L, "A") & ".xlsx"
    CheminFichier = ThisWorkbook.Path & "\" & Fichier
    If Len(Dir(CheminFichier)) > 0 Then
        Workbooks.Open Filename:=CheminFichier
        tablo = [L6:M6]
        Workbooks(Fichier).Close SaveChanges:=True
        Cells(L, "B").Resize(UBound(tablo, 1), UBound(tablo, 2)) = tablo
    Else
        Cells(L, "B") = "": Cells(L, "C") = ""
    End If
Next L
End Sub
En supposant que tous les fichiers sont dans le même dossier.
 

Pièces jointes

Re,
Je viens de faire le test et c'est correct.
Avant modif de SGST:
1696952852771.png

Après modifs :
1696952825192.png

Est ce que les cellules B7:C7 sont vides ?
Car si elles ne le sont pas c'est que la macro ne s'est pas exécutée car si le fichier n'est pas trouvé je vide les cellules.
 
Cela n'aurait pas été plus simple de mettre dès le post #1 les bonnes hypothèses ? Juste pour éviter de refaire le travail deux fois.
Et pourquoi avoir changer les xlsx en xlsm pour les données? Juste pour piéger le contributeur ?

Un nouvel essai en PJ avec :
VB:
Sub Workbook_Open()
Application.ScreenUpdating = False
FichierCoutant = ThisWorkbook.Name
For C = 2 To 6 Step 2
    Fichier = Cells(5, C) & ".xlsm"
    CheminFichier = ThisWorkbook.Path & "\" & Fichier
    If Len(Dir(CheminFichier)) > 0 Then
        Workbooks.Open Filename:=CheminFichier
        tablo = [L6:M9]
        Workbooks(Fichier).Close SaveChanges:=True
        Cells(6, C).Resize(UBound(tablo, 1), UBound(tablo, 2)) = tablo
    Else
        Range(Cells(6, C), Cells(9, C + 1)).ClearContents
    End If
Next C
End Sub
 

Pièces jointes

Bonjour Sylvanu,

Cela fonctionne mais si je dois ajouter de nouveau fichiers Excel dans mon dossier ils ne seront pas dans le fichier TEST. JE serai amener y ajouter d'autres fichiers.

Exemple : j'ai créé le fichier SGCULTURE il ne s'ajoute pas en H et I dans TEST

Merci
 
C'est la 6ème évolution.
Outre le temps passé à faire et refaire, si toutes les données étaient correctes au premier post, cela donnerait plus envie de continuer.
Là, je jette l'éponge.
Bonne journée.

NB: En espérant que ce soit SGCULTURE.xlsm, et non SGCULTURE.xlsx.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour