XL 2013 Copie de données d'un fichier excel pour les coller vers un autre fichier en VBA

Ananas94

XLDnaute Junior
Bonjour,

Je souhaite récupérer des données issues d'un autre fichier Excel. Néanmoins, le nom du fichier source en question change régulièrement, de manière assez aléatoire (date qui varie). Le début du nom ne change jamais : il commence toujours par "np". J'ai donc mis un astérisque après pour signifier que le nom change mais rien n'y fait, je reçois toujours un message d'erreur ...
Lorsque je remplace l'astérisque par la date actuelle du fichier, mon code fonctionne. Le problème vient donc bien du nom du fichier.

Auriez-vous une petite idée pour m'aider s'il vous plaît ?

Voici mon code :


VB:
Sub Donnees_avancement()
'Lecture du fichier "np_date" pour la récupération des données :'

    Dim Chemin As String
    Dim Fichier As String
    Dim wb As Workbook
    
    Chemin = "\\Atlas.edf.fr\co\69gly-dpn-unie\GTR.005\11-Activites.011\08-Point\"
    Fichier = "np*.xlsx" [B]<-- L'erreur est ici ![/B]
    
    Application.DisplayAlerts = False 'si le fichier est déjà ouvert
    
    Set wb = Workbooks.Open(Chemin & Fichier)
    
    Sheets("infocoop").Range("H3:H60").Copy
    
    ThisWorkbook.Activate
    ThisWorkbook.Sheets("situ").Range("T4").PasteSpecial Paste:=xlPasteValues
    
    Application.CutCopyMode = False
    wb.Close False
    MsgBox "Données de l'avancement des tranches récupérées !"
    
End Sub

Lorsque j'exécute mon code, le message suivant s'affiche :

1585234280448.png


Débogage : (Le chemin est surligné en jaune, mais en fait c'est le nom du fichier qui pose un problème.

1585234424982.png


Merci beaucoup par avance !!

Anna
 
Solution
Bonjour, essaie ce code pour trouver et ouvrir ton fichier :)

VB:
Sub Donnees_avancement()
'Lecture du fichier "np_date" pour la récupération des données :'

    Dim Chemin As String
    Dim Fichier As String
    Dim wb As Workbook
    
    directory = "\\Atlas.edf.fr\co\69gly-dpn-unie\GTR.005\11-Activites.011\08-Point\"
    file = Dir(directory & "*.xlsx")
    
Do While Len(file) > 0 'le nom de fichier n'est pas vide

    If Left(file, 2) = "np" Then
        Workbooks.OpenText Filename:=directory & file, Origin:=xlWindows, _
        StartRow:=1, DataType:=xlDelimited, Local:=True, Semicolon:=True
        Set wb = ActiveWorkbook
    End If

file = Dir() 'passe au nom de fichier Excel suivant
Loop

shinozak

XLDnaute Occasionnel
Bonjour, essaie ce code pour trouver et ouvrir ton fichier :)

VB:
Sub Donnees_avancement()
'Lecture du fichier "np_date" pour la récupération des données :'

    Dim Chemin As String
    Dim Fichier As String
    Dim wb As Workbook
    
    directory = "\\Atlas.edf.fr\co\69gly-dpn-unie\GTR.005\11-Activites.011\08-Point\"
    file = Dir(directory & "*.xlsx")
    
Do While Len(file) > 0 'le nom de fichier n'est pas vide

    If Left(file, 2) = "np" Then
        Workbooks.OpenText Filename:=directory & file, Origin:=xlWindows, _
        StartRow:=1, DataType:=xlDelimited, Local:=True, Semicolon:=True
        Set wb = ActiveWorkbook
    End If

file = Dir() 'passe au nom de fichier Excel suivant
Loop
 

Ananas94

XLDnaute Junior
Merci beaucoup ça fonctionne!Merci beaucoup shinozak :) vous gérez !
Merci beaucoup à vous Staple également, je viens de voir votre mot sur l'autre fil, malheureusement je ne peux pas leur dire ça ahahah

Merci à tous! ce site est génial ! :) :) :)
Excellente journée !
Anna
 

Discussions similaires

Statistiques des forums

Discussions
315 089
Messages
2 116 098
Membres
112 661
dernier inscrit
ceucri