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 :

Afficher le répertoire dans une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Points : 35
    Points
    35
    Par défaut Afficher le répertoire dans une cellule
    Bonjour,

    Je n'ai pas réussi à trouver un code(ni de topic)pour savoir comment afficher un nom de répertoire dans une cellule

    Merci

    Jeyjey

  2. #2
    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
    Points : 15 543
    Points
    15 543
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(NoLig, NoCol) = NomRep
    NB - Pas de majuscule dans le sujet de discussion (lis les règles du forum, elles t'aideront dans tes recherches)

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Points : 35
    Points
    35
    Par défaut
    Merci pour ta réponse et désolé pour les majuscules, mais le nom de mon répertoire changera souvent

  4. #4
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Ta question n'est pas claire... Quel répertoire? Celui du classeur actif?

    Si oui
    renvoie le chemin du dossier contenant le classeur qui contient le code...

    Donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    range("a1")=thisworkbook.Path
    renvoie le chemin dans la cellule A1.

    Note qu'il est possible de réaliser cela directement en Excel, sans passer par VBA...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =GAUCHE(CELLULE("nomfichier");CHERCHE("[";CELLULE("nomfichier"))-2)
    Ok?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Points : 35
    Points
    35
    Par défaut
    pour résumé j'ai un repertoire A, dedans un fichier xls (contenant mon code) et un sous rep B, moi je voudrais avoir le nom du repertoire dans une des cellule de mon fichier excel
    Et bien sur j'utilise Vba
    Merci

  6. #6
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Tu as un seul sous-répertoire?

  7. #7
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Points : 35
    Points
    35
    Par défaut
    Pour l'instant oui un seul repertoire

  8. #8
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Je ne comprends toujours pas bien ta question. Que souhaites-tu réaliser?

    Si tu n'as qu'un sous-dossier, c'est encore assez simple, mais si tu en as plusieurs, il faudrait que tu détermines ce qui te fait en choisir un plutôt qu'un autre...

    A ce stade, il serait bien que tu réfléchisses calmement au problème et à la façon de l'énoncer... puis que tu reviennes vers nous pour l'exposer clairement.

  9. #9
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Points : 35
    Points
    35
    Par défaut
    Pardon j'avais oublié un morceau...

    j'ai un repertoire A, dedans un fichier xls 'toto' (contenant mon code) et un sous rep B, moi je voudrais avoir le nom du sous repertoire B dans une des cellules (A1 par exemple) de mon fichier excel 'toto'

  10. #10
    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
    Points : 15 543
    Points
    15 543
    Par défaut
    Citation Envoyé par "par toi"
    moi je voudrais avoir le nom du sous repertoire B
    Toujours la même question : As-tu plusieurs sous-répertoires ou un seul ?

  11. #11
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Points : 35
    Points
    35
    Par défaut
    1 seul sous répertoire B, mais le nom ne sera jamais le meme

  12. #12
    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
    Points : 15 543
    Points
    15 543
    Par défaut
    Alors utilise Dir.
    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
    Sub LectureDuRépertoire()
    Dim Chemin, NomRep
        ' Extrait la première entrée.
        Chemin = "D:\xls\"
        NomRep = Dir(Chemin, vbDirectory)
        Do While NomRep <> ""   ' Commence la boucle.
            ' Ignore le répertoire courant et les répertoires "." et ".."
            If NomRep <> "." And NomRep <> ".." Then
                ' vérifie que NomRep est un répertoire.
                If (GetAttr(Chemin & NomRep) And vbDirectory) = vbDirectory Then
                    ' Affiche l'entrée uniquement si c'est un répertoire
                    MsgBox NomRep 'là tu as le nom du répertoire
                End If 
            End If
            NomRep = Dir    ' Extrait l'entrée suivante.
        Loop
    End Sub
    Il y a plus simple avec fso mais c'est dans la FAQ

  13. #13
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    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
    Function NomSousDossierUnique(NomDossier As String) As String
        Dim fs As New Scripting.FileSystemObject
        Dim Dossier As Scripting.Folder
        Dim SousDossier As Scripting.Folder
        Dim sf
        Set Dossier = fs.GetFolder(NomDossier)
        Set sf = Dossier.SubFolders
        For Each SousDossier In sf
            NomSousDossierUnique = SousDossier.Name
            Exit For
        Next
     
        Set fs = Nothing
        Set Dossier = Nothing
        Set SousDossier = Nothing
        Set sf = Nothing
    End Function
    Il y a peut-être plus simple. Il faut avoir coché la référence "Microsoft Scripting Runtime" dans Outils/Références, ou utiliser la liaison tardive, et modifier les premières lignes du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Dim fs As Object
        Dim Dossier As Object
        Dim SousDossier As Object
        Dim sf
     
        Set fs = CreateObject("scripting.filesystemobject")
        Set Dossier = fs.GetFolder(NomDossier)
        ...
    Il suffit d'utiliser cette fonction en passant le chemin du fichier actif
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    range("a1") = NomSousDossierUnique(thisworkbook.path)

  14. #14
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Points : 35
    Points
    35
    Par défaut
    C'est Nickel ça marche du tonerre, Merci mes amis.

  15. #15
    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
    Points : 15 543
    Points
    15 543
    Par défaut
    Correction
    Sans ajouter la référence Microsoft scripting Runtime
    Merci Pierre

    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
    Sub Test()
        Rep = NomRep(ActiveWorkbook.path & "\")
    End sub
     
    Function NomRep(Rep)
        Dim fs, f, f1, fc
        Set fs = CreateObject("Scripting.FileSystemObject")
        Set f = fs.GetFolder(Rep)
        Set fc = f.SubFolders
        For Each f1 In fc
            NomRep = f1.Name
            exit for
        Next
        Set fs = Nothing
        Set fc = Nothing
        Set f = Nothing
    End Function
    Juste pour dire que fs, f, f1, fc peuvent être déclarés en tant que variants

    (Salut Pierre)

  16. #16
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    Bonjur à tous

    formule à mettre dans la cellule où tu desires ton chemin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =GAUCHE(CELLULE("nomfichier");CHERCHE("[";CELLULE("nomfichier"))-2)
    Bien sur, une sauvegarde est necessaire, les classeurs en cours de creation (en memoire), n'ont pas de chemin

    Bonne journée

  17. #17
    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
    Points : 15 543
    Points
    15 543
    Par défaut
    Citation Envoyé par wilfried_42 Voir le message
    formule à mettre dans la cellule où tu desires ton chemin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =GAUCHE(CELLULE("nomfichier");CHERCHE("[";CELLULE("nomfichier"))-2)
    Bonjour Wilfried, regarde ce que Jeyjey1 a mis , c'est pas pareil !

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/01/2010, 09h57
  2. Afficher le titre dans une cellule
    Par Tinien dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 29/10/2008, 12h06
  3. Réponses: 6
    Dernier message: 14/06/2007, 12h13
  4. [SWT] TableViewer Afficher un Composite dans une cellule
    Par ShakaZulu dans le forum SWT/JFace
    Réponses: 3
    Dernier message: 30/08/2006, 18h45
  5. Réponses: 14
    Dernier message: 17/11/2005, 14h36

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