Modifier la forme conditionnelle - colorier des lignes suivant la recherche

Bonjour,

Tout a commencé par une vidéo vu sur "TikTok", plutôt simple et efficace pour un novice comme moi.

Le résultat fonctionne, comme sur la vidéo. Toutefois je souhaiterai l'améliorer sur 2 points mais je n'y arrive pas.

Commençons par cette vidéo, voici ce qu'elle disait: créer une zone de texte, on y tape un mot, les lignes qui contiennent ce mot se mettent en orange.

Pour cela:

Insérer une zone de texte (développeur)

Clic droit : visualiser le code, puis inscrire E1 en face de linkedcell (qui sert à recopier en E1 la zone de texte)

Sélectionner le tableau, mise en forme conditionnelle, nouvelle règle, utiliser une formule…

=et($E$1<> » » ;cherche($E$1 ;$A6)) puis format – couleur orange – gras

Pour masquer E1 : format de la cellule, personnaliser, écrire ;;;

je souhaiterai:

1) que la recherche se fasse sur tout le tableau et pas seulement sur la colonne A (de A à J)

(j'ai a moitié solutionné ce problème, (désolé les experts de ce qui va suivre), en créant une forme conditionnelle pour la colonne A, puis B puis C etc... jusqu'à J. ça marche mais je pense qu'il y a mieux)

2) mon tableau fait 500 lignes, je trouve bête de descendre les 500 lignes et de m'arrêter sur les lignes orange. Peut on "masquer" les lignes non concernées (comme un filtre)?

je joins un fichier simple, je l'adapterai à mon vrai fichier

Bonsoir,

Sélectionnez la cellule E6 et essayez cette formule:

=EQUIV($E$1&"*";$A6:$L6;0)

à appliquer sur toute la plage

Cdlt

bonsoir,

je ne comprends pas. simplement en la collant? sous la forme conditionnelle? autre?

ou un retour de fichier

car le fait de coller donne une erreur de référence circulaire

Bonjour,

je ne comprends pas. simplement en la collant? sous la forme conditionnelle? autre?

Votre question portait bien sur une mise en forme conditionnelle, non! Je vous ai donc fourni une réponse en fonction de votre demande.

Il fallait supprimer celles que vous aviez déjà écrites et, copier cette formule dans les MFC .

Cdlt

merci de votre retour,

si je peux encore vous solliciter:

dans votre fichier en retour, lorsque rien n'est n'est rempli dans la zone de recherche, les lignes sont orange. ne peut on pas les laisser sans couleur et qu'elles deviennent orange lorsque l'on frappe?

a t on la possibilité de masquer les lignes sans couleur pour n'avoir que les lignes orange à la suite (afin d'éviter de faire défiler tout le document)

dans votre réponse, je soupçonne que vous n'auriez pas fait comme ça pour avoir ce résultat. je me trompe?

Il suffit d'ajouter la condition suivante (toujours en étant positionné sur la cellule A6:

=$E$1=""

et de cocher "Interrompre si Vrai"

goliath

Cette condition doit se trouver en première position.

********************************************************************************************************

a t on la possibilité de masquer les lignes sans couleur pour n'avoir que les lignes orange à la suite (afin d'éviter de faire défiler tout le document)

Il faut passer par une macro en VBA.

Un exemple avec du VBA,

Saisissez le texte dans la TextBox, le tableau s'adaptera au fur et à mesure de la frappe.

Le principe: Pour chaque ligne comportant le texte recherché, la lettre "x" est ajoutée en colonne M, à la fin, on masque toutes les lignes ne contenant pas de "x" dans la colonne M.

la classe!!!

il ne me reste plus qu'a faire la même chose dans mon "vrai" fichier.

merci beaucoup

Je viens de me rendre compte d'un petit soucis que je n'avais pas vu.

Lorsque j'écris un mot dans la TextBox, ça ne recherche que le premier mot, pas les suivants.

exemple:

Si dans une cellule est indiqué "code la la construction", j'écris "code", la ligne devient orange, mais si j'écris construction, la recherche ne donne rien.

Pour raconter ma vie: est listé dans des tableaux Excel (dans différentes feuilles) des normes, des documents constructeurs, des listes de documents avec, dans les différentes colonnes, des mots clés, des résumés. Mon but est (si cela est possible) de faire des recherches sur les mots peut importe ou ils se trouve.

donc, je vais donc re-poser des questions: possible ou pas?

Bonsoir,

Je viens de me rendre compte d'un petit soucis que je n'avais pas vu. D'où l'importance de poser la question le plus précisément possible.

Voici la modif

Cdlt

Je te remercie énormément

je n'est plus qu'a l'adapter sur le vrai fichier.

encore merci

ça paraissait si simple... et non, c'est encore excel qui commande!

Le retour de Arturo83 fonctionne parfaitement.

Par contre, dons mon fichier, pas trop. (je reviendrais dessus plus tard).

Donc, avec ma petite tête, je suis reparti de 0, je refais les manipulation dans un fichier "bidon"

