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

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

  • test.xlsx
    8.2 KB · Affichages: 5
  • sgcs.xlsx
    8.2 KB · Affichages: 6
  • sgst.xlsx
    8.2 KB · Affichages: 5
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
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

  • test.xlsm
    15 KB · Affichages: 2

sylvanu

XLDnaute Barbatruc
Supporter XLD
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.
 

telemarrk

XLDnaute Occasionnel
Ca fonctionne, merci.

j'aurais une autre demande sur le même principe mais en incluant le contenu de plusieurs lignes se trouvant dans la colonne L et M si cela n'est pas trop demandé
 

Pièces jointes

  • test.xlsm
    8.8 KB · Affichages: 2
  • SGCS.xlsm
    8.7 KB · Affichages: 3
  • SGST.xlsm
    8.6 KB · Affichages: 2

sylvanu

XLDnaute Barbatruc
Supporter XLD
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

  • test (V3).xlsm
    14.1 KB · Affichages: 3

telemarrk

XLDnaute Occasionnel
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
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
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

  • test (V5).xlsm
    15.2 KB · Affichages: 6

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 183
dernier inscrit
karelhu35