[VBA] Problème avec .FIND

sly.d

XLDnaute Nouveau
Bonjour à tous,

J'ai un problème, je fait une recherche par rapport a des noms, mon programme fonctionne tres bien,
mais lorsque les noms se ressemble alors ma recherche ne me donne pas le bon résultat.
Alors je me suis dit pourquoi faire une rechercheV à la place, mais ca ne fonctionne pas,
si je met Faux j'ai des NA, si je met Vrai mes résultats sont décalés.

Voici mon code :
Sub teshjkt()
Application.ScreenUpdating = False

Sheets("Nom").Activate

Dim i As String


Dim rng As Range

i = 2

Sheets("Nom").Activate
Sheets("Nom").Cells(i, 1).Select


Do While Sheets("Nom").Cells(i, 1) <> ""

Sheets("Nom").Activate
Sheets("Nom").Cells(i, 1).Select
Selection.Copy


Sheets("Synthèse").Activate


Set rng = Sheets("Synthèse").Cells.Find(what:=Sheets("Nom").Cells(i, 1), After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False)

If Not rng Is Nothing Then rng.EntireRow.Copy Else Sheets("Nom").Cells(i, 1).Copy


Sheets("Resultat").Activate
Sheets("Resultat").Cells(i, 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False
i = i + 1

Selection.Offset(1, 0).Select

Loop

Application.ScreenUpdating = True

End Sub


Merci d'avance pour votre aide,
Sly-D
 

Pièces jointes

  • forum.xls
    46 KB · Affichages: 51
  • forum.xls
    46 KB · Affichages: 55
  • forum.xls
    46 KB · Affichages: 52
C

Compte Supprimé 979

Guest
Re : [VBA] Problème avec .FIND

Re,

Voici le code un peu optimisé ;)
Code:
Sub TestFind()
  Dim Lig As Long
  Dim rng As Range
  
  Application.ScreenUpdating = False
  Lig = 2
  Sheets("Resultat").Activate
  Do While Sheets("Nom").Cells(Lig, 1) <> ""
    On Error GoTo Suite
    Set rng = Sheets("Synthèse").Cells.Find(what:=Sheets("Nom").Cells(Lig, 1), LookIn:=xlValues, LookAt:=xlWhole, _
                                            SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False)


    If Not rng Is Nothing Then rng.EntireRow.Copy Else Sheets("Nom").Cells(Lig, 1).Copy
    Sheets("Resultat").Cells(Lig, 1).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
Suite:
    Lig = Lig + 1
    Selection.Offset(1, 0).Select
  Loop
  Application.ScreenUpdating = True
End Sub

A+
 

sly.d

XLDnaute Nouveau
Re : [VBA] Problème avec .FIND

Bonjour,
Excuse moi de te "re déranger".

Je suis en train de faire un macro avec une rechercheV mais certains noms n'existe pas donc sur excel j'ai des NA,
mais en macro j'ai une erreur donc jme ss rappeler d'utiliser On Error GoTo Suite.
Le problème c'est que j'ai 2 noms qui n'existe pas et donc j'ai quand même une erreur ...

Merci d'avance.
 

Discussions similaires

Statistiques des forums

Discussions
312 330
Messages
2 087 337
Membres
103 524
dernier inscrit
Smile1813