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 comment ex�cuter un code sur un classeur complet?


Sujet :

Macros et VBA Excel

  1. #1
    Membre � l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 6
    Par d�faut VBA-E comment ex�cuter un code sur un classeur complet?
    Bonjour

    Je dois traiter plusieur fichiers Excel avec des fonctions de recherches de caract�res, de la concat�nation et des calculs. Evidemment chaque classeur contient plusieurs feuilles � traiter. Et mes users ajoutent une feuille chaque mois....
    Donc avec un nom diff�rent.

    Pour �viter de taper 10 000 lignes de codes, je voudrais savoir si il ya un moyen de traiter un classeur en une fois, sans lui sp�cifier le nom des feuilles?

    Ca m'�viterait de faire une fonction qui vient lire le nom de chaque feuille pour d�terminer la derni�re....

    A moins que je puisse uniquement traiter la derni�re feuille en date?
    Mais ca non plus, je sais pas comment on fait.

  2. #2
    Expert confirm� Avatar de illight
    Homme Profil pro
    Analyste d�cisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Analyste d�cisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par d�faut
    tu peux parcourir toutes tes feuilles si tu veux en faisant une boucle, en faisant une sorte de :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    dim i as integer
    dim f as worksheet
    for i = 1 to worksheets.count
    set f = worksheets(i)
    ---code a effectuer sur chaque feuille
    next i
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la r�ponse vous a �t� utile !

  3. #3
    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
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub RelireToutesLesFeuilleDeTousLesClasseurs()
        For Each LeClasseur In Application.Workbooks
            If LCase(LeClasseur.Name) <> "perso.xls" Then
                For Each LaFeuille In Workbooks(NomClasseur).Worksheets
                    MsgBox LaFeuille.Name
                    With Workbooks(LeClasseur.Name).Worksheets(LaFeuille.Name)
                         MsgBox Cells(2, 1).Value
      '***** C'est là que tu mets ton code s'il est le même pour toutes les feuilles ***
                    End With
                Next LaFeuille
            End If
        Next LeClasseur
    End Sub
    Tu dis

    A+


    Profites-en pour ajouter le tag VBA-E et modifier ton ent�te, tous ceux qui posent des questions sont d�butant en quelque chose

  4. #4
    Membre � l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 6
    Par d�faut
    Citation Envoy� par illight
    tu peux parcourir toutes tes feuilles si tu veux en faisant une boucle, en faisant une sorte de :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    dim i as integer
    dim f as worksheet
    for i = 1 to worksheets.count
    set f = worksheets(i)
    ---code a effectuer sur chaque feuille
    next i

    en gros, � chaque tour de boucle, je me sers de f pour me positionner sur la bonne feuille? c'est ca que tu veux dire?

    parce qu'� la rigueur, si je peux directement r�cup�rer la valeur de worksheets.count, mon probl�me est r�gl�.

    par contre, ce que j'ai du mal � comprendre c'est comment je vais pouvoir me servir de cette info....

    ets ce qu'un truc de ce genre la ca peut marcher:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    dim i as integer
    dim f as worksheet
    dim v as string
    
    for i = 1 to worksheets.count
    set f = worksheets(i)
    ---code a effectuer sur chaque feuille
    v= worksheets(f).cells(1,3)
    next i

  5. #5
    Membre � l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 6
    Par d�faut
    Citation Envoy� par ouskel'n'or
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub RelireToutesLesFeuilleDeTousLesClasseurs()
        For Each LeClasseur In Application.Workbooks
            If LCase(LeClasseur.Name) <> "perso.xls" Then
                For Each LaFeuille In Workbooks(NomClasseur).Worksheets
                    MsgBox LaFeuille.Name
                    With Workbooks(LeClasseur.Name).Worksheets(LaFeuille.Name)
                         MsgBox Cells(2, 1).Value
      '***** C'est là que tu mets ton code s'il est le même pour toutes les feuilles ***
                    End With
                Next LaFeuille
            End If
        Next LeClasseur
    End Sub
    Tu dis

    A+

    La j'avoue que j'ai pas tout compris.....
    c'est quoi ce perso.xls que tu compare?
    et les leclasseur, la feuille m'embrouille pas mal....

    dsl

  6. #6
    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
    Illight, relis la question :
    Je dois traiter plusieur fichiers Excel avec des fonctions de recherches de caract�res, de la concat�nation et des calculs. Evidemment chaque classeur contient plusieurs feuilles � traiter

  7. #7
    Membre confirm�
    �tudiant
    Inscrit en
    Juin 2005
    Messages
    121
    D�tails du profil
    Informations personnelles :
    �ge : 39

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 121
    Par d�faut
    djulegnome � �crit :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    dim i as integer
    dim f as worksheet
    dim v as string
     
    for i = 1 to worksheets.count
    set f = worksheets(i)
    ---code a effectuer sur chaque feuille
    v= worksheets(f).cells(1,3)
    next i
    vu que f est d�clar�e comme worksheet, je pense que tu peux faire :

    maintenant je ne sais pas si se que tu as �cris marche

  8. #8
    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
    Le perso.xls, qu'on place dans \Program Files\Microsoft Office\Office\XlOuvrir\ est un fichier masqu� dans lequel chaque utilisateur peut ins�rer des macros lui permettant de personnaliser "son" application Excel.
    Et comme il est masqu�, si tu mets ce code, il est ignor�.
    Tu peux remplacer �a par une gestion d'erreur au cas o� un fichier masqu� serait ouvert, avec on error resume next puis if err = 0 then

    Tu dis

  9. #9
    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
    jimbololo, m�me conseil qu'� illight relis la question :
    Je dois traiter plusieur fichiers Excel avec des fonctions de recherches de caract�res, de la concat�nation et des calculs. Evidemment chaque classeur contient plusieurs feuilles � traiter
    A+

  10. #10
    Membre � l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 6
    Par d�faut
    Citation Envoy� par jimbololo
    vu que f est d�clar�e comme worksheet, je pense que tu peux faire :

    maintenant je ne sais pas si se que tu as �cris marche

    du moment que la variable est d�clar�e correctement ca marche, reste � savoir si en utilisant f comme ca, ca fonctionne....

  11. #11
    Membre confirm�
    �tudiant
    Inscrit en
    Juin 2005
    Messages
    121
    D�tails du profil
    Informations personnelles :
    �ge : 39

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 121
    Par d�faut
    jimbololo, m�me conseil qu'� illight relis la question :
    je reprenais juste le code de djulegnome, mais c'est vrai que j'ais pas trop lu se qu'il voulait vraiment faire

  12. #12
    Membre � l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 6
    Par d�faut
    Citation Envoy� par ouskel'n'or
    Le perso.xls, qu'on place dans \Program Files\Microsoft Office\Office\XlOuvrir\ est un fichier masqu� dans lequel chaque utilisateur peut ins�rer des macros lui permettant de personnaliser "son" application Excel.
    Et comme il est masqu�, si tu mets ce code, il est ignor�.
    Tu peux remplacer �a par une gestion d'erreur au cas o� un fichier masqu� serait ouvert, avec on error resume next puis if err = 0 then

    Tu dis

    je veux pas �tre d�sagr�able mais j'ai toujours pas compris....
    J'ai pas de r�pertoire \Program Files\Microsoft Office\Office\XlOuvrir\
    ca commence mal pour que je vois de quoi tu veux parler...

    en m�me temps que j'�crivais ca, j'ai eu une illumination.
    ca y est j'ai compris ton test de perso.xls!!

    je vais bosser le reste maintenant.

    merki

    Ps: je met pas encore r�solu parce que je suis pas sur...

  13. #13
    Membre � l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 6
    Par d�faut
    c'est bon j'ai tout compris, j'ai test� et tout.
    c'est nikel, merki!

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. comment excuter des codes matlab sur la carte dsp
    Par kadjuv dans le forum MATLAB
    R�ponses: 4
    Dernier message: 20/02/2010, 00h35
  2. R�ponses: 12
    Dernier message: 09/06/2009, 10h26
  3. Comment ex�cuter du code VBA
    Par Alexandre` dans le forum VB.NET
    R�ponses: 12
    Dernier message: 04/12/2007, 14h13
  4. R�ponses: 5
    Dernier message: 08/01/2007, 21h03
  5. R�ponses: 7
    Dernier message: 03/02/2005, 17h20

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