XL 2016 Trouver le premier nom d'une colonne en fonction du nom de la colonne

bennp

XLDnaute Occasionnel
Bonjour,

je souhaite retrouver les données précises d'un fichier xml, et les informations me sont données en décalé !

par exemple :

je cherche le premier nom qui est affiché dans ma colonne "Prénom"

L'idée est que je puisse trouver chaque premier résultat en tapant juste le nom de la colonne.


J'ai réussi à retrouver le 1er nom affiché : INDEX(Feuil2!1:1048576;EQUIV(VRAI;Feuil2!1:1048576<>"";0))

mais pas si je tape juste le nom de la colonne --> "Prénom"

Merci d'avance

Ben
 

Pièces jointes

  • Classeur1.xlsx
    9.4 KB · Affichages: 42

chris

XLDnaute Barbatruc
Bonjour

Ton classeur ne contient pas une formule qui fonctionne...

En matriciel
Code:
=INDEX(Feuil2!2:1000000;EQUIV(VRAI;DECALER(Feuil2!$A$1;1;EQUIV(Feuil1!$B$1;Feuil2!$1:$1;0)-1;1000000;1)<>"";0);EQUIV(Feuil1!$B$1;Feuil2!$1:$1;0))

Encore que je vois pas trop l'intérêt de chercher sur 1000000 de lignes et qu'une source sous forme de tableau faciliterait les choses...

Edit 2 : Avec la source sous forme de tableau
Code:
=INDEX(Tableau1;EQUIV(VRAI;INDIRECT("Tableau1["&B1&"]")<>"";0);EQUIV(Feuil1!$B$1;Tableau1[#En-têtes];0))
toujours en matricielle.


Edit : Salut vgendron, pas raffraichi...
 
Dernière édition:

bennp

XLDnaute Occasionnel
Merci pour vos réponses rapide !!,
je vais essayer de retranscrire vos GIGANTESQUE formules dans mon fichier :)

En tout cas tout fonctionne !

Ben
 

Pièces jointes

  • upload_2017-11-9_18-33-29.png
    upload_2017-11-9_18-33-29.png
    7.6 KB · Affichages: 42
  • upload_2017-11-9_18-34-50.png
    upload_2017-11-9_18-34-50.png
    7.6 KB · Affichages: 42

vgendron

XLDnaute Barbatruc
sinon, pour le fun
une fonction personnalisée (donc du VBA)
VB:
Function test()
Dim tablo() As Variant
Application.Volatile

Nom = Sheets("Feuil1").Range("B1") 'on récupère l'intitulé de la colonne à scruter

tablo = Sheets("Feuil2").UsedRange.Value 'on récupère l'ensemble des data de la feuille2
With Sheets("Feuil2").Rows(1)
    Set ligne = .Find(Nom, lookat:=xlWhole) 'on cherche ou se trouve l'intitulé
    If Not ligne Is Nothing Then
        col = ligne.Column 'on récupère son numéro de colonne qui sera aussi l'indice dans le tablo
    End If
End With

For i = 2 To UBound(tablo, 1) 'pour chaque ligne de la colonne "col" du tablo
    If tablo(i, col) <> "" Then 'si on a quelque chose -c'est donc le premier élément
        test = tablo(i, col) ' on renvoie l'élément
        Exit For 'et on quitte la boucle
    End If
Next i
End Function
 

bennp

XLDnaute Occasionnel
Bonjour,

j'ai un 2ème souci, je souhaiterais afficher en plus du premier nom de la colonne, le 2ème nom trouvé et ainsi de suite, pour un même prénom situé dans l'autre colonne. (voir feuille 3 et 4).

Merci de votre aide

Ben

Ps: juste par curiosité, pourquoi devrait-on utiliser du vba ou les formules directes, quel intérêt de choisir l'un ou l'autre ?
 

Pièces jointes

  • Classeur1 (1).xlsx
    12.2 KB · Affichages: 34

vgendron

XLDnaute Barbatruc
Hello
nouvelle proposition avec zone nommée "ColRecherche" qui s'adapte automatiquement en fonction du choix en B1 (Nom Prénom ou Adresse)
et la formule en B3 à tirer autant de fois que de nombre d'éléments que tu souhaites

VBA ou formule.. c'est je pense une question de gout
 

Pièces jointes

  • Classeur1 (1) (1).xlsx
    11.9 KB · Affichages: 44

bennp

XLDnaute Occasionnel
ok merci mais je pas sûr que ça puisse s'adapter à mon 2 ème exemple feuille 3 et 4

Je souhaite, pour un prénom donné, afficher la liste des fruits associé :

Robert

orange
pomme
fraise

Thierry

pomme
laine de verre

merci de votre aide
 

bennp

XLDnaute Occasionnel
J'ai fait un nouveau fichier pour que ce soit plus clair ! Je montre la liste des informations que je souhaite récupérer dans l'importation de mon fichier xml. J'ai franchement essayé de trouver tout seul avec les différentes propositions que vous m'avez donné mais je n'y arrive pas.

Dans la feuille 2, je montre comment je souhaite que les réponses s'affichent.

merci de votre aide SVP !!
 

Pièces jointes

  • traitement donnée xml.xlsx
    11.6 KB · Affichages: 38

bennp

XLDnaute Occasionnel
J'ai appuyé sur le bouton mais j'ai ce message d'erreur
upload_2017-11-13_17-36-57.png
 

bennp

XLDnaute Occasionnel
Ok merci ça fonctionne,

par contre ça devient trop compliqué pour moi en vba, surtout si je dois adapter beaucoup de résultats sous différentes formes. J'ai essayé d'adapter ton macro au 2ème tableau et j'ai pas réussi...N'y aurait-il pas une solution avec des formules ?
 

Discussions similaires

Statistiques des forums

Discussions
312 201
Messages
2 086 172
Membres
103 152
dernier inscrit
Karibu