Recherche d'un mot et copie de la ligne

Bonjour,

Mon épouse, qui cuisine pas mal , m'a demandé de réunir toutes les recettes qu'elle trouve dans une revue.

Dans le fichier excel fourni, il y a une petite partie de ces recettes avec le N° de la revue, le type de plat (entrée, plat, dessert, etc) et la page où se trouve cette recette dans la revue.

Je cherche à faire une macro qui recherche par rapport à un mot (ex: Poulet), qui copie la ou les ligne(s) contenant ce mot et qui la/les colle sur la feuille "recherche".

Avec mes remerciements

Edit: c'est quelques choses dans ce genre là que je cherche à faire mais qui n'est pas du tout adapté pour le moment :

Bonjour

Un essai à tester. Te convient-il ?

Bye !

Bonjour,

Que dire, si ce n'est que "Parfait"

Je te remercie pour ton boulot.

Salut Bayard, gmb,

même technique en poussant le bouchon un peu plus loin encore!

Pour certaines recettes, le mot à trouver peut faire partie d'un autre mot (ail -> écailles, rougail).

Les mots à chercher sont à taper au singulier.

A tester en situation réelle car, sûrement, des exceptions n'auront pas été relevées!

Private Sub Worksheet_Change(ByVal Target As Range)
'
Dim tWks, tSplit, tRec()
'
Application.EnableEvents = False
If Not Intersect(Target, Range("A3")) Is Nothing Then
    sProd = LCase([A3])
    iRow = Cells(Rows.Count, 1).End(xlUp).Row
    If iRow > 5 Then Range("A6:D" & iRow).ClearContents
    '
    For x = 1 To Sheets.Count
        sFlag = Sheets(x).Name
        If sFlag <> "Recherche" Then
            With Worksheets(sFlag)
                iRow = .Cells(Rows.Count, 1).End(xlUp).Row
                tWks = .Range("A2:D" & iRow)
            End With
            For y = 1 To UBound(tWks, 1)
                tSplit = Split(LCase(tWks(y, 3)), " ")
                For Z = 0 To UBound(tSplit)
                    If tSplit(Z) Like "*" & sProd & "*" Then
                        iOK = 1
                        If Len(tSplit(Z)) > Len(sProd) Then
                            iOK = 0
                            iInstr = InStr(tSplit(Z), sProd)
                            Select Case iInstr
                                Case 1
                                    If Mid(tSplit(Z), Len(sProd) + 1, 1) = "s" Or Mid(tSplit(Z), Len(sProd) + 1, 1) = "," Then iOK = 1
                                Case Else
                                    If Mid(tSplit(Z), iInstr - 1, 1) = "'" Or Mid(tSplit(Z), iInstr - 1, 1) = "-" Then iOK = 1
                            End Select
                        End If
                        If iOK = 1 Then
                            iIdx = iIdx + 1
                            ReDim Preserve tRec(3, iIdx)
                            For k = 1 To 4
                                tRec(k - 1, iIdx - 1) = tWks(y, k)
                            Next
                            Exit For
                        End If
                    End If
                Next
            Next
        End If
    Next
    If iIdx > 0 Then Range("A6").Resize(iIdx, 4) = WorksheetFunction.Transpose(tRec)
End If
Application.EnableEvents = True
'
End Sub

Pour le plaisir du code!

A+

Bonsoir,

Bon boulot aussi, surtout pour le plaisir de coder.

Merci aussi à toi pour ton travail.

Bonne soirée

Bonsoir à vous trois !

Une question ? Pourquoi colonne Type sur chaque feuille, alors que la feuille = Type ?

Avec une seule feuille de référence en utilisant la colonne type pour ce qu'elle est, cela éviterait une boucle : celle des feuilles...

Des feuilles en moins = moins de feuille = moins de risque de bouchon... Mouais elle n'est pas bonne celle la !!!!

Sinon bravo pour la recherche !

@ bientôt

LouReeD

Bonjour à tous,

Je reviens avec mon fichier de recherche de recettes où quelque uns d'entre vous m'ont déjà donnés un bon coup de mains.

Je m'aperçois qu'il est quand même assez compliqué de trouver la revue contenant la recette désirée si on ne sait pas à quoi ressemble la couverture.

