Appeler un fichier à nom variable

Bonjour à tous,

j'ai encore besoin de vos services si vous avez un peu de temps =)

Je possède un fichier avec un nom dans lequel on retrouve le numéro de l'année en cours

Par exemple: "Reunion 2014"

Dans ma programmation je dois faire appel à ce fichier, mais le numéro d'année est une variable

Je possède une cellule dans laquelle l'utilisateur inscrit l'année pour laquelle il lance le programme

Disons la cellule "A1" de la première feuille d'un document appelé "TEST"

soit ma variable:

Annee_actu = Workbooks("TEST").sheets(1).range("A1")

Je souhaite venir chercher une donnée dans mon fichier "Reunion 2014" pour l'intégrer dans mon fichier test

comment puis je appeler mon document "Reunion 2014", en remplaçant l'année par la variable que l'utilisateur entre ?

Un grand merci à tous ceux qui m'accorderont de leur temps =)

Cordialement

Padbol

Bonjour

Ton document (fichier) s'appellera

Annee_actu = Sheets(1).range("A1")
 Fichier = "Reunion " & Annee_actu
' Ensuite la suite de ta macro
' Exemple
WorkBooks.Open Chemin & Fichier

Par "chemin", tu entends l'emplacement du fichier ?

Bonjour

padbol a écrit :

Par "chemin", tu entends l'emplacement du fichier ?

Oui

Mais ce n'est qu'un exemple

Chemin indique ..... le chemin (Path) du répertoire/dossier contenant le fichier (Fichier)

Imaginons maintenant, que l'emplacement on le connait pas

Par contre le document (Fichier) est ouvert

Est il possible de ne pas s'occuper de l'emplacement du fichier puisqu'il est ouvert? tout en prenant en compte son nom variable?

Merci à toi =)

Que les esprits sont tortueux parfois

padbol a écrit :

Imaginons maintenant, que l'emplacement on le connait pas

Par contre le document (Fichier) est ouvert

Comment peux t'on avoir un fichier ouvert si on ne connait pas son chemin ???

Mais si c'est trop simple c'est pas marrant =)

Ce fichier est destiné a plusieurs personnes, et à être déplacé régulièrement

Du coup, moi je ne connaîtrais pas son emplacement mais l'utilisateur oui,

Alors plutôt que d'utiliser le répertoire que je ne connais pas, je lui demanderais juste d'ouvrir le fichier.

Bonjour

Ah mais alors c'est comme ma chienne, elle me pique mes pantoufles et les planque, donc je suis obligé de chercher dans tout l'appartement, et c'est du boulot

Je pense qu'il faut que tu fasses pareil, un exercice qui risque d'être long car un disque dur peut en contenir des fichiers

Je te souhaite bon courage mais moi je passe la main

ARF =S

Et bien merci de ton aide en tout cas =)

Pour les pantoufles le mieux c'est de pas en mettre =)

ou tu mets du poivre dessus ^^

Si ta demande est sérieuse, tu peux utiliser

Msgbox("Le chemin de ce fichier est: " & Thisworkbook.path)

Si tu veux juste complexifier ta demande au fur et à mesure que les gens te répondent juste pour être chiant comme la chienne de Banzai, il a bien raison.

Bonsoir,

Pour tes utilisateurs, tu peux leur offrir la possibilité de naviguer jusqu'à leur répertoire ...

   With Application.FileDialog(msoFileDialogFolderPicker)
        .AllowMultiSelect = False
        If .Show = -1 Then
            Chemin = .SelectedItems(1)
        End If
   End With

Bonsoir,

Oui ma demande est sérieuse

Je complexifie ma demande car la réponse ne correspond pas à ce que je demandais, parce que je n'avais pas précisé que le répertoire variait également. Je ne l'ai pas précisé car je ne savais tout simplement pas qu'une méthode consistait à passer par le répertoire

Sachant que j'appelle déjà des fichiers ouverts juste en utilisant leur noms, je pensais qu'il pourrait exister une méthode similaire pour les fichiers à noms variables

Je te remercie toutefois de ta réponse

cdt

pad

Si tu connais le nom de ton fichier tu peux le chercher. Si tu connais son path tu peux boucler sur les fichiers afin de le trouver...

Donne un exemple précis.. où est le fichier, que connais tu de lui, est il ouvert? Que veux tu en faire?

Bonjour,

Je suis en train de créer un fichier qui automatise des compte rendus

Et pour cela j'ai besoin d'aller chercher différentes informations sur différent fichiers. Jusqu'ici je n'avais pas de problème je demandais juste à l'utilisateur d'ouvrir tout les fichiers dont j'avais besoins (c'est peut être bourrin comme méthode, mais le plus simple que je sache faire). Sauf que pour se repérer dans le temps, ils nomment les fichiers. Par exemple: "Reunion 2014" , pour préciser que le compte rendu sera de 2014. J'ai besoin d’appeler deux fichiers de deux années différentes pour pouvoir comparer leur valeurs.

Chaque personne gère ses fichiers différemment, ce qui fait que je ne sais pas où sera placé mon fichier d'automatisation. Par contre le fichier est ouvert.

Je peux connaitre le nom du fichier, car je demande à l'utilisateur de choisir l'année pour laquelle il lance la macro.

Par exemple il rentre l'année 2014, et avec la variable de l'année, je souhaiterais aller chercher les informations du document du style "Reunion + année" qui est ouvert. L'utilisateur sait qu'il doit ouvrir le document, mais moi je ne sais pas comment faire pour aller chercher des données dans ce document, car le nom varie.

Alors en résumé:

Je ne connais pas son emplacement

Je connais son nom malgré qu'il varie: exemple: "Reunion 2014" ou "Reunion 2009"

J'ai besoin d'appeler des données présentent dans le document

Voila je ne sais pas si je suis très claire =/


Je vais regarder la technique de james =)

Merci à vous

Bonjour,

A mon avis, en combinant les différentes possibilités de Dialog pour tes utilisateurs avec le fait que dès que quelque chose est Active, tu peux le capturer dans une variable ... (fichier, chemin, etc ...) je ne vois pas comment tu ne vas pas y arriver ...

Ou alors ce serait vraiment ... padbol ...

Tu as deux possibilités, l'une c'est de demander à tes utilisateurs de sauvegarder le fichier à un endroit précis.

Une deuxième serait de faire une recherche. Si tu as le nom du fichier mais si tu as plusieurs disques durs dans ton réseau ça risque de prendre du temps

Function vachercherchienne(sPath As String) As String

    Set FSO = CreateObject("Scripting.FileSystemObject")
    Dim myFolder
    Dim mySubFolder
    Dim myFile

    Set myFolder = FSO.GetFolder(sPath)
On Error Resume Next
    For Each mySubFolder In myFolder.SubFolders
        For Each myFile In mySubFolder.Files
            If myFile.Name = "formulaire.xlsm" Then
                Debug.Print myFile.Name & " in " & myFile.Path 'Or do whatever you want with the file
                Exit For
            End If
        Next
        vachercherchienne = myFile.Name & " in " & myFile.Path
    Next

End Function

Sub TestR()
    MsgBox (vachercherchienne("C:\Users\User\"))
End Sub

Ok ok =)

Je pense que le plus simple reste l'enregistrement à un endroit précis

Je vous remercie de votre aide, =)

Bonne continuation à vous

Rechercher des sujets similaires à "appeler fichier nom variable"