Résultat dans colonne et pas ligne

Pierre -  
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
merci pour ce travaille super et j'aimerais savoir dans la fonction recherchVpolyvalente trouver sur ce site que faut il changer pour que les résulats soit horizontal ?je ne trouve pas dans la macro les changements a effectuer?

Option Explicit

'RD =cellule où commencer la recherche
'RC = cellule critère
'RDT = cellule où chercher la donnée
'Ligne rechercher jusque ligne... (optional) si 0 cherche jusqu'au bout de la ligne

Public Function RechercheVmulti(RD As Range, RC As Range, RDT As Range, _
            Optional Ligne As Long = 0)

Dim i As Integer, e As Integer, Txt As String
Dim LigE As Long, ColE As Long 'où écrire résultats
Dim Col As Integer
Dim Lig As Long, Occ As Long
Dim FeuilE As String, FeuilRD As String, FeuilRDT As String

    On Error GoTo sortie
    LigE = Application.Caller.Row
    ColE = Application.Caller.Column
    FeuilE = Application.Caller.Parent.Name
    Application.Volatile
    Lig = RD.Row ' Ligne où commencer la recherche
    Col = RD.Column 'Colonne où commencer la recherche
    FeuilRD = RD.Parent.Name
    FeuilRDT = RDT.Parent.Name
    If Ligne = 0 Then
        Ligne = Range(Sheets(FeuilRD).Cells(65536, Col), Sheets(FeuilRD).Cells(65536, Col)).End(xlUp).Row
    End If
    'Recherche le numéro de l'occurrence à trouver
    For Occ = LigE - 1 To 1 Step -1
        Txt = Sheets(FeuilE).Cells(Occ, ColE).Formula
        If Txt = Sheets(FeuilE).Cells(LigE, ColE).Formula Then
            e = e + 1
        End If
    Next Occ
    For i = Lig To Ligne
        If Sheets(FeuilRD).Cells(i, Col) = RC Then
            If e <> 0 Then
                e = e - 1
            Else
                RechercheVmulti = Sheets(FeuilRDT).Cells(i, RDT.Column)
                Exit Function
            End If
        End If
    Next i
    'Si plus trouvé de concordance
    RechercheVmulti = ""
Exit Function
sortie:
    'si erreur dans la formule, non détectée par Excel.
    RechercheVmulti = "#FAUTE!"
End Function

EDIT: Ajout de la coloration syntaxique.


Merci de votre aide
Pierre


A voir également:

5 réponses

Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
Bonjour
Difficile de vous aider sans voir la construction de votre fichier.
Cependant je vous propose ceci sans garantie du fonctionnement
A tester
'RD =cellule où commencer la recherche
'RC = cellule critère
'RDT = cellule où chercher la donnée
'Colonne rechercher jusque Colonne... (optional) si 0 cherche jusqu'au bout de la Colonne

Public Function RechercheHmulti(RD As Range, RC As Range, RDT As Range, Optional Colonne As Long = 0)
    Dim i As Integer, e As Integer, Txt As String
    Dim LigE As Long, ColE As Long 'où écrire résultats
    Dim Col As Integer
    Dim Lig As Long, Occ As Long
    Dim FeuilE As String, FeuilRD As String, FeuilRDT As String
    
    On Error GoTo sortie
    LigE = Application.Caller.Row
    ColE = Application.Caller.Column
    FeuilE = Application.Caller.Parent.Name
    Application.Volatile
    Lig = RD.Row ' Colonne où commencer la recherche
    Col = RD.Column 'Colonne où commencer la recherche
    FeuilRD = RD.Parent.Name
    FeuilRDT = RDT.Parent.Name
    If Colonne = 0 Then
        Colonne = Range(Sheets(FeuilRD).Cells(Lig, 1000), Sheets(FeuilRD).Cells(Lig, 1000)).End(xlToLeft).Column
    End If
    'Recherche le numéro de l'occurrence à trouver
    For Occ = ColE - 1 To 1 Step -1
        Txt = Sheets(FeuilE).Cells(LigE, Occ).Formula
        If Txt = Sheets(FeuilE).Cells(LigE, ColE).Formula Then
            e = e + 1
        End If
    Next Occ
    For i = Col To Colonne
        If Sheets(FeuilRD).Cells(Lig, i) = RC Then
            If e <> 0 Then
                e = e - 1
            Else
                RechercheHmulti = Sheets(FeuilRDT).Cells(RDT.Row, i)
                Exit Function
            End If
        End If
    Next i
    'Si plus trouvé de concordance
    RechercheHmulti = ""
    Exit Function
sortie:
    'si erreur dans la formule, non détectée par Excel.
    RechercheHmulti = "#FAUTE!"
End Function

Cdlt
0
Pierre
 
désolé de ma réponse tardive..je teste delà et je reviens vers vous


Merci
0
Pierre
 
Bonjour

Alors j'ai pu vérifier mais en faite ma demande était que les résulat s'affiche en ligne

je m'explique dans mon fichier plus haut les résultat s'affiche dans les cellule ou ce trouve ma fonction mais les cellule doivent être en collonne. ici j'aimerais que ma fonction soit sur une ligne que les résultat de la recherche ce place en ligne
0
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
Bonjour
Pour nous faciliter la tâche, pouvez-vous fournir un extrait de votre fichier sans données confidentielles, avec des commentaires sur les résultats attendus?
merci
cdlt
0
pierre
 
Merci de votre réponse voici un fichier pour voir plus clair, enfin j'espère
en clo A vous avez les donné recherché en col B les donné qui sont exrait en col C le critére pour le moment avec la fonction rechecherv polyvalente les résultat ne s'affiche que verticalement mais si je copie la fonction horizontelement celà ne va pas j'ai mis en jaune la zon ou je voudrais les résultats merci de votre aide

lien du fichier
http://www.cjoint.com/c/EFEfiGgW0lW
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
Bonjour
Remplacer ces 2 lignes
   
 LigE = Application.Caller.Row
 ColE = Application.Caller.Column

par
ColE = Application.Caller.Column
LigE = ColE - 2

cdlt
0