Nouveau fichier excel, un

tableau (pour faire les essais), nouveau Textbox, ajout de E1 puis ;;; pour le cacher, dans E6 je fais les 2 MFC.

j'ouvre le fichier qui fonctionne, Visual Basic, je copie tout la macro, et je la colle dans la feuille 1 de mon nouveau document.

et la ça ne fonctionne pas correctement... lorsque j'écris "c" des lignes ne sont pas colorées.

pour en revenir à mon vrai fichier dans lequel ça doit fonctionner, ce n'était pas le même problème. au bout de 2 lettres écrites dans le Textbox, il n'affichait qu'une seule ligne orange (alors qu'il y en avait bien plus.

je me doute que cela vient de ma manipulation. ça fait plus de 2 h que je lis tout (et rien d'ailleurs) sur le net et les forums mais là... mystère!

Si si, ça fonctionne très bien, vous avez recopiez la macro et le résultat affiché est juste, exemple si je tape "C", on obtient bien tous les "camion" "car", "des cars",

sauf que certaines lignes ne sont pas passées en orange, et c'est normal, puisqu'elles sont traitées par MFC, et vous avez oublié de recopier la formule dans les MFC.

Corrigez et venez me dire.

je sens que je vais passer pour le casse bonbon de service....

et vous avez oublié de recopier la formule dans les MFC.

pour vérifier les formules, MFC, gérer les règles, et je sélectionne: "pour cette feuille de calcul". de là s'affiche toutes les MFC utilisées dans cette feuille de calcul.

je me trompe? et là, les MFC sont identiques sur les 2 fichiers (le tien, et mon essai 2)

Bonjour,

la formule MFC pour la couleur orange est bien présente dans le dernier fichier déposé lundi à 20h21:

=EQUIV("*"&$E$1&"*";$A6:$L6;0)

il suffit d'ajouter

"*"&

devant la formule existante

Cdlt

je vous remercie encore une fois.

je vais retravailler ça au calme.

normalement, ça devrait bien se passer pour remettre tout ça dans mon "vrai fichier"

encore merci

encore de retour, ça ne va pas si bien que ça.

j'ai refais 2 fois les manipulations a partir de fichiers vierges: ça fonctionne très bien dans les 2 cas. (mon coup de patte est donc bon)

Maintenant, ça bug sur mon fichier dans lequel doit ce trouver cette recherche.

c'est un fichier avec 12 feuilles, que je mets à jour régulièrement (en info, en lignes, en nouvelles feuilles). Les feuilles sont toutes composées de la même façon, et les colonnes C et D contiennent des liens vers des pdf et vers internet. La ligne N°6 me sert de filtre. Je ne souhaite mettre ce filtre que sur quelques feuilles, les plus longues.

Dans ce que t'ai envoyé (et j'ai vérifié 4 fois pour ne rien oublier), si j'écris "ERP" (il y est au mois 10 fois), ça ne m'affiche qu'une seule ligne. C'est une copie exacte de mon vrai fichier.

Je suis vraiment navré, mais j'ai encore besoin d'un coup de pouce.

Bonjour,

Lorsqu'on dépose un fichier anonymisé, il est préférable que ce dernier s'approche le plus possible du fichier réel (l'idéal c'est de faire une copie du fichier réel et de modifier les données sensibles), sinon on risque de passer à côté de certains points.

Revoici le code adapté au fichier réel:

Option Compare Text

Private Sub TextBox1_Change()
    On Error GoTo Sortie
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    Cells.EntireRow.Hidden = False
    DerLig = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
    Range("M7:M" & DerLig).ClearContents
    If TextBox1.Text = "" Then
        Cells.EntireRow.Hidden = False
        GoTo Sortie
    Else
        Valeur = TextBox1.Text
        With ActiveSheet.Range("A7:L" & DerLig)
            Set x = .Find("*" & Valeur & "*")
            If Not x Is Nothing Then
                Deb = x.Address
                Do
                   Cells(x.Row, "M") = "x"
                   Set x = .FindNext(x)
                Loop While Not x Is Nothing And x.Address <> Deb
            End If
        End With
    End If

    For i = DerLig To 7 Step -1
        If Cells(i, "M") <> "x" Then
            Rows(i).Hidden = True
        Else
            Rows(i).Hidden = False
        End If
    Next i

Sortie:
    Application.EnableEvents = True
End Sub

Cdlt

je ne peux que, encore une fois te remercier.

Après, j'ai essayé de fournir un fichier "léger", pour ne pas t'envoyer un énorme fichier, avec des tableaux de 500 lignes et des feuilles à gogo.

Je me dis, même si je ne maitrise pas énormément, j'arriverai à compléter, modifier pour l'adapter à mon fichier. Ca me fais chercher, découvrir, comprendre.

Mais tu as raison, la prochaine fois, je donnerai un fichier plus précis, ça sera plus simple pour tous les deux.

encore merci

Rechercher des sujets similaires à "modifier forme conditionnelle colorier lignes suivant recherche"