Appel de fichier en fonction du nom

Bonjour à toute et tous

Je souhaiterai savoir si il est possible d'appeler en fonction du début de leurs noms.

Je m'explique, j'ai un fichier principal, nommé outil, qui fait appel à d'autres fichiers.

J'ai d'autre fichier nommés:

00080_aaaa

00080_bbbb

00085_aaaa

00085_cccc

00080_rrrr

00086_rrrr

00084_tttt

etc, et j'aimerai que la macro appelle les fichiers en fonction du début du nom de fichier, c'est a dire:

il appelle le 1er fichier qui commence par 00080, et va extraire des info, et viens insérer une ligne et met les info dans cette ligne

puis fait de même pour le 2nd fichier qui commence par 00080,

jusqu'au dernier, puis il fait de même avec ceux qui par 00084, et ainsi de suite

Merci par avance

PS: je pourrait mettre un fichier en pièce jointe à partir de lundi soir, car je ne possède pas la même version de excel chez moi, que celle de mon travail

Bonsoir et bienvenue

Un exemple de code pour récupérer dans la feuille "Dossiers Regroupes" du classeur ouvert (ledit classeur étant enregistré dans le même dossier que les classeurs devant être récupérés) :

Colonne A : le nom du fichier

Colonne B : la valeur de la cellule C7

Colonne C : la valeur de la cellule D7

Sub Transferer()
Dim dossier As Object, Fichier As Object, Chemin As String, Lg As Integer
Application.ScreenUpdating = False
Application.DisplayAlerts = True

DerLg = Range("A65536").End(xlUp).Row + 1
Range("A2:C" & DerLg).Delete

Chemin = ThisWorkbook.Path
           FName = Dir(Chemin & "\" & "*.xls")
Set dossier = CreateObject("Scripting.FileSystemObject").GetFolder(Chemin)

For Each Fichier In dossier.Files

NomFichier = Fichier.Name
If Left(Fichier.Name, 4) = "0008" Then

Lg = Range("A65536").End(xlUp).Row + 1

Sheets("Dossiers Regroupes").Range("A" & Lg) = NomFichier
Workbooks.Open Filename:=Chemin & "/" & NomFichier

On Error Resume Next

With Workbooks(NomFichier)
.Sheets("Feuil1").Range("C7:D7").Copy ThisWorkbook.Sheets("Dossiers Regroupes").Range("B" & Lg)

.Close
End With
End If
Next

End Sub

Amicalement

Nad

Bonjour.

Tout d'abord, merci de votre réponse.

Malheureusement, je ne comprend pas tout au code, serait-il possible que vous ajoutiez des commentaires pour expliquer le code s'il vous plait?

Par exemple, je ne comprend pas à quoi correspond A65536.

Dans les commandes:

FName = Dir(Chemin & "\" & "*.xls")

Workbooks.Open Filename:=Chemin & "/" & NomFichier

Je dois mettre le chemin, ou le nom fichier?

et où dois être mis le chemin ou le nom ?

Merci par avance

Re

J'aimerai autant commenté le code qui correspondrait exactement à ce que tu veux faire.

Donc, dès que tu le peux, tu joins 2 fichiers 008xxxx et tu indiques ce que tu veux importer.

Amicalement

Nad

Bonjour.

D'accord pour l'exemple

Si le code est le même pour Excel 2003 et Excel 2007, je peux poster un exemple aujourd'hui, sinon je dois attendre lundi.

Merci encore

Bonjour

Que ce soit sur 2003 ou 2007, le code sera le même.

Amicalement

Nad

D'accord, je joint donc les fichiers

Merci par avance

32test.rar (23.22 Ko)

Bonjour

Le fichier avec le code commenté.

42outil.xlsm (21.00 Ko)

Avant de cliquer sur le bouton de la feuille, enregistre le fichier dans le même répertoire que celui de tes fichiers 008xxx

Comme il y a une macro, l'extension est .xlsm - tu peux donc supprimer le fichier outil.xls que tu as.

Amicalement

Nad

Merci beaucoup.

Je ne comprend pas tout, mais je vais essayer de le modifié pour que la macro vienne chercher les fichiers en fonction du nombre qui est dans une colonne.

Deux autres petites questions:

Que représente le 65536 dans les expressions A65536 et C65536?

Quelle est la différence entre un fichier avec macro en extention .xls et un fichier en extention .xlsm?

Merci d'avance

Re

Il s'agit du nombre maxi de lignes sur excel 2003

Range("C65536").End(xlUp).Row

A partir de la dernière ligne, en remontant, donne le numéro de ligne de la 1ère cellule non vide de la colonne C

Quelle est la différence entre un fichier avec macro en extention .xls et un fichier en extention .xlsm?

.xlsm est l'entension des fichiers contenant des macros sous 2007.

Si tu envoies un .xlsm à quelqu'un qui n'a pas 2007, il ne pourra pas se servir des macros. Il faut l'enregistrer en .xls

Nad

Merci pour les éclaircissements.

Je vais essayer les modifications du code sur le fichier que j'utilise au boulot lundi.

Je te dirai lundi soir si ça fonctionne.

Rechercher des sujets similaires à "appel fichier fonction nom"