Recherche d'une cellule avec offset

Bonjour,

J'ai créé un tableau de gestion de client. Les noms se trouvent en colonne B et prénoms en C et sont classés par ordre alphabétique (1- Nom - 2 Prénoms). Les données (les premières, en ligne 6) sont entrées par l'intermédiaire d'un formulaire. Dans ce formulaire, il y a un onglet qui me permet de supprimer une fiche client si nécessaire.

Pour supprimer le mémorise le nom (Nom) et le prénom (Prenom) puis je cherche la cellule dans laquelle se trouve le nom désiré avec l'instruction .find. Ensuite, avec l'instruction offset, je me décale dans la cellule adjacente pour trouver le prénom (il peut y avoir des frères , soeurs, ....). Cela fonctionne très bien sauf dans un cas :

lorsque les noms des cellules B6 et B7 sont identiques , et que je veux la ligne sélectionner la ligne 6 car le prénom se trouvent en C6 il ne trouve pas car la première valeur qu'il trouve est le prénom se trouvant en C7. Evidemment, si le même prénom se trouve en ligne 15, je vais avoir cette ligne qui va être supprimer. Ce problème se produit uniquement lorsque B6 et B7 sont identiques et que je veux supprimer la ligne 6. Pour résoudre cela, je mets ActiveCell.Offset(-1, 1).Select au lieu de (0,1) ce qui devrait sélectionner la cellule au dessus de celle désirée.

J'aimerais bien savoir pourquoi ce problème.

J'espère avoir été compréhensible. Merci d'avance pour les réponses

 
Nom = FormulaireGestionClient.NomClients.List(FormulaireGestionClient.NomClients.ListIndex, 0)
Prenom = FormulaireGestionClient.NomClients.List(FormulaireGestionClient.NomClients.ListIndex, 1)
Reponse = MsgBox("Vous allez supprimer une fiche client", vbYesNo, "suppression")
        If Reponse = vbNo Then Exit Sub

'recherche de la celllule
    With Range("B6:B500")
    Set Cellule = .Find(Nom)
    Cellule.Select
    End With
       ActiveCell.Offset(0, 1).Select
        If Prenom <> ActiveCell.Value Then
                Do
                 ActiveCell.Offset(1, 0).Select
                Loop Until Prenom = ActiveCell.Value
         End If
         Selection.EntireRow.Delete

Bonjour

Tu peux résoudre ton problème avec ça

Set Cellule = .Find(Nom, after:=Range("B500"))

Oblige le Find à chercher après la cellule B500 qui est la fin de la zone de recherche et de ce fait recommence au début

Bonjour,

Merci pour la réponse. Cela fonctionne très bien.

Rechercher des sujets similaires à "recherche offset"