Résultat dans colonne et pas ligne
Pierre
-
Frenchie83 Messages postés 2254 Statut Membre -
Frenchie83 Messages postés 2254 Statut Membre -
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?
EDIT: Ajout de la coloration syntaxique.
Merci de votre aide
Pierre
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:
- Résultat dans colonne et pas ligne
- Déplacer colonne excel - Guide
- Trier colonne excel - Guide
- Partager photos en ligne - Guide
- Resultat foot - Télécharger - Vie quotidienne
- Colonne word - Guide
5 réponses
Bonjour
Difficile de vous aider sans voir la construction de votre fichier.
Cependant je vous propose ceci sans garantie du fonctionnement
A tester
Cdlt
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
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
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
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question