Recuperation d'un texte d une cellule pour une RECHERCHEH

bonjour,

je viens vers vous pour de l'aide.

je cherche à trouver une macro qui me permette en fonction de la valeur dans la cellule b3 (une liste box)

d'effectuer :

=RECHERCHEH(1;"tableau du meme nom que la liste box";2).

en gros lorsque je selectionne "floride" en B3

je voudrais qu en B6 D6 etc s'affiche les valeurs du tableau nommé FLORIDE situé sur onglet "base".

merci de votre aide d'avance

13fishing-clash.xlsx (15.67 Ko)

Bonjour coycoy13,

à tester,

Sub test()
  With Sheets("Feuil1")
    Set plg = Range(.Range("A3").Value)
    For i = 1 To plg.Columns.Count Step 2
         n = n + 1
        .Cells(6, i + 1) = plg(2, n).Value
    Next i
  End With
End Sub

merci c'est un bon début mais j essaye de comprendre comment cela fonctionne vraiment car en effet cela marche

merci en tout cas de l'aide même si cela ne se fait pas de suite à la sélection de la liste box.

après ceci s'arrête à la 10 -ème valeur du tableau qui en comporte 19 .

pourquoi.

re,

cela ne se fait pas de suite à la sélection de la liste box.

si ListBox est un Control ActiveX, utilise l'événement Click de celle-ci

par exemple:

sur la page code de la feuille ou est le ListBox

Private Sub ListBox1_Click()
Call test
End Sub

Sub test()
n = 2
  With Sheets("Feuil1")
    Set plg = Range(.Range("A3").Value)
    For i = 1 To plg.Columns.Count
        .Cells(6, n) = plg(2, i).Value
         n = n + 2
    Next i
  End With
End Sub

merci i20100 pour ton aide.

en effet maintenant cela rempli bien toutes les colonnes peux tu m expliquer comment cela marche

car je ne comprend pas bien toutes les commandes .

re,

dit moi si mes explications sont compréhensible ?

Sub test()
n = 2
  With Sheets("Feuil1")
    Set plg = Range(.Range("A3").Value)       'Attribue à la variable plg à la plage du nom contenu à  .Range("A3")
    For i = 1 To plg.Columns.Count                ' boucle de la 1ère colonne de la plage plg jusqu'à la dernière colonne (D à V)
        .Cells(6, n) = plg(2, i).Value                    ' n = 2   i  = 1   donc cellule B6   est  = cellule D3  (1ère colonne de plg, 2èm ligne)
         n = n + 2                                                   ' increment n par 2 --> n = 4  et donc  D6
    Next i
  End With
End Sub

oui merci i20100 entre temps j'ai decortiqué et compris le principe.

merci pour ton aide encore.

Bonsoir au forum ! I20100

Bienvenue @ vous coycoy !

Ici vous verrez, on trouve souvent les réponses aux questions que l'on se pose !

Même s'il s'agit de cuisine !

@ bientôt

LouReeD

Bonjour,

je suis de bonne humeur ce matin, il y a des matins comme ça... Hoy Hoy Hoy UUU U !

Ci joint votre fichier sans "macro" (évidemment je ne parle pas des poissons ! ) :

Sur votre feuille Base, suppression des différentes lignes qui en fait n'étaient que des entêtes qui se répétées... Du coup une ligne d'entête (et une seule) qui va de "Type" à 19.

Une colonne de "Type" avec Floride, Gunter etc...

L'ensemble est "aggloméré" dans un tableau structuré sous Excel (grâce à l'outil "insertion tableau"), tableau qui porte le nom de "Tableau1"

Sur votre première feuille, la liste de choix, en validation de donnée, j'ai mis la référence des données de la colonne "Type" du "tableau1", l'avantage si vous ajoutez un item à cette colonne, alors il sera ajouté automatiquement dans la liste de choix.

Ensuite j'ai mis en place une série de formule, comme vous aviez essayé de faire, à savoir RECHERCHE, mais là où vous aviez mis un "H", il fallait mettre un "V" car le "type" de votre liste de choix est en "Vertical" dans votre tableau.

Structure de la fonction RECHERCHEV pour mémoire :

RECHERCHEV( valeur_cherchée ; Tableau "complet" pour la recherche ; numéro de colonne dont on doit renvoyer la valeur ; recherche de valeur exacte dans la colonne de droite ? )

Dans votre cas : RECHERCHEV( la valeur de la cellule A2 ; dans le tableau complet "Tableau1" ; pour la première formule on renvoi la valeur se trouvant en colonne 2 de ce tableau ; on fait une recherche de la valeur de la cellule A2 exact donc Faux ou 0)

Ce qui donne dans le fichier : =RECHERCHEV($A$2;Tableau1;2;Faux)

Le petit soucis c'est que les données de la troisième colonne doivent être "affichées" en 4ième colonne du au fait du décalage d'une colonne à chaque nouvelle formule...

Pour éviter d'écrire la formule à chaque fois, il suffit d'intégrer une petite formule à la place du "2" afin d'opérer ce décalage par "mathématique" :

on a en colonne d'arrivée B (colonne 2 de la feuille Excel) pour une donnée en colonne 2 du tableau, on a en colonne d'arrivée D(colonne 4 de la feuille Excel) une donnée en colonne 3 du tableau etc...

Donc 2 pour 2, 4 pour 3, 6 pour 4 etc....

Une fonction sous Excel existe qui permet de connaître le numéro de colonne où se trouve cette fonction : COLONNE()

si en colonne E vous écrivez =COLONNE(), alors la cellule revoie 5

Donc pour la première formule en B4, COLONNE() renvoie 2, nickel , non ? Et bien non car si on recopie cette formule en colonne D cela va nous renvoyer 4 au lieu de 3, donc la formule est : =COLONNE()/2 + 1

en colonne B cela donne : =2/2 + 1 = 2, et en colonne D cela donne : 4/2+1 = 3 et en colonne F : =6/2+1 = 4 !

Le tour est joué, il suffit d'écrire la formule une fois en colonne B, puis de faire un copier/coller sur les 18 autres colonnes et la formule "se mettra à jour" pour la recherche des données !

Formule finale du fichier : =RECHERCHEV($A$3;Tableau1;COLONNE()/2+1;FAUX)

@ bientôt

LouReeD

Merci loureed pour toutes ces explications.

je vois qu'il me reste beaucoup de choses à apprendre encore.........

mais après cette explication un petit peu moins bête.

merci aussi à i20100 pour son aide

Merci pour vos remerciements !

Mais au vu de votre fichier peut être devrez vous revenir nous voir...

@ bientôt

LouReeD

Rechercher des sujets similaires à "recuperation texte rechercheh"