Macro recherche de valeur et copie de lignes

Bonjour,

Je viens vers vous car j'ai besoin d'un petit coup de pouce. Dans le cadre de la remise au propre de mon fichier de planning (sous excel 2007), je souhaiterais pouvoir réaliser une macro qui recherche toutes les dates d'un même intervenant. Malheureusement je ne suis pas très brillant lorsqu'il s'agit de VBA.

Chaque feuille correspond à une semaine et toutes ont exactement la même structure.

En farfouillant sur le site j'ai trouvé cette solution : https://forum.excel-pratique.com/excel/macro-excel-recherche-d-une-valeur-et-copie-de-ligne-t45075.html

Sub Ellipse4_Clic()
'twb fait référence au classeur en cours
Application.DisplayAlerts = False
   Set twb = ThisWorkbook
    Dim resultat As String
    ' on demande le nom"
   resultat = InputBox("Entrer le nom recherché :", "Titre")    'La variable reçoit la valeur entrée dans l'InputBox

    If resultat <> "" Then    'Si la valeur est différente de "" on affiche le résultat
       MsgBox "L'indépendant recherché est " & resultat
    End If
    ' on va parcourir un à un  toutes les feuilles du classeur en cours, ws identifie chacune de ces feuilles
           i = 0
    For Each ws In twb.Worksheets
        ' on recherche l'intervenant dans la feuille ws
       Set trouve = ws.Cells.Find(resultat, LookIn:=xlValues, LookAt:=xlWhole)

        If Not trouve Is Nothing Then
            pAddresse = trouve.Address
            If i = 0 Then Set nwb = Workbooks.Add

            Do
                i = i + 1
                ws.Rows(trouve.Row).Copy nwb.Sheets(1).Range("A" & i)

                Set trouve = ws.Cells.FindNext(trouve)
            Loop While Not trouve Is Nothing And trouve.Address <> pAddresse
        End If

        ' on passe au classeur suivant
   Next
    If i = 0 Then
        MsgBox "Cet intervenant n'existe pas"
    Application.DisplayAlerts = True
    End If
End Sub

Question 1 :

Cette macro me permet de copier la ligne où est mentionné mon intervenant. Comment rédiger le code pour qu'il copie également la ligne du dessus (elle correspond à la tâche à réaliser).

Question 2 :

Cette macro copie la ligne intégralement. Cependant, je souhaiterais qu'elle ne copie que la valeur (pour les dates) et non la formule.

En pièce jointe un exemple alléger de mon planning pour tenter d'être plus clair.

Merci d'avance

Bonjour et bienvenu(e)

A tester

Bonjour,

Je viens de tester à l'instant ce code.

J'arrive au même résultat avec

i = i + 1
                ws.Rows(trouve.Row - 1).Copy

                nwb.Sheets(1).Range("A" & i).Select
                Selection.PasteSpecial Paste:=xlPasteValues

                i = i + 1
                ws.Rows(trouve.Row).Copy
                nwb.Sheets(1).Range("A" & i).Select
                Selection.PasteSpecial Paste:=xlPasteValues
                i = i + 1
               

Mais cela fait moins propre. Merci beaucoup!

Bonne journée

Rechercher des sujets similaires à "macro recherche valeur copie lignes"