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 :

[VBA-E] liste des feuilles


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif
    Avatar de repié
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    335
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 335
    Points : 281
    Points
    281
    Par défaut [VBA-E] liste des feuilles
    Bonjour

    je suis à la recherche d'un code qui me permette d'avoir la liste des feuilles d'un classeur Excel quelconque?

  2. #2
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Un truc dans ce genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub test()
        For i = 1 To ActiveWorkbook.Worksheets().Count
            MsgBox Worksheets(i).Name
        Next i
    End Sub

  3. #3
    Membre actif
    Avatar de repié
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    335
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 335
    Points : 281
    Points
    281
    Par défaut
    ce code est très interréssant mais il ne fonctionne pas

    en fait, je croit que le problème se situe à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For i = 1 To ActiveWorkbook.Worksheets().Count
    mais je n'arrive pas à savoir pourquoi
    le message est
    L'indice n'appartient pas à la selection

  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
    en léve les parenthéses...()

    Version d'excel ?

  5. #5
    Membre actif
    Avatar de repié
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    335
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 335
    Points : 281
    Points
    281
    Par défaut
    petit erratum :

    ce qui ne fonctionne pas, c'est ma petite modif perso :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For i = 1 To Workbooks(File).Worksheets().Count

  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
    il y as quoi dans variable File ?

  7. #7
    Membre actif
    Avatar de repié
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    335
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 335
    Points : 281
    Points
    281
    Par défaut
    voila mon code complet

    le but est de lister les feuilles du classeur désigné par textbox2

    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
    Dim file As String
     
    file = TextBox2.Value
     
    Application.DisplayAlerts = False 'blocage des messages d'erreurs
    'ouverture du fichier
    Workbooks.Open Filename:=file
     
        For i = 1 To Workbooks(File).Worksheets().Count
            MsgBox Worksheets(i).Name
        Next i
     
    'fermeture du fichier
     
        Workbooks(File).Close savechanges:=False

  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
    et il ne marche pas ton code ? tu met bien le nom complet du fichier dans textbox1 ?

  9. #9
    Membre actif
    Avatar de repié
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    335
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 335
    Points : 281
    Points
    281
    Par défaut
    textbox2 est le résultat de ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.GetOpenFilename("Fichers Excel (*.xls),*.xls")
    Je n'ai aucun doute sur lui

    En fait, pour cibler le problème, c'est le compteur qui ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(File).Worksheets().Count

  10. #10
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Non, mais j'insiste sur la question de bbil :
    au moment du plantage, si tu mets la souris sur la variable "File", tu en verras le contenu. Dis nous ce qu'elle contient. Ou au moins, compare ce contenu avec le nom du classeur ouvert (des fois, il n'y a pas le .xls).

  11. #11
    Membre actif
    Avatar de repié
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    335
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 335
    Points : 281
    Points
    281
    Par défaut
    la variable File donne le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    d:\moi\Bureau\Nouveau dossier\monclasseur.xls
    Effectivement,vous me mettez un doute!

    ca devrait peut etre donner :
    pour etre utile?

    si c'est le cas, alors comment je le récupere son nom?

  12. #12
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Il est quand même nettement plus simple d'utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each oSheet In WorkSheets

  13. #13
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    bonsoir à tous

    tu peux essayer cette adaptation


    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
    Dim File As String
    Dim Wb As Workbook
    Dim i As Byte
     
    File = TextBox2.Value
     
    Application.DisplayAlerts = False 'blocage des messages d'erreurs
    'ouverture du fichier
    Set Wb = Workbooks.Open(Filename:=File)
     
    For i = 1 To Wb.Worksheets.Count
    MsgBox Wb.Worksheets(i).Name
    Next i
     
    Wb.Close savechanges:=False


    bon week end
    michel

  14. #14
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Je ne vois pas ce que ça change, AlainTech.
    Le problème, il est sur le classeur, pas sur la façon de parcourir les feuilles. Enlève "Workbooks..." dans le code du départ, et ça marchera aussi, mais s'il a plusieurs classeurs ouverts en même temps...

    Et effectivement, dans File, tu ne dois mettre QUE le nom du classeur, sans le chemin complet.

  15. #15
    Membre actif
    Avatar de repié
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    335
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 335
    Points : 281
    Points
    281
    Par défaut
    ce dernier code fonctionne à merveille!

    merci bueacoup tout le monde!

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

Discussions similaires

  1. [VBA-E] Ordre des feuilles d'un classeur
    Par steps5ive dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/04/2006, 19h11
  2. [VBA-E] Liste des répertoires
    Par linda15975 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/03/2006, 08h23
  3. [VBA-E] Liste des imprimantes installées
    Par CCRNP dans le forum Installation, Déploiement et Sécurité
    Réponses: 3
    Dernier message: 03/03/2006, 12h38
  4. [VBA] [Excel] Selection des feuilles
    Par KOFJCH dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/12/2005, 18h18
  5. Obtenir la liste des feuilles d'un fichier Excel
    Par Jean Bonnisme dans le forum Access
    Réponses: 3
    Dernier message: 15/10/2004, 10h53

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