XL pour MAC FONCTION RECHERCHE EN VBA

mcj1997

XLDnaute Accro
Bonjour,

Dans le fichier joint, ma fonction recherche ne se fait que sur une ligne, je n'arrive pas à étirer dans le programme et il faut également lancer la macro "manuellement", comment l'automatiser dès que la saisie est faite ?

Merci d'avance,
 

Pièces jointes

  • RECHERCHE DANS VBA.xlsm
    15.3 KB · Affichages: 17

Phil69970

XLDnaute Barbatruc
Bonjour MCJ1997 , le forum

Je te propose ceci avec une boucle.
VB:
Sub test()
Dim DerLig As Long
DerLig = Worksheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row

For i = 1 To DerLig
    With Sheets("Feuil1")
        .Range("B" & i).Value = WorksheetFunction.VLookup(.Range("A" & i).Value, Sheets("Feuil2").Range("A1:B100"), 2, False)
    End With
Next i
End Sub


Edit :
Pour lancer en automatique à la place de sub Test

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim DerLig As Long
DerLig = Worksheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row

For i = 1 To DerLig
    With Sheets("Feuil1")
        .Range("B" & i).Value = WorksheetFunction.VLookup(.Range("A" & i).Value, Sheets("Feuil2").Range("A1:B100"), 2, False)
    End With
Next i
End Sub


@Phil69970
 
Dernière édition:

Phil69970

XLDnaute Barbatruc
Voir mon edit qui remplace la procédure sub Test
Donc ==> cela donne cela comme je l'ai déjà écrit plus haut

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim DerLig As Long
DerLig = Worksheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row

For i = 1 To DerLig
    With Sheets("Feuil1")
        .Range("B" & i).Value = WorksheetFunction.VLookup(.Range("A" & i).Value, Sheets("Feuil2").Range("A1:B100"), 2, False)
    End With
Next i
End Sub

@Phil69970
 

Phil69970

XLDnaute Barbatruc
Je te propose ceci si j'ai bien compris:

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim DerLig As Long
DerLig = Worksheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row

For i = 1 To DerLig
    With Sheets("Feuil1")
        .Range("B" & i).Value = WorksheetFunction.VLookup(.Range("A" & i).Value, Sheets("Feuil2").Range("A1:C100"), 2, False)
        .Range("C" & i).Value = WorksheetFunction.VLookup(.Range("A" & i).Value, Sheets("Feuil2").Range("A1:C100"), 3, False)
    End With
Next i

End Sub

@Phil69970
 

Discussions similaires

Statistiques des forums

Discussions
312 527
Messages
2 089 346
Membres
104 130
dernier inscrit
badro26