Faire une formule VBA

Bonjour,

Comment peu ton remplacer : =RECHERCHEV(B18;Produits!B:C;2)

Pour le faire en VBA automatique

Bonjour Philippe29, le forum,

A tester:

 = Application.WorksheetFunction.VLookup(Range("B18"), Sheets("Produits").Range("B:C"), 2, False)

Cordialement,

Formule a mettre comment en VBA ?

Public Sub TestVLookup()

= Application.WorksheetFunction.VLookup(Range("B18"), Sheets("Produits").Range("B:C"), 2, False)

End Sub

Je n'arrive pas cela marche pas quand je mes

Private Sub Worksheet_Change(ByVal Target As Range)
Range("B18").Value = Application.WorksheetFunction.VLookup(Range("B18"), Sheets("Produits").Range("B:C"), 2, False)
End Sub

Quelqu'un aurai une idée

Re,

Un exemple.....

Cordialement,

j'ai testé avec cette formule aussi , mes cela fonction toujours pas

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("B18")) Is Nothing Then
If WorksheetFunction.IsNumber(Target.Value) Then
Application.EnableEvents = False
Table2 = Sheets("Produits").Range("B:C")
Target.Value = Application.WorksheetFunction.VLookup(Target.Value, Table2, 2, False)
Application.EnableEvents = True
End If
End If
End Sub

Re,

Je ne suis pas sur de comprendre....

Tu saisis en B18 puis tu fais une rechercheV de B18 pour inscrire le résultat en...B18...?...

Un autre exemple sans bouton...

RechercheV de B18 et résultat en C18

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim resultat As Variant
   If Not Application.Intersect(Target, Range("B18")) Is Nothing Then
    If Target.Count > 1 Then Exit Sub
    If IsNumeric(Target.Value) Then
      resultat = IIf(IsError(Application.VLookup(Range("B18"), Sheets("Produits").Range("B:C"), 2, False)), "non trouvé", Application.VLookup(Range("B18"), Sheets("Produits").Range("B:C"), 2, False))
      Range("C18") = resultat
    Else
      MsgBox "Veuillez saisir un nombre"
      Range("B18:C18").ClearContents
    End If
   End If
End Sub

Cordialement,

Merci j'ai réussi en partie ^^

Il y a t'il un moyen de simplifier ceci

Range("B19").ClearContents
Range("B19").Value = Application.WorksheetFunction.VLookup(Target.Value, Sheets("Produits").Range("A:D"), 1, False)
Range("C19").ClearContents
Range("C19").Value = Application.WorksheetFunction.VLookup(Target.Value, Sheets("Produits").Range("A:D"), 3, False)
Range("I19").ClearContents
Range("I19").Value = Application.WorksheetFunction.VLookup(Target.Value, Sheets("Produits").Range("A:D"), 4, False)

Re,

A par l'effacement, je ne vois pas comment simplifier....

Dim plage As Range
  Set plage = Sheets("Produits").Range("A:D")
  Range("B19:C19,I19").ClearContents
  Range("B19").Value = Application.WorksheetFunction.VLookup(Target.Value, plage, 1, False)
  Range("C19").Value = Application.WorksheetFunction.VLookup(Target.Value, plage, 3, False)
  Range("I19").Value = Application.WorksheetFunction.VLookup(Target.Value, plage, 4, False)

Cordialement,

Super merci

Sinon comment faire pour ajuster automatiquement la hauteur de la cellule B19

Ma cellule B19 et fusionné et je n'arrive pas a ajuster automatiquement en hauteur ?

Bonjour,

Ma cellule B19 et fusionné et je n'arrive pas a ajuster automatiquement en hauteur ?

Une piste ici (réponse de dhany)

Sinon, il serait peut-être préférable d'ouvrir un autre sujet ,

Cordialement,

Bonjour à tous ...

Ma cellule B19 et fusionné et je n'arrive pas a ajuster automatiquement en hauteur ?

Un exemple ici qui semble fonctionner ...

Est-ce adaptable à ton cas ?

https://forum.excel-pratique.com/excel/adapter-la-hauteur-de-ligne-pour-une-cellule-fusionnee-t81081...

ric

Rechercher des sujets similaires à "formule vba"