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 :

Appliquer à toutes les pages en jaune [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Décembre 2012
    Messages : 129
    Par défaut Appliquer à toutes les pages en jaune
    Bonjour,

    J'ai créé une macro qui fonctionne bien. Mais elle ne traite qu'une page à la fois. J'aimerais qu'elle fasse la même opération à toutes les pages que j'aurais préalablement colorié en jaune.

    Je me suis creusé la tête et je pense savoir à peu près ce qu'il faut faire, à savoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    For Each Worksheet In Workbooks()
    If LA FEUILLE N'EST PAS EN JAUNE then
    PASSER A LA FEUILLE SUIVANTE
    If LA FEUILLE EST EN JAUNE then
    ...
    Blabla la macro déjà créée
    ...
    End if
    Next Worksheet
    Ou bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim i, n as integer
    n = ActiveWorkbook.Worksheets.Count
    For i= 1 To Worksheets.Count
    ActiveWorkbook.Worksheets(i).activate
    If LA FEUILLE N'EST PAS EN JAUNE then
    PASSER A LA FEUILLE SUIVANTE
    If LA FEUILLE EST EN JAUNE then
    ...
    Blabla la macro déjà créée
    ...
    End if
    Next
    C'est la première fois que j'utilise des conditions comme celles-ci. J'ai donc mis en bleu ce que je ne sais pas dire à Excel...

    Quant à faire défiler toutes les feuilles, j'ai cherché sur le forum j'ai trouvé les deux méthodes (for each ou for i = 1 to compte du nombre de feuille). Mais je ne vois pas trop la différence entre les deux...

    Merci à ceux qui auront le courage de m'expliquer cela !

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2010
    Messages : 270
    Par défaut
    C'est les cellules qui sont en jaune ou les onglets en bas du classeur?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub couleur()
    '
    ' couleur Macro
    '
     
    '
        Sheets("Feuil1").Select
        With ActiveWorkbook.Sheets("Feuil1").Tab
            .Color = 65535
            .TintAndShade = 0
        End With
    End Sub
    J'ai obtenu cette macro avec l'enregistreur, en mettant un onglet dans la couleur jaune

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2013
    Messages : 14
    Par défaut
    Salut!

    De mon côté ça marche avec ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    For Each Worksheet In ActiveWorkbook.Worksheets
     
    If Worksheet.Tab.ColorIndex = 6 Then
    ...
    Blabla la macro déjà créée
    ...
    End If
     
    Next Worksheet
    Quant à la différence entre les deux méthodes je ne peux pas trop t'aider.
    J'imagine que For i=1 To... peut t'éviter de passer toutes les feuilles en revues (par exemple commencer uniquement à la cinquième feuille ou sauter une feuille sur deux avec la propriété Step). Mais il doit y avoir des différences plus fondamentales

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Décembre 2012
    Messages : 129
    Par défaut
    Hum pas bête le for each serait donc un cas particulier du for i = bien vu !

    Sinon chez moi ça ne marche pas. Seul la première feuille se voit modifiée.

    J'ai besoin de lui dire d'activer la feuille pour qu'il le prenne en compte. Du coup ça fonctionne avec ce code ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub macro()
    Dim Fjaune As Worksheet
    For Each Fjaune In Worksheets
        Fjaune.Activate
        If Fjaune.Tab.ColorIndex = 6 Then
            ...
            Blabla macro
            ...    
        End If
    Next
    End Sub

    PS : quand je dis feuille jaune effectivement c'est la couleur de l'onglet.

    Merci à vous en tout cas !

  5. #5
    Membre émérite Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Par défaut
    Bonjour

    Dommage, vous n'en etiez pas loin.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    private Sub couleur()
    Dim i As Integer, j As Integer
    i = ActiveWorkbook.Sheets.Count
     For j = 1 To i
      If Sheets(j).Tab.ColorIndex = 6 Then
     
    'traitement a faire sur les feuilles dont les onglets sont jaunes
     
     Else
     
    'si un traitement doit etre fait sur les autres onglet (sinon supprimer le else)
     End If
     Next j
    End Sub

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 29/03/2006, 21h41
  2. La date sur toutes les pages
    Par philippef dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 07/02/2006, 17h44
  3. [W3C] rendre toutes les pages visibles
    Par Invité dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 31/01/2005, 19h07
  4. [CR.NET] affichage de toute les pages de l'état
    Par HULK dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 19/01/2005, 17h34

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