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 :

Nom fichier dans une cellule [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 441
    Points : 163
    Points
    163
    Par défaut Nom fichier dans une cellule
    Bonjour à tous

    dans une feuille excel en A1 par exemple il toto.xlsx (nom qui peu varier)
    dans ce fichier toto.xlsx il y a une feuille que je souhaite copier dans le fichier actif

    Le problème c'est que je n'arrive pas à affecter à une variable cette valeur du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    fic = sheets("AA").range("A1")
    set fo = workbooks(fic)
    si quelqu'un peut me dépanner
    merci à vous

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    bonjour,

    inspire toi de la



    Comment ouvrir un classeur ?



    n'oublie pas le répertoire

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 441
    Points : 163
    Points
    163
    Par défaut
    j'ai regardé mais mes 2 fichiers sont déjà ouverts.

    pour faire simple le fichier toto.xlsm contient une macro qui me fait choisir un autre fichier lulu.xlsx à ouvrir avec une série de traitement qui lui a en A1 ce fameux toto.xlsm.

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Combien de classeurs concernés au final ?

    dans quel classeur ton code ?

    quel est le code d'ouverture de "lulu.xlsx" ?

    dans quel classeur et quelle feuille ta cellule A1 ?

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 441
    Points : 163
    Points
    163
    Par défaut
    2 classeurs
    toto.xlsm contient le code
    lulu.xlsx est ouvert par le biais d'un getopenfilename
    la cellule A1 sur la feuille Feuil1 de lulu.xlsx

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    et il y as quoi dans cette cellule A1 ?

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 441
    Points : 163
    Points
    163
    Par défaut
    en A1 il y a toto.xlsm

  8. #8
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Je comprends pas ce que tu veux faire ? ta macro est bien dans le fichier Toto.xlsm et c'est ce même fichier que tu veux affecter à ta variable fo ?

    mais pourquoi faire ?????

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 441
    Points : 163
    Points
    163
    Par défaut
    je cherche le moyen d'écrire un bout de code qui me permet de copier un onglet qui est dans le fichier A contenant la macro vers un fichier B (dont le nom peut être variable).
    Après s'il faut affecter 2,3 ou 4 variables ce n'est pas important pour moi

    voilà ce que j'ai réussi à écrire (il y a sans doute mieux et plus propre)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub copie_fiches()
    Dim fo As String, fd As String, fb As Workbook, fe As Workbook
    fo = Sheets("Param").Range("B2")
    Set fb = Workbooks(fo)
     
    fd = Sheets("PARAM").Range("B3")
    Set fe = Workbooks(fd)
        fb.Sheets("FICH_ASS").Copy Before:=fe.Sheets("Param")
     
    End Sub

  10. #10
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    bonjour,

    toujours pas clair ...

    Tu as un fichier qui contient ta macro ... tu ouvre un autre fichier .. et dans ce nouveau fichier tu vas lire le nom du premier fichier ?? c'est vraiment bizarre ton truc ... soit tes explications ne sont pas claire soit c'est vraiment tordu !!


    Tiens pour travailler le classeur contenant ton macro utilise l'objet ThisWorkBook

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 441
    Points : 163
    Points
    163
    Par défaut
    ça fonctionne c'est le principal

    le problème étant que chaque utilisateur est en mesure de renommer le fichier contenant la macro
    que le second fichier à ouvrir est issue de l'explorateur avec donc un nom variable

    le principal pour moi c'est que cela fonctionne

    un jour lorsque mes connaissances vba seront plus complètes je fonctionnerai différemment
    merci pour ton intérêt

  12. #12
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par Pierre67 Voir le message
    ...
    le problème étant que chaque utilisateur est en mesure de renommer le fichier contenant la macro
    que le second fichier à ouvrir est issue de l'explorateur avec donc un nom variable...
    et donc il faudra que ton utilisateur s'il renomme ton fichier macro , pense à modifier le nom de ce fichier macro dans tous tes "2° fichiers"

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 441
    Points : 163
    Points
    163
    Par défaut
    pas du tout puisque ma macro va inscrire le nom du fichier contenant la macro dans la cellule A1 du second fichier que je viens d'ouvrir.
    A aucun moment l'user n'aura à modifier des noms de fichiers

  14. #14
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Et d'où elle le sort ce nom ta macro ? montre ton code d'écriture ?

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 441
    Points : 163
    Points
    163
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    nom_fichier = Application.GetOpenFilename("Fichiers Excel (*.csv), *.csv")
    If nom_fichier <> False Then
        Workbooks.Open Filename:=nom_fichier, local:=True
    End If
    nom_fichier = ActiveWorkbook.Name
    ActiveSheet.Name = "Evenements"
    Dim ws As Worksheet
        For Each ws In Worksheets
            Application.DisplayAlerts = False
            If ws.Name <> "Evenements" Then ws.Delete
        Next
    Application.DisplayAlerts = True
    ActiveWorkbook.Sheets.Add AFTER:=Worksheets(Worksheets.Count)
    ActiveSheet.Name = "TAB_TRANSFER"
    Sheets.Add AFTER:=Sheets(Sheets.Count)
    ActiveSheet.Name = "Param"
    Sheets("Param").Range("A1") = "Chemin d'Accès "    'chemin du fichier actif
    Sheets("Param").Range("A2") = "Nom du fichier macro"          ' nom du fichier d'ouverture
    Sheets("Param").Range("A3") = "Nom du fichier ouvert"              ' nom du fichier ouvert
    Sheets("Param").Range("A4") = "C.T.C.G. Long"
    Sheets("Param").Range("A5") = "C.T.C.G. Court"
    Sheets("Param").Range("A6") = "Date Mini"
    Sheets("Param").Range("A7") = "Date Maxi"
     
    Sheets("Param").Range("B1") = ThisWorkbook.Path & "\"     'chemin du fichier actif
    Sheets("Param").Range("B2") = ThisWorkbook.Name           ' nom du fichier d'ouverture
    Sheets("Param").Range("B3") = nom_fichier               ' nom du fichier ouvert
    Sheets("Param").Range("B4") = ThisWorkbook.Sheets("MENU").Range("C1")
    Sheets("Param").Range("B5") = UCase(Left(Sheets("Param").Range("B4"), 3))

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] afficher le nom du fichier dans une cellule
    Par Philippe76 dans le forum Excel
    Réponses: 4
    Dernier message: 25/04/2019, 10h36
  2. [2005] Récupérer nom fichier dans une colonne
    Par faraway dans le forum SSIS
    Réponses: 4
    Dernier message: 08/11/2016, 05h34
  3. Réponses: 8
    Dernier message: 13/02/2014, 18h51
  4. [XL-2007] renvoi chemin d'un fichier dans une cellule.
    Par Yalou dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/12/2010, 22h27
  5. Récupérer le nom d'un fichier dans une cellule
    Par NicolasJolet dans le forum Excel
    Réponses: 4
    Dernier message: 08/02/2008, 09h47

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