Recherche sur le nom

Bonjour,

j'utilise la fonction Find pour une recherche sur le nom.

Si il y a deux fois le même nom, l'action ne s'effectue que sur le premier trouvé.

Pourriez-vous me donner les bons paramètres.

Ci -après le contenu de la macro.

D'avance merci

'

' crefich Macro

' création des fiches de distribution '

Application.ScreenUpdating = False

Sheets("Fiche").Select

ActiveSheet.Unprotect ("JP")

For f = 2 To Range("D" & Rows.Count).End(xlUp).Row

nom = Range("D" & f)

Set x = Range("D2:D601").Find(nom, , xlValues, xlWhole, , , False)

If x Is Nothing Then

GoTo fin

Else

imprim = x.Offset(0, -3).Value

If imprim = "OUI" Then

GoTo suite

Else

x.Offset(0, -3) = "OUI"

Carte = x.Offset(0, -2).Value

jour = x.Offset(0, -1).Value

nom = x.Offset(0, 0).Value

Prenom = x.Offset(0, 1).Value

Pers = x.Offset(0, 2).Value

Enf = x.Offset(0, 3).Value

Bébé = x.Offset(0, 4).Value

Min = x.Offset(0, 5).Value

Prov = x.Offset(0, 6).Value

If Pers = "0" Then

Pers = ""

End If

If Enf = "0" Then

Enf = ""

End If

If Bébé = "0" Then

Bébé = ""

End If

If Min = "0" Then

Min = ""

End If

If Prov = "0" Then

Prov = ""

End If

End If

End If

cre:

Workbooks.Open Filename:=ThisWorkbook.Path & "\fiche distrib.xlsx"

Sheets("Hiver").Select

Range("B1,F1,L1,N1,Q1,C2,P2,B3,G3").Select

Selection.ClearContents

Range("B1") = nom

Range("F1") = Prenom

Range("L1") = Carte

Range("N1") = jour

Range("Q1") = Pers

Range("C2") = Enf

Range("P2") = Bébé

Range("B3") = Min

Range("G3") = Prov

Windows("fiche distrib.xlsx").Activate

Sheets("Hiver").Select

Range("A1").Select

ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"

'ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & [nom] & ".xlsx"

Application.DisplayAlerts = False

ActiveWindow.Close

suite:

Next f

fin:

Sheets("Fiche").Select '

ActiveSheet.Protect ("JP")

Sheets("Accueil").Select '

End Sub

Bonjour,

Utilise la balise </> pour plus de lisibilité

Ci-après une fonction qui te permettra de déterminer la position

Function ici(plage As Range, valeur1 As Variant, valeur2 As Variant, decalage as Integer) As Range
    With plage
        ok = False
        Set ici = .Find(valeur1, LookIn:=xlValues)
        If Not ici Is Nothing Then
            prem = ici.Address
            Do
                If ici.Offset(0, decalage) = valeur2 Then ok = True
                If Not ok Then Set ici = .FindNext(ici)
            Loop While Not ici Is Nothing And ici.Address <> prem And Not ok
        End If
    End With
End Function

plage = plage de recherche de la valeur1

valeur1= ce que l'on recherche en priorité

valeur2 = valur recherchée lorsque valeur1 a été trouvée

decalage = donne le nombre de colonnes entre la plage et la colonne où se trouverait la valeur2

Merci

je vais essayer d'adapter.

Bonne fin de journée

Rechercher des sujets similaires à "recherche nom"