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 :

Surbrillance d'une ligne du tableau en fonction de la sélection d'une cellule et du numéro de ligne [XL-365]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2016
    Messages : 100
    Par défaut Surbrillance d'une ligne du tableau en fonction de la sélection d'une cellule et du numéro de ligne
    Bonjour,
    Je cherche à mettre en surbrillance un ligne en fonction de la sélection d'une cellule, et qu'en même temps, cela me donne le numéro de ligne.

    J'ai donc créer deux codes car je n'arrive pas à trouver l'astuce qui me permet de faire les deux(cela met en surbrillance deux lignes au lieu d'une seule) à savoir en fonction de la cellule E4/Activation de la macro/Affectation du numéro de ligne en cellule B1


    Surbrillance en fonction de la sélection d'une cellule dans la ligne
    Lorsque je sélectionne une ligne, le numéro s'affiche en cellule B1


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
    'Mettre en surbrillange la ligne du tableau en fonction de la sélection d'une cellule dans la ligne
        If Not Intersect(Target, Range("Listing[[IDENTIFIANT]:[DATE DE FIN]]")) Is Nothing Then
            'On affecte le numéro de ligne sélectionne à la Cellule B1
            Range("B1").Value = Target.Row
     
        End If
     
    End Sub
    Surbrillance en fonction de la sélection d'une cellule définie et après activation de la macro
    Lorsque je rentre une information dans la cellule E4 et activation de la macro


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    If Not Intersect(Target, Range("A4")) Is Nothing Then
     
            RechercherContact
     
        End If
     
    End Sub
    Je vous envoi le fichier en PJ

    Merci pour votre aide
    Prenez soin de vous, prenez soin de vos proches !
    Tout seul on va plus vite, ensemble on va plus loin. C'est ensemble que nous irons plus loin. C'est ensemble que nous vaincrons ce virus !
    Fichiers attachés Fichiers attachés

  2. #2
    Membre émérite Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 601
    Par défaut
    Bonjour,

    Vous n'avez pas besoin de vous compliquer la vie.

    Il suffit d'utiliser la fonction recherchev dans votre ligne 4 et de reporter l'ID de la personne en A4.

    En PJ votre fichier avec cette modification.
    Fichiers attachés Fichiers attachés

  3. #3
    Membre confirmé
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2016
    Messages : 100
    Par défaut
    Bonsoir Alex020181,
    Je vous remercie de votre réponse, mais mon besoin n'est pas la rechercheV et de compléter les cellules, mais un besoin de surbrillance de lignes.
    Dans le fichier joint, vous avez sans doute noté que certaines lignes sont surlignées. Elles sont exécutées d'une part par la macro directement dans le fichier, mais aussi par une mise en forme conditionnelle.
    Merci à vous

  4. #4
    Membre émérite Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 601
    Par défaut
    Bon, je retente ma chance alors.

    Si j'ai bien compris vous voulez que une première ligne soit mise en jaune à chaque fois que vous cliquez dans le tableau (la ligne sur laquelle vous cliquez). Ça c'est fait.

    Et que, en même temps, une deuxième ligne soit mise en orange (celle correspondant au nom prénom saisi en "E5") sans avoir a cliquer sur le bouton bleu.

    J'espère que c'est bien ça. Voir PJ.
    Fichiers attachés Fichiers attachés

  5. #5
    Membre confirmé
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2016
    Messages : 100
    Par défaut
    Citation Envoyé par Alex020181 Voir le message
    Bon, je retente ma chance alors.

    Si j'ai bien compris vous voulez que une première ligne soit mise en jaune à chaque fois que vous cliquez dans le tableau (la ligne sur laquelle vous cliquez). Ça c'est fait.

    Et que, en même temps, une deuxième ligne soit mise en orange (celle correspondant au nom prénom saisi en "E5") sans avoir a cliquer sur le bouton bleu.

    J'espère que c'est bien ça. Voir PJ.

    Bonjour Alex020181,
    Merci pour votre aide. On y est presque. C'est moi qui me suis sans doute mal exprimée. Une seule ligne en jaune suffit (pas de ligne orange). Je n'ai pas réussi à faire une seule macro mais deux.

    L'objectif de cette base de données est de l'utiliser pour un nombre importants de lignes et de pouvoir, lorsque j'utilise la recherche, d'avoir non seulement la ligne soulignée, mais également avoir le numéro de ligne en cellule B2

    Je vous souhaite une agréable journée ensoleillée.

  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 176
    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 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Même s'il est possible de mettre à la fois une ligne dans une couleur et écrire le numéro de ligne dans une cellule précise, ma préférence pour la mise en couleur à l'aide ;de la mise en forme conditionnelle

    En effet le numéro de la ligne étant écrit dans une seule cellule (B1 dans le code que tu as affiché), il suffit de mettre une formule logique qui vérifie si la cellule est placée dans la ligne

    Ainsi après avoir sélectionné la plage des données (pour mon exemple B4:H10) du tableau structuré nommé Listing, on sélectionne l'outil de mise en forme conditionnelle et on place la formule =LIGNE(B4)=$B$1
    Je privilégie toujours l'utilisation des fonctionnalités natives d'excel

    Nom : 200404 - Image MEF.png
