vba code pour recherche

tony555

XLDnaute Nouveau
Bonjour

Je débute actuellement en vba donc pardonnez la possible mauvaise syntaxe de mon code. j'utilise beaucoup l'enregistreur de macro.

je cherche à faire une macro qui cherche toutes les valeurs d'une colonne A d'un onglet A dans un autre ongletB et qui à la manière d'une recherchev renvoit la valeur situèe une case à sa droite et la colle dans la la colonne B de l'onglet A. la difficulté est qu'il ya plusieur correspondances et je voudrait obtenir ceci ( en rouge ce que la macro donnerais en résultat)

chaque espace délimite une cellule

onglet A
1 A A2

2 B B2

3 C

onglet B
1 A

2 B

1 A2

2 B2

3 C

j'ai pas mal travaillé dessus et j'ai abouti à ce code qui à marché pour des valeurs numériques mais qui maintenant me revoie une erreure "erreure d'execution 91 variable objet ou variable de bloc with non défini"

d'une je n'ai aucune idée de ce qu'est un bloc with et de deux je pense avoir défini toute les variables. ce qui manifestement est faux:confused:
donc je suis un peu perdu, si vous pouvez me dire ce qui cloche ou ce qui serait plus adapté voila mon code :
Code:
Sub existingeval_notlist()

Application.ScreenUpdating = False

Dim i, i2, bouclefin, bouclefin2, k As Integer
Dim j As String
Dim r, c As Integer

'je rend visible l'onglet B
Sheets(5).Visible = True

'on se place dans l'onglet A
Sheets(8).Select

bouclefin = Range("E" & Range("E65536").End(xlUp).Row).Row



For i = 2 To bouclefin

Sheets(8).Select
'j = valeur à cherché
j = Cells(i, 5).Value

' r et c sont les la ligne et la colonne de activecell qui permette de faire redémarer la fonctipn find après la cellule active
r = 2
c = 4

'K permet est le numéro de collone dans laquelle la valeur renvoyé doit se coller
k = 6
Sheets(5).Select
'initie le nombre d'occurence à exécuter
bouclefin2 = WorksheetFunction.CountIf(Range("D1:D" & Range("D65536").End(xlUp).Row), j)

        For i2 = 1 To bouclefin2
        
        Columns("D:D").Select
      
        Selection.Find(What:=j, After:=Cells(r, c), LookIn:=xlValues, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate
        r = ActiveCell.Row
        c = ActiveCell.Column
        ActiveCell.Offset(0, 1).Copy
        Sheets(8).Select
        Cells(i, k).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        k = k + 1
        Sheets(1).Select
        
        Next
        

Next
Sheets(5).Visible = False

Application.ScreenUpdating = True

La ligne qui pose problème serait la fonction find

ca fait plusieur heure que je suis dessus et je ne sais plus quoi faire
Merci d'avance
 
G

Guest

Guest
Re : vba code pour recherche

Bonjour tony555 et bienvenue sur le forum,

Sans fichier exemple il est difficile de t'aider efficacement.

Peut-être te dirais-je d'appeler l'aide de l'éditeur de macro (F1) sur la méthode FIND. aide qui expose un exemple concret et très clair de recherche.

dans
Code:

A+

[Hello] Michel:)
 
Dernière modification par un modérateur:

Discussions similaires

Réponses
11
Affichages
297

Statistiques des forums

Discussions
312 305
Messages
2 087 072
Membres
103 455
dernier inscrit
saramachado