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 :

Mettre une ligne en couleur [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre très actif
    Homme Profil pro
    Moi, je ne fais que passer, excusez le dérangement
    Inscrit en
    Mars 2013
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Moi, je ne fais que passer, excusez le dérangement

    Informations forums :
    Inscription : Mars 2013
    Messages : 660
    Par défaut Mettre une ligne en couleur
    Bonjour à tous,
    Encore moi un jour de WE prolongé...mais quand on aime on ne compte pas!
    J'ai un grand tableau de coordonnées diverses et ce sur plusieurs onglets
    J'ai récupéré cette macro sur ce forum il me semble et je l'ai adaptée en y ajoutant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.Interior.ColorIndex = 8
    En recherchant soit par le nom (colonne A)ou le prénom (colonne B) la cellule se met en couleur.
    Je voudrais si c'est possible de faire mettre la ligne en couleur.
    Mes lignes vont de la colonne A à colonne G.
    Macro totale ci-dessous
    Merci pour vos éventuelles réponses
    Bon dimanche à tous
    Cordialement
    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
    Sub RechercherNom()
    Dim Sh As Worksheet
    Dim c As Range
    Dim Nom As String, firstAddress As String
     
    Nom = InputBox("Nom à chercher dans toutes les feuilles", "Rechercher")
    If Nom <> "" Then
        For Each Sh In ThisWorkbook.Worksheets
            Set c = Sh.Cells.Find(Nom, LookIn:=xlValues, LookAt:=xlPart)  'xlpart = partie du nom et xlwhole = casse exacte
            If Not c Is Nothing Then
                Sh.Activate
                c.Select
                firstAddress = c.Address
                Do
                 Selection.Interior.ColorIndex = 8
                strreponse = MsgBox(Sh.Name & "!" & c.Address & vbCrLf & _
                     "Oui pour continuer la recherche" & vbLf & _
                     "Non pour sortir", vbYesNo)
                     If strreponse = vbNo Then Exit Sub
                    Set c = Sh.Cells.FindNext(c)
                    c.Select
                Loop While Not c Is Nothing And c.Address <> firstAddress
                Set c = Nothing
            End If
        Next Sh
    End If
    End Sub

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    bonjour,

    tu peu supprimer tes "activate" "select" et "selection" et remplacer ta ligne de code par :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c.EntireRow.Interior.color = 8

  3. #3
    Membre très actif
    Homme Profil pro
    Moi, je ne fais que passer, excusez le dérangement
    Inscrit en
    Mars 2013
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Moi, je ne fais que passer, excusez le dérangement

    Informations forums :
    Inscription : Mars 2013
    Messages : 660
    Par défaut
    Bonjour bbil,
    Ok mais ma ligne devient noire donc illisible et à l'infini.
    Merci pour ta réponse.
    bon WE.

    Ps: Toutes mes excuses pour l'intitulé. Mal formulé

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 114
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Le code couleur RGB 8 est la couleur noire donc c'est normal que ta ligne soit noire.
    Que toute la ligne soit noire est normal aussi puisque tu utilises la propriété EntireRow de l'objet Range qui comme son nom l'indique est la ligne entière.
    Pour le choix des couleurs, tu peux aussi utiliser une constante couleur telle que vbRed, vbYellow, vbBlue, etc...
    Voici deux lignes de codes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A9").EntireRow.Interior.Color = 8
    Cette instruction va mettre la couleur intérieure des cellules de toute la ligne 9 de la feuille active en noir.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A6").Resize(, 6).Interior.Color = vbYellow
    Cette instruction va mettre la couleur intérieure des cellules de la ligne 6 pour les colonnes A:F en jaune (de la feuille active)
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre très actif
    Homme Profil pro
    Moi, je ne fais que passer, excusez le dérangement
    Inscrit en
    Mars 2013
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Moi, je ne fais que passer, excusez le dérangement

    Informations forums :
    Inscription : Mars 2013
    Messages : 660
    Par défaut
    Bonjour Philippe Tulliez,
    J'ai essayé les 2 mais ça donne des cellules blanches alors qu'avec mon code "original" = cellule turquoise (code 8)
    Bon je vais essayer de gratter encore un peu.
    Merci et bon dimanche
    Cordialement

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 114
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    J'ai essayé les 2 mais ça donne des cellules blanches alors qu'avec mon code "original" = cellule turquoise (code 8)
    La différence vient du fait que tu utilises la propriété ColorIndex alors que BBIL et moi utilisons la propriété Color.
    ColorIndex utilise la palette de couleur alors que Color utilise un code RGB.
    Pour bien comprendre, je te suggère la lecture de ce tutoriel Les couleurs en VBA Excel: Les équivalences Hex-Long-RGB
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    Membre très actif
    Homme Profil pro
    Moi, je ne fais que passer, excusez le dérangement
    Inscrit en
    Mars 2013
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Moi, je ne fais que passer, excusez le dérangement

    Informations forums :
    Inscription : Mars 2013
    Messages : 660
    Par défaut
    Voilà ce que j'ait fait et ça fonctionne.
    Merci à vous tous et bon WE prolongé.
    Très cordialement

    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
    Sub RechercherNom()
    Dim Sh As Worksheet
    Dim c As Range
    Dim Nom As String, firstAddress As String
     
    Nom = InputBox("Nom à chercher dans toutes les feuilles", "Rechercher")
    If Nom <> "" Then
        For Each Sh In ThisWorkbook.Worksheets
          Sh.Range("A3:G" & Sh.Range("A" & Rows.Count).End(xlUp).Row).Interior.ColorIndex = xlNone
            Set c = Sh.Columns("A:B").Find(Nom, LookIn:=xlValues, LookAt:=xlPart)  'xlpart = partie du nom et xlwhole = casse exacte
            If Not c Is Nothing Then
                Sh.Activate
                c.Select
                firstAddress = c.Address
                Do
                 Range("A" & c.Row & ":G" & c.Row).Interior.ColorIndex = 8
                strreponse = MsgBox(Sh.Name & "!" & c.Address & vbCrLf & _
                     "Oui pour continuer la recherche" & vbLf & _
                     "Non pour sortir", vbYesNo)
                     If strreponse = vbNo Then Exit Sub
                    Set c = Sh.Columns("A:B").FindNext(c)
                    c.Select
                Loop While Not c Is Nothing And c.Address <> firstAddress
                Set c = Nothing
            End If
        Next Sh
    End If
    End Sub

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

Discussions similaires

  1. [XL-2010] Mettre une ligne en couleur suivant la valeur d'une liste déroulante
    Par canary dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 27/07/2012, 10h47
  2. mettre une ligne en couleur
    Par radahm dans le forum IHM
    Réponses: 1
    Dernier message: 24/03/2009, 21h58
  3. DBGrid, mettre une ligne en couleur.
    Par andreditdd dans le forum Bases de données
    Réponses: 3
    Dernier message: 22/12/2007, 13h37
  4. Comment mettre des lignes de couleur dans une TCheckListBox ?
    Par Isa31 dans le forum Composants VCL
    Réponses: 9
    Dernier message: 31/03/2005, 08h40
  5. [C#] Comment mettre une ligne en couleur dans mon DataGrid ?
    Par vandeyy dans le forum Windows Forms
    Réponses: 7
    Dernier message: 19/07/2004, 10h03

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