problème avec rechercheV

  • Initiateur de la discussion Initiateur de la discussion Monique
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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

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
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
716
Retour