Je me demande si il serait possible à partir d'un dossier contenant l'image des couvertures, qui aurait un nom spécifique (genre le numéro de la revue), afficher la dite image en sélectionnant la ligne de la recette désirée.

Actuellement il y a deux images sur la "Feuil1" pour test

Je suis preneur de toutes les solutions

Merci à vous

Bonjour,

Bonsoir à vous trois !

Une question ? Pourquoi colonne Type sur chaque feuille, alors que la feuille = Type ?

Avec une seule feuille de référence en utilisant la colonne type pour ce qu'elle est, cela éviterait une boucle : celle des feuilles...

Des feuilles en moins = moins de feuille = moins de risque de bouchon... Mouais elle n'est pas bonne celle la !!!!

Sinon bravo pour la recherche !

@ bientôt

LouReeD

en fait ce que je voulais dire, vu que vous avez une colonne Type (de recette), il n'était pas besoin d'avoir un onglet par type de recettes.

Du coup avec votre nouvelle question, je vous ai fais un petit fichier :

une seule feuille pour tous les types de recettes, un "TextBox" pour effectuer votre recherche en fonction d'un mot ou plusieurs mots, un filtrage automatique du tableau des recettes, afin de ne laisser visible que les recettes recherchées.

Un clic sur une des lignes restante, et l'image de la couverture s'affiche dans l'image box de droite.

L'ajout de référence de recette est simple : il suffit de remplir la première ligne vide sous le tableau et celle-ci va s'intégrée automatiquement dans le tableau, après il suffit de faire un tri par type (ou tout autre chose).

Le fichier en archive afin d'avoir la structure fichier + dossier photos covers :

@ bientôt

LouReeD

Bonjour,

Comment dire, c'est parfait.

un petit problème cependant, lors du rajout d'une recette, il y a une erreur d'exécution "53" car il ne trouve pas le fichier à afficher.

Le problème se résout en mettant le fichier JPG avant de commencer le rajout.

Je te remercie et le fait de mettre tout sur une seule feuille (comme tu l'avais suggéré il y a un moment) n'est pas plus mal.

Encore merci

Bonsoir,

c'est mon deuxième prénom !!!

je plaisante,

ci joint la version avec la gestion d'erreur :

@ bientôt

LouReeD

Bonjour,

Désolé mais j'ai une connexion Internet de M****, et hier pouf plus rien

Merci pour ton boulot, ça marche nickel.

Bonne journée.

Bonjour,

merci de votre merci !

@ bientôt

LouReeD

RE,

Une petite question en passant

Ya moyen que l'image ne bouge pas lorsque la souris monte et descend la page? (scroll ??)

Merci et bon week-end

Bonjour

Tu sélectionnes la ligne 25 puis tu fais : "Affichage - Fractionner - Figer les volets - Figer les volets "

OK ?

Bye !

Bonsoir,

ou alors vous agrandissez la première ligne afin d'englober l'image au niveau de la hauteur, et si cela fait trop grand alors vous pouvez réduire le contrôle image en passant par le menu "développeur".

@ bientôt

LouReeD

Bonjour,

une solution plus propre : la mise en place d'un USERFORM en mode "0".

Un bouton pour l'afficher quand on en a besoin, et la petite croix pour en sortir...

le fichier à placer dans le "bon" dossier :

@ bientôt

LouReeD

Bonjour,

Joli, beau travail

Edit: J'ai un peu modifié le code que tu m'as gentiment confié.

A l'ouverture, il y a le lancement de la macro "Sub Affiche_Magazine()" qui affiche le UserForm1 pour la couverture et il suffit de cliquer sur une recette pour que la couverture s'affiche et ça ne bouge pas pendant l'utilisation de la souris.

Bonne soirée et encore merci.

Oui, en fait je ne voulais pas "imposer" la couverture du magazine à chaque clic sur une ligne du tableau (exemple : correction de fautes d'orthographe)

C'est pourquoi j'ai mis un bouton afin de l'afficher uniquement quand on en a besoin...

@ bientôt

LouReeD

Rechercher des sujets similaires à "recherche mot copie ligne"