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 Excel]Masquer lignes en couleur


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 111
    Par défaut [VBA Excel]Masquer lignes en couleur
    Bonjour à tous,

    Ci-dessous ma macro qui ne fonctionne pas vraiment comme je voudrais.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Masquerlignesplanningpourimpression()
    '
    ' Cacher lignes des calculs pour impression planning Macro
    ' Macro enregistrée le 14/01/2008 par macat
    ' Macro dans VBA PERSO.xls module 9
     
        ActiveWindow.Activate
        Range("9:16,22:29,35:42,48:55,61:68,74:81,87:94,100:107,113:120,126:133,139:146,152:159,165:172,178:185,191:198,204:211").Select
        Selection.EntireRow.Hidden = True
        ActiveWindow.SmallScroll Down:=-75
        Range("A3").Select
    End Sub

    1) Pour masquer pas de soucis, le processus est un peu long mais je m’en accommode. Puis j’ai fabriqué un petit bouton et je suis fière d’y être arrivé !!!.
    Je pense que dans cette macro des choses manquent et que d’autres ne sont pas nécessaires. Je n’ai pas la connaissance pour savoir sur l’instant quoi. Par contre lorsque je fais réapparaitre les lignes, les calculs ne se remettent pas en place normalement. Même après avoir demandé à recalculer. Je suis obligée de rentrer dans chaque cellule pour que réapparaisse le calcul demandé. Une horreur !!!

    2) Entre temps mon tableau a grandi en nombre de ligne.
    Donc j’ai plutôt essayé de voir avec une macro qui masque la ligne entière quand sa cellule en colonne A (qui est sans MFC) est de couleur « lavande (color 17)» et/ou aussi de couleur « Rose saumon (color 38)», et à partir de la ligne 4.

    J’ai trouvé sur le net si la cellule a une valeur 0, que j’ai essayé de transformer en tenant compte de la couleur. Je n’ai pas réussi.
    Merci à vous de m’aider à trouver la réponse.

  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
    Par défaut
    Effectivement, puisque tu te trouves sur la feuille active, tu peux limiter ton code à une ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Range("9:16,22:29,35:42,48:55,61:68,74:81,87:94,100:107,113:120, _
               126:133,139:146,152:159,165:172,178:185,191:198,204:211"). _
                EntireRow.Hidden = True
    Pour ton pb de calcul, ton code n'y est pour rien, non plus que le fait d'avoir masqué les lignes. Tout dépend de la façon dont tu modifies tes cellules masquées.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut macat et le forum
    Semble y avoir des petits problèmes de serveur...

    ActiveWindow.Activate il n'y a jamais besoin d'activer l'élément actiif.

    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
    Sub test()
    Dim X As Long
    Rows.Hidden = False
    'affichage de toutes les lignes
    For X = 4 To [A65536].End(xlUp).Row
    'pour x= 4 à dernière ligne non-vide en A
        If Range("A" & X).Interior.ColorIndex = 17 Or _
           Range("A" & X).Interior.ColorIndex = 38 Then _
           Rows(X).Hidden = True
        'si le fond de la cellule Ax = 17 ou
        'si le fond de la cellule Ax = 28 alors
        'masquage ligne x = vrai
    Next X
    'X suivant
    End Sub
    Pas de coloration par MFC, sinon, le fond est différend.
    Je suppose que les valeurs de Parme et Saumon (des couleur de fille ça , je sais plus de qui est le sketch) correspondent à l'index de la couleur (j'ai la flemme de vérifier).

    Pour ton problème de mise à jour :
    essaies sur une autre feuille soit du même soit d'un autre classeur.
    vérife qu'il n'y a pas une macro dont une instruction commence par Application (screenupdating, par exemple.
    le fait d'éditer la cellule pour la mise à jour me fait penser à une cellule de format texte contenant des nombres (ou formule). mais dans ce cas, tu n'aurais pas un résultat, mais la formule. Comme calculate ne le met pas à jour, ça pourrait venir d'une macro function qui ne contiendait pas l'instruction Application.volatil. Sinon, la feuille elle-même peut avoir des problèmes.
    A+

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 111
    Par défaut
    Bonjour à tous,

    Je suis ravie de vos réponses. Cela fait vraiment avancer mon travail. Je garde la macro de Garfael.
    Citation Envoyé par ouskel'n'or
    Tout dépend de la façon dont tu modifies tes cellules masquées.
    je ne sais pas ce que tu veux dire désolée.

    Depuis le début de la conception de ce tableau, entre les recherches fructueuses du net et l’aide apportée par les « grandes têtes bien faites » de dévoloppez.com, je vous dits bien des mercissss, je suis très satisfaite du fonctionnement de ce tableau. Je ne comprends pas tout tout mais j’ai énormément avancé. Il me semble parfais pour mon niveau.

    Je vous le joint en retour certains le reconnaitront, s’il peut servir à d’autre j’en suis ravie.

    Dedans vous verrez je vous ai laissé quelques questions qui me tracassent histoire de peaufiner. C’est promis après je vous embête plus avec ce tableau

    Bonne journée à vous.

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut macat et le forum
    J'ai modifié dans une nouvelle feuille les formules, retouché les macros.
    Comme c'est difficile d'exploiter un planning, sans connaître son utilisation, je ne l'ai pas refait complêtement, mais j'ai retouché :
    B3 => le planning est basé dessus. en changeant la date 1/2/08 par exemple regarde ce qui se passe
    B1 : formule
    B2:AC2, AD2:F2 : formule + MFC
    B3, C4:AC4; AD4, AE4, AF4 : formule + MFC

    Pour les macro, j'ai mis des commentaires
    Il serait préférable (à mon sens) de regrouper les macros sur 2 modules, un pour les functions, un pour les sub
    A+

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

Discussions similaires

  1. Macro Excel: Masquer ligne en fonction
    Par henrynv dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/06/2012, 17h38
  2. [VBA Excel] Listbox, nom des colonnes et couleur des lignes
    Par Tutures dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/03/2008, 16h24
  3. VBA (Excel) Supprimer lignes
    Par m-a-n-u dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/01/2008, 00h36
  4. Réponses: 7
    Dernier message: 19/12/2006, 12h11
  5. [VBA][Excel]Insérer une ligne
    Par loverdose dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/02/2005, 16h27

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