IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Concatenation dans un chemin d'acces.


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 69
    Par défaut Concatenation dans un chemin d'acces.
    Bonjour a tous.

    J'aimerais mettre un lien dynamique dans une cellule vers une valeur comprise dans un autre fichier Excel.
    Le probleme est que ce fichier se trouve dans un repertoire different chaque jour (en gros le nom du dernier repertoire est une date).
    Pour simplifier, supposons que seul le numero du jour soit modifie, aujourd'hui le 20.

    Donc, au lieu d'avoir:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ='C:\Chemin d'acces\Aug 2007\20\[nom du fichier.xls]Nom de la feuille!Nom de la cellule
    J'aurais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ="C:\Chemin d'acces\Aug 2007\"&A1&"\[nom du fichier.xls]Nom de la feuille!Nom de la cellule"
    En supposant que le numero du jour se trouve dans la cellule A1.

    Malheureusement cette derniere syntaxe ne marche pas...
    Quelqun pourrait-il la corriger ?

    Merci.

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 85
    Par défaut
    Salut,

    Tu veux forcément que ce soit automatique ou ça dérangerait pas de choisir le fichier approprié via l'explorateur chaque jour ?

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 69
    Par défaut
    Ben le but de la manoeuvre c'est que ce soit automatique...

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Mars 2007
    Messages : 56
    Par défaut
    essaye comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ="C:\Chemin d'acces\Aug 2007\" & Range("A1") & "\[nom du fichier.xls]Nom de la feuille!Nom de la cellule"

  5. #5
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    En Excel pur; il existe une fonction Concatenate. Celle-ci pourrait t'intéresser.

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 69
    Par défaut
    > asxasx: ca marche pas, c'est de l'Excel "pur".

    > cavo789: ce qui est embetant c'est ca suppose que je stocke le debut et la fin du chemin dans d'autres cellules, et je dois faire cette manoeuvre dans plein de cases.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Mars 2007
    Messages : 56
    Par défaut
    Ben j'ai essayé la syntaxe que tu proposes toi-même et chez moi ça focntionne bien à moins que je n'ai pas compris ce que tu voulais.
    Fichiers attachés Fichiers attachés

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour C.R.E.A.M.

    Si une partie du chemin est le mois en cours et l'année en cours, vous pouvez utiliser les variables :
    mypath = "C:\mon_repertoire\
    datan = Now
    datmois = Format(datan, "mmm")
    datan = Format(datan, "yyyy")


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = mypath & datmois & " " & datan & "\"
    continuer avec la cellule contenant le jour, le nom de fichiers etc...

  9. #9
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 69
    Par défaut
    > asxasx: Ben ouais ca remplace bien le A1 par 20 mais le truc c'est que ca ecrit le chemin d'acces vers la valeur desiree dans la cellule au lieu d'y ecrire la valeur elle-meme...

    > jacques_jean: En fait j'aimerais bien trouver une methode aussi generale que possible car je souhaiterais appliquer cette procedure pour de nombreux chemins d'acces differents.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Il existe une procédure qui peut permettre de passer en revue les répertoires et sous-répertoires d'un lecteur jusqu'à ce que le fichier recherché soit trouvé.

    Il faut bien sûr que ce fichier n'existe qu'une seule fois.

    Mais pour vous est-ce que le lecteur est toujours le même, par exemple C: ou peut-il être également différent ?

  11. #11
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 69
    Par défaut
    Je viens de verifier, en fait le debut du nom (avant le nombre correspondant au jour) est toujours le meme mais la fin du nom differe a chaque fois.

    Mais n'y a-t-il pas plus simple ? Le seul probleme avec la syntaxe actuelle est que le nom du chemin d'acces est écrit dans la cellule au lieu d'etre "compilé" pour afficher la valeur demandée. N'est-ce apas juste un probleme avec l'utilisation des guillemets ou autre ?

  12. #12
    Invité
    Invité(e)
    Par défaut
    Pour que je comprenne bien :

    -le debut du chemin, avant le mois et l'année, est toujours le même ?

    -est-ce que l'affectation du mois et de l'année sous la forme que je vous ai communiquée vous convient ?

    -est-ce en fait l'affectation du jour contenu dans une cellule qui ne fonctionne pas ?

    si c'est ce dernier cas essayez avant d'affecter le chemin d'accès :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    numjour = cells(1, 1)
     
    ou éventuellement :
     
    numjour = Cstr(cells(1, 1))
    vous ajoutez & numjour & dans le chemin à la place de & "A1" &.

    A vérifier : lorsque le jour est < 10 est-ce que le jour est par exemple 08 ou 8 ?

  13. #13
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 69
    Par défaut
    Je ne suis pas sur de comprendre...
    Faut-il forcement utiliser VBA ?

  14. #14
    Invité
    Invité(e)
    Par défaut
    Cette fois c'est moi qui ne comprenait plus car vous êtes sur le Forum "VBA Excel".

    En fait vous avez une formule qui fait référence à une cellule dans une feuille et dans un classeur, celui-ci n'étant pas ouvert ?

    soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ='C:\chemin\mois jour\[Classeur2.xls]Feuil1'!$A$5
    avec cette syntaxe et le sous-répertoire "mois jour" inscrit en clair cela fontionne, mais dès que j'utilise des " et des & pour la concaténation et la cellule A1 au lieu de "mois jour" je n'y parviens pas.

    il suffit peut-être de peu de chose et un spécialiste vous donnera peut-être la solution.
    Dernière modification par Invité ; 22/08/2007 à 02h44. Motif: Ajout des balises codes (sélection du code + #), c'est mieux, NON !

  15. #15
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 69
    Par défaut
    Voila, c'est exactement mon probleme.
    Et je pense egalement que la solution n'est pas compliquée... il faut juste trouver quelqu'un qui la connaisse !

    Desolé pour le trompage de forum

  16. #16
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    J'ai testé ton code en le mettant dans une cellule d'une feuille de calculs et il fonctionne très bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ='D:\xls\ & A1 & \[FichierCSO.xls]FeuilCSO'!Nom
    Dans A1 j'ai le nom du sous-répertoire et "Nom" est le nom de la cellule dans FeuilCSO

  17. #17
    Invité
    Invité(e)
    Par défaut
    Bonsoir Ouskel'n'or,

    Juste pour bien comprendre pour l'avenir :

    Je suis à peu près certain d'avoir testé ce code mais pas avec une cellule nommée.

    Est-ce que cela veut dire qu'il faut absolument nommer la cellule ?

  18. #18
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Hello Jacques-Jean,
    Non, il n'est pas nécessaire de nommer la cellule, l'adresse absolue fonctionne aussi (je n'ai pas testé avec une adresse relative)
    A+

  19. #19
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 69
    Par défaut
    Ben j'ai restesté et toujours pas de miracle !
    La formule pourrait-elle changer entre Excel en francais et Excel en anglais ?

  20. #20
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Citation Envoyé par C.R.E.A.M Voir le message
    La formule pourrait-elle changer entre Excel en francais et Excel en anglais ?
    A priori, je ne vois pas, à par les "," qui remplacent les ";" et tu n'en as pas dans la formule.
    Désolé, ce qui fonctionne chez moi mais ne fonctionne pas chez "les autres", je ne sais pas faire
    Bonne chance avec "tous les autres"

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/04/2013, 23h33
  2. Réponses: 13
    Dernier message: 02/09/2008, 10h46
  3. espace dans le chemin d'accès
    Par alainb dans le forum VBA Access
    Réponses: 4
    Dernier message: 03/12/2007, 18h38
  4. SQLPlus et espace dans un chemin d'accès
    Par jleg dans le forum Sql*Plus
    Réponses: 2
    Dernier message: 22/03/2007, 17h33
  5. Réponses: 1
    Dernier message: 19/05/2006, 19h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo