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 :

Traitement de plusieurs feuilles


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 7
    Par défaut Traitement de plusieurs feuilles
    Bonjour,

    J'ai lu cette discussion.
    Voila, j'ai le même code VBA a créer sur un fichier Excel avec une petite nuance:
    J'ai trois types d'onglet:
    - Les onglets de synthèse globale (à remplir)
    - Les onglets de listing
    - les onglets de "synthèse des listing" (les noms de ces onglets commencent tous par "TCD_*")

    Dans ma synthèse globale, il faut donc que j'insère les données présentes dans le dernier type d'onglet. ("TCD_*")

    Qu'est ce qu'il faut mettre à la place de "Dim sh As Worksheet" et de "For Each sh In ThisWorkbook.Sheets "???

    (j'ai peur que le code viennent chercher des valeurs qui n'ont rien à voir dans les onglets de listing)

    J'espère avoir été claire.
    Merci d'avance

    Muriel

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Par défaut
    Rien à changer du côté des variables et de la boucle For Each. Cependant, pour être certaine de ne prendre en compte que les feuilles dont le nom commence par "TCD_", il faut mettre le traitement dans un bloc If:

    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
    30
    31
    32
    33
    34
    Sub rupture()
        '******************************
        Const PrefixTCD As String = "TCD_"
        '******************************
        Dim i As Long
        Dim Idest As Long
        Dim sh As Worksheet
     
        Idest = 4
     
        For Each sh In ThisWorkbook.Sheets
            '******************************
            If Left(sh, Len(PrefixTCD)) = PrefixTCD Then
            '******************************
                i = 4
     
                Do While sh.Range("K" & i).Value <> ""
     
                    If UCase(sh.Range("K" & i).Value) = "RUPTURE" Then
     
                        Sheets("Cde").Range("A" & Idest).Value = sh.Range("A" & i).Value
                        Sheets("Cde").Range("B" & Idest).Value = sh.Range("B" & i).Value
                        Sheets("Cde").Range("C" & Idest).Value = sh.Range("C" & i).Value
                        Sheets("Cde").Range("D" & Idest).Value = sh.Range("I" & i).Value
                        Idest = Idest + 1
                    End If
     
                    i = i + 1
                Loop
            '******************************
            End If
            '******************************
        Next sh
    End Sub
    Ce qui est nouveau dans le code est mis entre des lignes de commentaire comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '******************************

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 7
    Par défaut Merci!
    Merci beaucoup pour cette réponse.
    ca ne marchait pas tout a fait, j'ai donc modifier legerment la formule Left, et c'est bon.
    Voici ce que j'ai mis:

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Sub Test_N()
     
        Const Prefixe = "TCD_"
     
        Dim i As Integer
        Dim Idest As Integer
        Dim sh As Worksheet
     
        Idest = 7
     
        For Each sh In ThisWorkbook.Sheets
     
            If Left(sh.Name, 4) = Prefixe Then
     
                i = 9
     
                Do While sh.Cells(i, 27).Value <> ""
     
     
                    If sh.Cells(i, 27).Value = Sheets("C°<3h").Cells(4, 12).Value Then
     
                        Sheets("C°<3h").Cells(Idest, 6).Value = sh.Cells(i, 5).Value
                        Sheets("C°<3h").Cells(Idest, 11).Value = sh.Cells(i, 6).Value
                        Sheets("C°<3h").Cells(Idest, 12).Value = sh.Cells(i, 7).Value
                        Sheets("C°<3h").Cells(Idest, 13).Value = sh.Cells(i, 8).Value
                        Sheets("C°<3h").Cells(Idest, 24).Value = sh.Cells(i, 21).Value
                        Sheets("C°<3h").Cells(Idest, 26).Value = sh.Cells(i, 27).Value
                        Idest = Idest + 1
                    End If
     
                    i = i + 1
                Loop
     
            End If
     
        Next sh
     
    End Sub

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

Discussions similaires

  1. [XL-2010] Comment étendre un traitement sur plusieurs feuilles d'un classeur
    Par capi81 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/02/2015, 20h27
  2. [XL-2007] adapter le traitement d'une feuille à plusieurs
    Par grisan29 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/09/2011, 20h45
  3. [CR] export Excel (plusieurs feuilles)
    Par kaiserben dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 21/11/2005, 16h03
  4. [excel] même code sur plusieurs feuilles
    Par sabotage dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/11/2005, 13h23
  5. [XSL]Appliquer plusieurs feuilles XSL successivement
    Par philemon_siclone dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 12/12/2003, 20h11

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