XL 2021 RechercheV avec 4 critères (vba)

  • Initiateur de la discussion Initiateur de la discussion YohanSC
  • 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 !

YohanSC

XLDnaute Nouveau
Bonjour,

J'ai un problème de compréhension sur une écriture VBA pour rechercher sur base de plusieurs critères .
Est-ce que je dois utiliser une autre méthode que rechercheV?
Voici le code qui fonctionne avec une variable mais j'aimerais afficher la valeur sur base de 4 variables et dès qu'il trouve un concordance il affiche la bonne valeur ou il se rapproche le plus de la valeur3 :

Set myrange0 = ThisWorkbook.Sheets("Données").Range("A1:F1000")
Set valeur0 = Range("B2")
Set valeur1 = Range("B3")
Set valeur2 = Range("B4")
Set valeur3 = Range("B5")

Set recherche = Range("A9")

recherche.Value = Application.WorksheetFunction.VLookup(valeur & valeur1, myrange0, 6, False)

Fonction Match peut-etre?

Merci de votre aide

Yohan
 
Re,
Un essai en PJ avec une fonction perso :
VB:
Function Recherche4(Source, Plage)
Recherche4 = "": Dim i%, Tablo, Critères
Tablo = Source: Critères = Plage
For i = 1 To UBound(Tablo)
    If Tablo(i, 1) = Critères(1, 1) And Tablo(i, 2) = Critères(2, 1) And _
        Tablo(i, 3) = Critères(3, 1) And Tablo(i, 4) = Critères(4, 1) Then
        Recherche4 = Tablo(i, 6)
        Exit Function
    End If
Next i
End Function
la synatxe est : '=Recherche4(Plage de données;Plage de critères)
 

Pièces jointes

Je suis occupé d'avancer dans le classeur pour la sauvegarde et je coince dans le copier/coller.
Pourquoi?
Car je copie des valeurs en colonne pour les mettre en ligne à la suite en colonne "A".

Je souhaiterais conserver la mise en page mais pas possible de copier/coller ""colonnes"" vers ""lignes"".

Dim wsCopy As Worksheet
Dim wsDest As Worksheet
Dim lDestLastRow As Long

Set wsCopy = Sheets("Feuil1")
Set wsDest = Sheets("Données")

lDestLastRow = wsDest.Cells(wsDest.Rows.Count, "A").End(xlUp).Offset(1).Row
wsCopy.Range("B2:B7").Copy
wsDest.Range("A" & lDestLastRow).PasteSpecial Paste:=xlPasteValuesAndNumberFormats


Merci encore ...
 

Pièces jointes

- 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

Discussions similaires

Retour