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 :

Colorier une ligne en fonction d'une valeur recherchée [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Colorier une ligne en fonction d'une valeur recherchée
    Bonjour,

    Depuis quelques semaines, je me lance dans un petit programme VBA pour rendre plus rapide la gestion des inscriptions de participants pour des soirées.

    Mon problème est le suivant :

    De temps en temps il arrive d'avoir des annulations, alors j'aimerai pouvoir avoir une macro permettant de rechercher le nom et le prénom de la personne concernée (nom sur la colonne D, et prénom sur la colonne E), et qu'en fonction de ces 2 valeurs, colorier toute la ligne des colonnes A à Z.

    Ce qui veut dire que la ligne coloriée doit avoir obligatoirement ces 2 valeurs dans ses colonnes.

    Le numéro de la ligne pouvant varier en fonction du client.

    Pour effectuer ma recherche j'ai procédé comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub CommandButton_OK_Click()
    'Déclaration des variables
        Dim Nom As String, Prenom As String, Colonne_D As Range, Colonne_E As Range
     
    'Recherche du nom
        Nom = TextBox_Nom.Value
        Set Colonne_D = ActiveSheets.Columns(4)
     
    'Recherche du prénom
        Prenom = TextBox_Prenom.Value
        Set Colonne_E = ActiveSheets.Columns(5)
    End Sub
    Pour la suite, je n'ai aucune idée des divers codes pour effectuer la coloration de la ligne possédant ces 2 valeurs...

    Je vous en remercie d'avance.

    Cordialement,

    Skwal N.

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Dix millions de façons de faire. En voila una

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub CommandButton_OK_Click()
        Nom = TextBox_Nom.Value
        prenom = TextBox_Prenom.Value
        With ActiveSheet
            For i = 2 To .Range("D" & .Rows.Count).End(xlUp).Row
                If Nom = .Range("D" & i) And prenom = .Range("E" & i) Then
                    .Range("D" & i).EntireRow.Interior.Color = RGB(100, 0, 0)
                End If
            Next i
        End With
    End Sub

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci énormément pour cette rapide et efficace!

    Cependant, comme dit dans mon sujet, j'aimerai que ça colore la ligne uniquement des colonnes A jusqu'à Z.

    Est-ce possible?

    Je n'arrive pas à trouver le code qui pourrait traduire ma demande.

    Encore merci.

  4. #4
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    EngueEngue t'a mis sur la voie, tu changes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Range("D" & i).EntireRow.Interior.Color = RGB(100, 0, 0)
    pour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Range("A" & i,"Z" & i).Interior.Color = RGB(100, 0, 0)

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    En effet cela fonctionne lorsque l'on retire le "EntireRow", chose que j'avais oublier de retirer en essayant la méthode que tu viens de me soumettre!

    Merci énormément pour votre aide précieuse!

    Cordialement,

    Skwal N

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

Discussions similaires

  1. [XL-2007] Colorier une ligne en fonction d'une valeur à la ligne précédente
    Par balibou dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/08/2013, 16h05
  2. Réponses: 6
    Dernier message: 24/05/2012, 11h53
  3. listview couleur d'une ligne en fonction d'une valeur
    Par Kanetsugu dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 27/03/2012, 11h48
  4. [XL-2003] Supprimer une ligne en fonction d'une valeur de cellule
    Par FCL31 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 02/09/2009, 17h20
  5. Réponses: 1
    Dernier message: 10/02/2008, 19h56

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