Affichages : 894
Taille : 22,7 Ko
    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 confirmé
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2016
    Messages : 100
    Par défaut
    Merci Philippe,
    Je viens de tester et c'est parfaitement ce que je cherchais. Par contre j'ai utiliser cette dans l'autre sens =$B$1=LIGNE(B4) comme cela dès que je sélectionne une ligne, cela me met le numéro dans la cellule B1
    Je vous souhaite une agréable journée.
    Prenez soin de vous et des vôtres en cette période de confinement
    Rien de mieux que de faire de l'excel pour remonter le moral.
    Je vous invite également à découvrir mon blog : www.maevadigitalactive.com
    Très bonne journée

  8. #8
    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 176
    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 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je viens de tester et c'est parfaitement ce que je cherchais. Par contre j'ai utiliser cette dans l'autre sens =$B$1=LIGNE(B4) comme cela dès que je sélectionne une ligne, cela me met le numéro dans la cellule
    Je ne comprends pas très bien car ce test logique que $B$1 soit à gauche ou à droite de l'opérateur de comparaison "=" c'est du pareil au même
    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

  9. #9
    Membre confirmé
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2016
    Messages : 100
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message
    Bonjour,

    Je ne comprends pas très bien car ce test logique que $B$1 soit à gauche ou à droite de l'opérateur de comparaison "=" c'est du pareil au même
    Merci, je n'avais compris. C'est tout bon
    Bonne journée

  10. #10
    Membre confirmé
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2016
    Messages : 100
    Par défaut
    Citation Envoyé par Alex020181 Voir le message
    Bonjour,

    Vous n'avez pas besoin de vous compliquer la vie.

    Il suffit d'utiliser la fonction recherchev dans votre ligne 4 et de reporter l'ID de la personne en A4.

    En PJ votre fichier avec cette modification.
    Bonjour Alex
    Est ce que l'on peut prendre la solution de Philippe et la mettre à travers un code VBA ou c'est trop compliqué
    Quoi qu'il arrive, j'ai ma réponse avec la solution de Philippe
    Très bonne journée

  11. #11
    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 176
    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 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Est ce que l'on peut prendre la solution de Philippe et la mettre à travers un code VBA ou c'est trop compliqué
    Quoi qu'il arrive, j'ai ma réponse avec la solution de Philippe
    Comme, je l'ai écris dans ma première réponse, oui, on peut mettre en surbrillance par code VBA MAIS il faut alors remettre la couleur d'origine de la ligne qui aura été mise en surbrillance juste avant.
    Que fait on si on ferme le classeur ? A sa réouverture la dernière ligne sélectionnée sera en jaune et ce sera un problème.
    Alors, on peut bien entendu mémoriser dans une cellule la dernière ligne sélectionnée mais quelle usine à gaz alors que la mise en forme conditionnelle nous offre la solution avec une simple formule

    Il faut privilégier les fonctionnalités de base d'excel lorsque c'est possible et coder le moins possible.
    Le gros avantage de cette manière de travailler, c'est la perenite. Ainsi si demain, on souhaite mettre du bleu au lieu du jaune, il suffit d'aller dans la mise en forme conditionnelle sans modifier le code VBA
    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

  12. #12
    Membre confirmé
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2016
    Messages : 100
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message
    Bonjour,

    Comme, je l'ai écris dans ma première réponse, oui, on peut mettre en surbrillance par code VBA MAIS il faut alors remettre la couleur d'origine de la ligne qui aura été mise en surbrillance juste avant ET que fait on si on ferme le classeur. A sa réouverture la dernière ligne sélectionnée sera en jaune et c'est un problème.
    Alors, on peut bien entendu mémoriser dans une cellule la dernière ligne sélectionnée mais quelle usine à gaz quand la mise en forme conditionnelle nous offre la solution avec une simple formule

    Il faut toujours utiliser les fonctionnalités de base d'excel lorsque c'est possible et coder le moins possible. Le gros avantage également c'est que si demain, tu souhaites mettre du bleu au lieu du jaune, il suffit d'aller dans la mise en forme conditionnelle sans modifier le code VBA

    Merci à vous. J'opte pour le plus simple
    Cas résolu
    Très bonne journée

  13. #13
    Membre émérite Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 601
    Par défaut
    Bonjour,

    Effectivement pas besoin de compliquer les choses.

    Si le résultat vous convient alors tant mieux.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 29/09/2011, 09h35
  2. Mise surbrillance d'une ligne d'un tableau
    Par pc75 dans le forum ASP
    Réponses: 11
    Dernier message: 22/08/2011, 14h22
  3. Mise en surbrillance d'une ligne d'un tableau
    Par pc75 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 0
    Dernier message: 19/08/2011, 16h48
  4. [XL-2007] copier une une ligne d'un tableau en fonction de la valeur de la première cellule
    Par mentat dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/12/2009, 11h49
  5. [javascript]surbrillance d'une ligne de tableau
    Par ep31 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/09/2007, 10h28

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