Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

problème avec rechercheV

M

Monique

Guest
Re,

Si tu parles du tableau qui est en E11:F14 de la feuille 2,
il n'est là qu'à titre d'information.

Dans ton fichier, j'ai donné des noms à des plages de cellules.
Au lieu d'avoir quelque chose dans ce style :
=RECHERCHEV(A$17;Feuil1!A$2:B$5000;2;0)
tu as :
=RECHERCHEV(A$17;Table;2;0)

Pour donner un nom à une ou des cellules :
sélectionner les cellules puis
barre de menu - Insertion - Nom - Définir
En haut, tu tapes le nom choisi,
en bas, tu as les références, que tu peux modifier par la suite.

Dans le fichier joint, les plages sont nommées jusqu'à la ligne 5000
Tu en as une en plus : le tableau de recherche des prix selon les références.

La formule Decaler() : elle décale la plage de recherche
DECALER( réf de la plage; nb de lignes ; nb de colonnes )
Pour toi, il n'y a qu'un décalage de lignes :
DECALER( réf de la plage; nb de lignes ; 0 )
ou bien :
DECALER( réf de la plage; nb de lignes ; )
 

Pièces jointes

  • RecherchePhilouV1.zip
    6.4 KB · Affichages: 22
P

Philou

Guest
Bonjour à toutes et tous,

Un simple prob de récupération de données en utilisant RECHERCHEV.
J'ai mis un fichier exemple ( ça évite des longs discours ).

Un grand merci à celle ou celui qui pourra m'aider.


Philou
 

Pièces jointes

  • test.zip
    3.1 KB · Affichages: 19
  • test.zip
    3.1 KB · Affichages: 21
  • test.zip
    3.1 KB · Affichages: 20
P

Philou

Guest
Merci Monique,

Bon, en bref, j'ai compris la formule qu'à moitié. J'ai tenté de la mettre en application dans mon classeur définitif, mais..
Je ne trouve pas le moyen de faire une recherche plus loin que la ligne 20 dans la base de données '( faut savoir qu'il va y avoir plus ou moins 3000 articles repris dans cette bas, avec les prix achat et prix de ventes ).
J'ai bien tenté de modifier le nombre se trouvant dans le petit tableau en feuil2.... mais marche pas.
j'aurais bien besoin d'un petit complément d'information afin d'y comprendre quelques chose.

Merci d'avance.

ps. s'il y avait même moyen de simplifier ( si possible ), ou une autre idée...


Philou
 
R

Robert

Guest
Salut Philou, salut Monique, salut le forum,

Comme je suis nul en formules voici une autre solution à l'aide du VBA. Codes à copier dans l'éditeur de Visual Basic [Alt]+[F11] à la Feuil2.


Private Sub Worksheet_Change(ByVal Target As Range)
Dim cel As Range
Dim pag As Long
If Not Application.Intersect(Target, Range("A17")) Is Nothing Then
pag = Target.Value
Range("B17:B2000").ClearContents
If pag = 0 Then Exit Sub
For Each cel In Sheets(1).Range("A2:A2000")
If cel.Value = pag Then
If Sheets(2).Range("B17").Value = "" Then
cel.Offset(0, 1).Copy Destination:=Sheets(2).Range("B17")
Else
cel.Offset(0, 1).Copy Destination:=Sheets(2).Range("B65536").End(xlUp).Offset(1, 0)
End If
End If
Next cel
End If
End Sub

À plus,

Robert
 
P

Philou

Guest
Bonjour Robert,

Je viens de mettre en application ton code VBA, pas de prob, ça marche impec.

Je mets ça bien au chaud pour une autre application.

Grand merci à celle(s) et ceux qui se sont penchés sur mon prob.


Philou
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…