REcheche texte multi choix affiche valeur

Bonjour le forum

Je recherche une macro permetant de rechercher des mots dans une phrase en colonne A1 et de renvoyer une valeur prédéfinie en B1.

Les mots cherchés sont en colonne J et les valeurs à renvoyer sont en colonne K

J'ai fait un petit fichier illustrant mes propos

Quand ce sont des chiffres, j'utilise la fonction cherche, mais pour du texte?

Merci

11classeur1.xlsx (10.20 Ko)

Bonjour,

Essaie avec

Sub Test()
Dim Cel As Range, C As Range
    For Each Cel In Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)
          For Each C In Range("J2:J" & Range("J" & Rows.Count).End(xlUp).Row)
            If InStr(Cel, C) > 0 Then Cel.Offset(0, 1) = C.Offset(0, 1)
          Next C
    Next Cel
End Sub

A+

Bonjour eramond, frangy

une autre approche plus variable tableau utilisant aussi instr.

Sub pays()
    Dim a, c() As String
    Dim i%, j%, n%
    a = Feuil1.UsedRange
    ReDim c(UBound(a), 1)
    n = 0
    For j = 2 To UBound(a)
        For i = 2 To Feuil1.Range("j" & Rows.Count).End(xlUp).Row
            If InStr(1, a(j, 1), a(i, 10)) > 0 Then
                n = j - 1
                c(n, 1) = a(i, 11)
                Exit For
            End If
        Next
    Next

    Feuil1.[b2].Resize(UBound(c), 1) = c
End Sub

Merci à vous,

comment puis je faire si mes colonnes J et K sont sur une autre feuille et si je veux remonter les noms de pays en colonne C et non B?

Merci

Bonjour,

Tu peux par exemple joindre un fichier qui correspond à ta demande

A+

Bonjour

Voici donc le fichier

Je cherche a remplir la colonne C de la feuille Data avec les données comprise dans la feuille Work on.

Comment puis aussi gérer le cas de la ligne 6 du fichier data où je dois remonter la première valeur qu'il trouve ( dans ce cas FRance)?

Merci

9classeur1.xlsx (10.91 Ko)

Bonjour

Sub pays()
    Dim a, c() As String, pays As String
    Dim i%, j%, n%
    a = Feuil1.UsedRange
    b = Feuil2.UsedRange
    ReDim c(UBound(a), 1)
    n = 0
    For j = 2 To UBound(a)
        pays = ""
        For i = 2 To UBound(b)
            If InStr(1, a(j, 1), b(i, 1)) > 0 Then
                n = j - 1
                pays = pays & " " & b(i, 2)
                c(n, 1) = LTrim(pays)
            End If
        Next
    Next
    Feuil1.[c2].Resize(UBound(c), 1) = c
End Sub

Ah oups, pardon j'ai pas vu qu'il fallait supprimer la deuxième valeur...

Hello

Cela ne fonctionne pas rien ne s'affiche

Faut changer d'excel, en prendre un qui marche mieux

Oups autant pour moi, il faut rajouter option base 1en tête de module

Bonjour,

Ton fichier en retour.

A+

16classeur1.xlsm (19.81 Ko)

bonjour ;bonjour a tous

une petite contribution pour les privés de vba

6eramond.xlsx (11.41 Ko)

cordialement

Re-re-bonjour,

Notre ami Force rouge m'a fait très judicieusement remarqué un problème dans le cas où plusieurs villes sont notées dans le texte.

La ville retenue par le programme n'est pas celle qui apparait en premier dans le texte mais celle qui apparait en premier dans la liste.

Voici un correctif.

A+

10classeur1-2.xlsm (19.74 Ko)

J'ai riennnnnnnnnnnnnnnnnnnnnnnnn compris à ta macro! J'ai relu plusieurs fois, pas moyen de savoir comment sa fonctionne

Bon, explication de texte, alors !

Je prends l'exemple du texte "Je vis à Dublin et Paris"

Je balaye la liste des villes.

Première ville : Paris.

InStr renvoie la position de cette ville dans le texte (position 20).

Je mémorise cette position avec la variable MemoPos.

Deuxième ville : Dublin.

InStr renvoie la position de cette ville dans le texte (position 10).

Je compare cette position avec celle de la ville précédente.

Si elle est inférieure, je la mémorise avec la variable MemoPos et j'inscris le nom du pays correspondant dans la colonne C.

Au final, quand toutes les villes ont été balayées, MemoPos indique la position de la première ville et le pays correspondant est noté dans la colonne C.

A+

Ok je comprends mieux, J'ai un peu de mal à voir en 3D du premier coup avec l'indentation. Merci de l'explication. SI ça s'trouve ce n'est pas ce que voulais eramond mais c'est ce que j'avais compris, le premier "terme" , car de toute évidence, il n'y a pas de logique a vouloir le premier terme de la liste de critères donc c'était forcément sur la feuille data

Merci à vous 2

Pour mon info si je veux garder l'option de remonter les deux valeur en colonne C ( paris et dublin)

comment puis je faire?

merci encore

Remonter les deux valeurs en colonne C...

Ca veut dire quoi ?

Ca veut dire quoi Remonter deux valeurs ?

Edit : "Merci à vous 3" tulipe_4 a eu l'honneur de vous proposer aussi une solution...

Une adaptation pour deux villes

A+

11classeur1-3.xlsm (20.13 Ko)

Ahhhhhhhhhhhh c'est ça remonter....Merci frangy grace à toi j'ai compris ce que cela veut dire : remonter deux valeurs

Merci à vous tous

Quel est la commande pour que la macro tourne en permanance, en tache de fond?

Je cherche aussi à supprimer les doublons dans les cellules de destinations de la macro, comment puis je faire?

merci

Rechercher des sujets similaires à "recheche texte multi choix affiche valeur"