OVH Cloud OVH Cloud

ApplicationVLookup sur une partie d'une cellule

6 réponses
Avatar
Ricou
Bonjour,

voici la situaton. J'ai une base de données dans laquelle, à chaque réf,
correspond un code ainsi constitué : Deux lettres, espace, 4 chiffres
Est-il possible de faire un VLookup en BVA uniquement sur les 4 chiffres du
code?
En effet, d'une fois sur l'autre, seules les lettres peuvent changer.

Je pensais par exemple :créer une variable "Code" dans VBA qui aurait pour
valeur les 4 chiffres de la cellule puis lancer un VLookup sur cette variable.

Merci d'avance...

6 réponses

Avatar
Elliac
Bonjour,
pour une formule à droite du code à 4 chiffres et des plages en B2:B22 et
A2:A22 :
Selection.FormulaArray = _
"=INDEX(R2C2:R22C2,MATCH(RC[-2],VALUE(RIGHT(R2C1:R22C1,4)),0))"

Camille

"Ricou" wrote:

Bonjour,

voici la situaton. J'ai une base de données dans laquelle, à chaque réf,
correspond un code ainsi constitué : Deux lettres, espace, 4 chiffres
Est-il possible de faire un VLookup en BVA uniquement sur les 4 chiffres du
code?
En effet, d'une fois sur l'autre, seules les lettres peuvent changer.

Je pensais par exemple :créer une variable "Code" dans VBA qui aurait pour
valeur les 4 chiffres de la cellule puis lancer un VLookup sur cette variable.

Merci d'avance...


Avatar
Ricou
Je peux t'envoyer un exemple, je ne m'en sors pas ? :-)

Merci...


Bonjour,
pour une formule à droite du code à 4 chiffres et des plages en B2:B22 et
A2:A22 :
Selection.FormulaArray = _
"=INDEX(R2C2:R22C2,MATCH(RC[-2],VALUE(RIGHT(R2C1:R22C1,4)),0))"

Camille

"Ricou" wrote:

Bonjour,

voici la situaton. J'ai une base de données dans laquelle, à chaque réf,
correspond un code ainsi constitué : Deux lettres, espace, 4 chiffres
Est-il possible de faire un VLookup en BVA uniquement sur les 4 chiffres du
code?
En effet, d'une fois sur l'autre, seules les lettres peuvent changer.

Je pensais par exemple :créer une variable "Code" dans VBA qui aurait pour
valeur les 4 chiffres de la cellule puis lancer un VLookup sur cette variable.

Merci d'avance...




Avatar
Ricou
Sinon, j'ai plus simple :
je sais utiliser index et equiv mais pas comparer les 4 dernièrs chiffres
d'une cellule dans la barre de formules. Peux-tu me dire quel type de
fonctions fait cela et je me débrouillerais avec l'enregistreur de macros.

Merci...


Bonjour,
pour une formule à droite du code à 4 chiffres et des plages en B2:B22 et
A2:A22 :
Selection.FormulaArray = _
"=INDEX(R2C2:R22C2,MATCH(RC[-2],VALUE(RIGHT(R2C1:R22C1,4)),0))"

Camille

"Ricou" wrote:

Bonjour,

voici la situaton. J'ai une base de données dans laquelle, à chaque réf,
correspond un code ainsi constitué : Deux lettres, espace, 4 chiffres
Est-il possible de faire un VLookup en BVA uniquement sur les 4 chiffres du
code?
En effet, d'une fois sur l'autre, seules les lettres peuvent changer.

Je pensais par exemple :créer une variable "Code" dans VBA qui aurait pour
valeur les 4 chiffres de la cellule puis lancer un VLookup sur cette variable.

Merci d'avance...




Avatar
michdenis
Bonjour Ricou,

En vba, tu pourrais avoir quelque chose dans le genre :

Range("C1") = là où est les 4 numéros recherchés dans ta plage.

Ce pourrait être une bonne idée de nommer la plage de cellules.

With Worksheets("Feuil1")
MsgBox Evaluate("=INDEX(A2:A3,MATCH(" & .Range("C1") & ",RIGHT(A2:A3,4)*1,0),0)")
End With


Salutations!



"Ricou" a écrit dans le message de news:
Sinon, j'ai plus simple :
je sais utiliser index et equiv mais pas comparer les 4 dernièrs chiffres
d'une cellule dans la barre de formules. Peux-tu me dire quel type de
fonctions fait cela et je me débrouillerais avec l'enregistreur de macros.

Merci...


Bonjour,
pour une formule à droite du code à 4 chiffres et des plages en B2:B22 et
A2:A22 :
Selection.FormulaArray = _
"=INDEX(R2C2:R22C2,MATCH(RC[-2],VALUE(RIGHT(R2C1:R22C1,4)),0))"

