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 :

Griser certaines cellules suivant critères


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 19
    Par défaut Griser certaines cellules suivant critères
    Bonjour à tous,

    J'aimerai griser certaines cellules suivant certains criteres.
    Par exemple, si sur la feuille "IndAn", j'ai le mot Trimestriel dans la colonne F et la ligne 9, je grise les cellules M9,N9,P9,Q9,S9,T9,V9 et W9.
    Et ainsi de suite pour le mot annuelle, semetrielle.....et pour toute les lignes.

    Je vous joins mon debut de code faux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Worksheet_SelectionChange
    For I = 180 To 8 Step -1
    If .Cells(I, 7) = "Trim*" Then
    For J = 20 To 8 Step -3 then .Cells(i,j).ColorIndex=16
     
    End Sub
    Merci d'avance.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Teste ce qui suit mais attention à l'évennement "Selection_Change" de vérifier si la proc doit se produire tout le temps (à chaque changement de sélection) ou seulement sur une plage donnée !
    Ici la proc sera exécutée à chaque changement :
    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
    39
    40
    41
    42
    43
    44
     
    Private Sub Worksheet_SelectionChange()
     
        Dim Plage As Range
        Dim Cel As Range
        Dim Tbl
        Dim Adr As String
        Dim I As Integer
        Dim J As Integer
        Dim Adresse As String
     
        Tbl = Array("Trim", "Annu", "Seme")
     
        With Worksheets("IndAn")
            Set Plage = .Range(.[A1], [A65536].End(xlUp))
        End With
     
        For J = 0 To UBound(Tbl)
     
            Set Cel = Plage.Find(Tbl(J) & "*", , xlValues)
     
            If Not Cel Is Nothing Then
     
                Adr = Cel.Address
     
                Do
     
                    I = Cel.Row
                    Adresse = "M" & I & ":N" & I & _
                              ",P" & I & ":Q" & I & _
                              ",S" & I & ":T" & I & _
                              ",V" & I & ":W" & I
     
                    Range(Adresse).Interior.ColorIndex = 15
     
                    Set Cel = Plage.FindNext(Cel)
     
                Loop While Adr <> Cel.Address
     
            End If
     
        Next J
     
    End Sub
    Hervé.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 19
    Par défaut
    J'ai modifier l'évennement "Selection_Change" en "CommandButton5_Click()" et j ai créé un bouton mais cela ne marche pas (rien ne se passe)....Je précise que je debute en VBA.
    J'ai mis en page ce que j'aimerai obtenir sur le fichier excel que j'ai joins.
    La selection se fait sur la colonne G et l'application sur la selection de M9 à X171

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonsoir,

    Désolé, je n'ai pas indiqué la bonne plage (colonne A pour mon test au lieu de colonne G :0(( ) donc, je reposte le code :
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    Private Sub Coloriser()
     
        Dim Plage As Range
        Dim Cel As Range
        Dim Tbl
        Dim Adr As String
        Dim I As Integer
        Dim J As Integer
        Dim Adresse As String
     
        Tbl = Array("Trim", "Annu", "Seme")
     
        With Worksheets("IndAn")
            Set Plage = .Range(.[G1], .[G65536].End(xlUp))
        End With
     
        For J = 0 To UBound(Tbl)
     
            Set Cel = Plage.Find(Tbl(J) & "*", , xlValues)
     
            If Not Cel Is Nothing Then
     
                Adr = Cel.Address
     
                Do
     
                    I = Cel.Row
                    Adresse = "M" & I & ":N" & I & _
                              ",P" & I & ":Q" & I & _
                              ",S" & I & ":T" & I & _
                              ",V" & I & ":W" & I
     
                    Range(Adresse).Interior.ColorIndex = 15
     
                    Set Cel = Plage.FindNext(Cel)
     
                Loop While Adr <> Cel.Address
     
            End If
     
        Next J
     
    End Sub
     
     
    Private Sub CommandButton5_Click()
     
        Coloriser
     
    End Sub
    Hervé.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 19
    Par défaut
    Merci Hervé pour ton aide précieuse. J ai adapté ton code et tout fonctionne à merveille. J'aurais pu voir le probleme de plage............

    Encore Merci

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

Discussions similaires

  1. [XL-2010] Additionner des cellules suivant 2 critères
    Par elsabio dans le forum Excel
    Réponses: 2
    Dernier message: 08/01/2013, 22h42
  2. renvoyé adresse cellules suivant un critère
    Par bakman dans le forum Excel
    Réponses: 1
    Dernier message: 03/03/2011, 19h35
  3. [POI]Récupérer valeur cellule suivant format
    Par leminipouce dans le forum Documents
    Réponses: 1
    Dernier message: 27/10/2005, 08h52
  4. [JTable] Changer le style de certaines cellulles
    Par bourinator dans le forum Composants
    Réponses: 4
    Dernier message: 08/10/2005, 14h40
  5. [JTable] Empêcher sélection de certaines cellules
    Par Oliveuh dans le forum Composants
    Réponses: 6
    Dernier message: 28/07/2004, 12h47

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