Problème avec rechercheV VBA

Résolu
Signaler
Messages postés
360
Date d'inscription
dimanche 3 décembre 2006
Statut
Membre
Dernière intervention
3 janvier 2012
-
Messages postés
360
Date d'inscription
dimanche 3 décembre 2006
Statut
Membre
Dernière intervention
3 janvier 2012
-
Bonjour à tous,

J'ai un problème avec une rechercheV dans mon script. Je voudrais qu'il me donne seulement la valeur et non écrire la formule dans la cellule.

Voici le script:

<hr size="2" width="100%" />Set RECHERCHE = Columns("C:C").Find(TextBox173)
    If Not RECHERCHE Is Nothing Then
       Ligne = RECHERCHE.Row
    TextBox65 = (TextBox63.Value - TextBox64.Value)
    TextBox66 = (TextBox64.Value * TextBox62.Value)
    Range("Q" & Ligne) = TextBox64.Value
    Range("R" & Ligne) = TextBox65.Value
    Range("S" & Ligne) = Range("O" & Ligne) * Range("Q" & Ligne)
    Range("T" & Ligne) = DTPicker11.Value
    Range("U" & Ligne) = ComboBox12.Text
    Range("V" & Ligne) = TextBox131.Value
    Range("W" & Ligne) = DTPicker11.Value
    Range("X" & Ligne) = "=VLOOKUP(RC[-1],'Base de données'!R1C16:R1492C19,2,0)"
    Range("Y" & Ligne) = "=VLOOKUP(RC[-2],'Base de données'!R1C16:R1492C19,3,0)"
    Range("Z" & Ligne) = "=VLOOKUP(RC[-3],'Base de données'!R1C16:R1492C19,4,0)"

<hr size="2" width="100%" />Est-ce possible ?

Merci encore pour vôtre aide 

2 réponses

Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
Pour ta formule, premièrement, tu dois mettre .Formula à ton Range
Range("X" & Ligne).Formula = "=TaFormule"

Si tu veux avoir seulement la valeur, tu peux copier/coller le résultat de la formule en valeur au fur et à mesure
Range("X" & Ligne). Formula = "=TaFormule"
Range("X" & Ligne).Copy
Range("X" & Ligne).PasteSpecial xlPasteValues

ou encore utiliser Application.WorksheetFunction
' ceci te place une formule en C1 (ce que tu ne veux pas...)
Range("C1").Formula = "=VLOOKUP(A5,A1:A15,1,FALSE)"
' ceci te place le résultat de la formule en C1
Range("C1") = Application.WorksheetFunction.VLookup([A5], [A1:A15], 1, "FALSE")
' et ceci te met aussi le résultat de la formule
Range("C1") = [VLookup(A5, A1:A15, 1, FALSE)]

MPi
Messages postés
360
Date d'inscription
dimanche 3 décembre 2006
Statut
Membre
Dernière intervention
3 janvier 2012
3
Merci beaucoup,

j'ai utilisé :

Range("X" & Ligne).Formula = "=MaFormule"
Range("X" & Ligne).Copy
Range("X" & Ligne).PasteSpecial xlPasteValues

C'était portant si simple et je me compliquai la vie.

Merci de me rammener à l'ordre