Camille

"Ricou" wrote:

Bonjour,

voici la situaton. J'ai une base de données dans laquelle, à chaque réf,
correspond un code ainsi constitué : Deux lettres, espace, 4 chiffres
Est-il possible de faire un VLookup en BVA uniquement sur les 4 chiffres du
code?
En effet, d'une fois sur l'autre, seules les lettres peuvent changer.

Je pensais par exemple :créer une variable "Code" dans VBA qui aurait pour
valeur les 4 chiffres de la cellule puis lancer un VLookup sur cette variable.

Merci d'avance...




Avatar
Ricou
J'ai fait cette formule dans la barre de formules de la feuille. Ca me
renvoit un #Valeur sur la partie DROITE('Volumes (2)'!$B$4:$B$177;
La fonction DROITE n'est peut être pas adaptée à un plage de cellules ?

J'espère pouvoir sortir une formule avec l'enregistreur de macros...

=INDEX('Volumes (2)'!K$4:K$177;EQUIV(DROITE($B188;4);DROITE('Volumes
(2)'!$B$4:$B$177;4);0))

Merci à tous les deux (je vous enverrais le résultat, ca peut toujours
servir...



Sinon, j'ai plus simple :
je sais utiliser index et equiv mais pas comparer les 4 dernièrs chiffres
d'une cellule dans la barre de formules. Peux-tu me dire quel type de
fonctions fait cela et je me débrouillerais avec l'enregistreur de macros.

Merci...


Bonjour,
pour une formule à droite du code à 4 chiffres et des plages en B2:B22 et
A2:A22 :
Selection.FormulaArray = _
"=INDEX(R2C2:R22C2,MATCH(RC[-2],VALUE(RIGHT(R2C1:R22C1,4)),0))"

Camille

"Ricou" wrote:

Bonjour,

voici la situaton. J'ai une base de données dans laquelle, à chaque réf,
correspond un code ainsi constitué : Deux lettres, espace, 4 chiffres
Est-il possible de faire un VLookup en BVA uniquement sur les 4 chiffres du
code?
En effet, d'une fois sur l'autre, seules les lettres peuvent changer.

Je pensais par exemple :créer une variable "Code" dans VBA qui aurait pour
valeur les 4 chiffres de la cellule puis lancer un VLookup sur cette variable.

Merci d'avance...






Avatar
michdenis
Bonjour Ricou,

Ceci fonctionne :

With Worksheets("Volume (2)")
MsgBox Evaluate("=INDEX('Volume (2)'!A2:A3,MATCH(" & .Range("C1") & ",RIGHT('Volume (2)'!A2:A3,4)*1,0),0)")
End With


Dans la cellule c1 où tu es la valeur que tu recherche, j'ai supposé que tu entrais seulement les 4 chiffres recherchés et non la
chaîne tel qu'elle est inscrite dans ta plage de recherche.


Salutations!




"Ricou" a écrit dans le message de news:
J'ai fait cette formule dans la barre de formules de la feuille. Ca me
renvoit un #Valeur sur la partie DROITE('Volumes (2)'!$B$4:$B$177;
La fonction DROITE n'est peut être pas adaptée à un plage de cellules ?

J'espère pouvoir sortir une formule avec l'enregistreur de macros...

=INDEX('Volumes (2)'!K$4:K$177;EQUIV(DROITE($B188;4);DROITE('Volumes
(2)'!$B$4:$B$177;4);0))

Merci à tous les deux (je vous enverrais le résultat, ca peut toujours
servir...



Sinon, j'ai plus simple :
je sais utiliser index et equiv mais pas comparer les 4 dernièrs chiffres
d'une cellule dans la barre de formules. Peux-tu me dire quel type de
fonctions fait cela et je me débrouillerais avec l'enregistreur de macros.

Merci...


Bonjour,
pour une formule à droite du code à 4 chiffres et des plages en B2:B22 et
A2:A22 :
Selection.FormulaArray = _
"=INDEX(R2C2:R22C2,MATCH(RC[-2],VALUE(RIGHT(R2C1:R22C1,4)),0))"

Camille

"Ricou" wrote:

Bonjour,

voici la situaton. J'ai une base de données dans laquelle, à chaque réf,
correspond un code ainsi constitué : Deux lettres, espace, 4 chiffres
Est-il possible de faire un VLookup en BVA uniquement sur les 4 chiffres du
code?
En effet, d'une fois sur l'autre, seules les lettres peuvent changer.

Je pensais par exemple :créer une variable "Code" dans VBA qui aurait pour
valeur les 4 chiffres de la cellule puis lancer un VLookup sur cette variable.

Merci d'avance...