Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Recherche sous chaîne à partir d'une plage.

3 réponses
Avatar
guil182
Bonjour,
Je me permets de venir vers vous car apr=E8s de nombreuses lectures, je
bloque.....

Voici ce que je souhaite faire :

J'ai une feuille "feuil1" ainsi :

A
B C D
Wine
Producer Wine Appellation
Ch=E2teau d'Esclans C=F4tes de Provence Ros=E9 Les Clans


Et sur une autre feuille, "feuil2" , j'ai la liste des appellations :

A B
Pays Appellations
France Tavel
France Coteaux du Languedoc
France C=F4tes de Provence
France Vouvray

Voici l'algo :

Pour chaque ligne de feuil1
Recherche de la sous-chaine "appellation" dans ColA(i) en
fonction de la colonne B de feuil2
Si trouv=E9
Si "Ros=E9" apr=E8s l'appellation, je supprime "Ros=E9"
Sous chaine =E0 gauche de l'appellation feuil1.colA(i) -> dans
feuil1.colB(i)
Sous chaine =E0 droite de l'appellation feuil1.colA(i) -> dans
feuil1.colC(i)
Sous feuil2.colB (appellation trouv=E9e=3D) -> dans feuil1.colD(i)

boucle

En clair, le r=E9sultat serait :

A
B C D
Wine
Producer Wine Appellation
Ch=E2teau d'Esclans C=F4tes de Provence Ros=E9 Les Clans Ch=E2teau
d'Esclans Les Clans C=F4tes de Provence

Mais je n'arrive m=EAme pas a faire la recherche en fonction de la liste
en feuil2...

Merci d'avance de votre aide.

3 réponses

Avatar
isabelle
bonjour guil,

la disposition des données tel que présentée dans ce mail n'est pas très clair,
si tu pouvais mettre un lien pointant sur un fichier excel, cela serait plus visible.

tu peut dépose ton fichier ici : http://www.cjoint.com ou bien http://www.cijoint.fr/

et revient ici, donner le lien de téléchargement que le site va générer.
nous pourrons alors le télécharger.

isabelle


Le 2010-08-09 08:55, guil182 a écrit :
Bonjour,
Je me permets de venir vers vous car après de nombreuses lectures, je
bloque.....

Voici ce que je souhaite faire :

J'ai une feuille "feuil1" ainsi :

A
B C D
Wine
Producer Wine Appellation
Château d'Esclans Côtes de Provence Rosé Les Clans


Et sur une autre feuille, "feuil2" , j'ai la liste des appellations :

A B
Pays Appellations
France Tavel
France Coteaux du Languedoc
France Côtes de Provence
France Vouvray

Voici l'algo :

Pour chaque ligne de feuil1
Recherche de la sous-chaine "appellation" dans ColA(i) en
fonction de la colonne B de feuil2
Si trouvé
Si "Rosé" après l'appellation, je supprime "Rosé"
Sous chaine à gauche de l'appellation feuil1.colA(i) -> dans
feuil1.colB(i)
Sous chaine à droite de l'appellation feuil1.colA(i) -> dans
feuil1.colC(i)
Sous feuil2.colB (appellation trouvée=) -> dans feuil1.colD(i)

boucle

En clair, le résultat serait :

A
B C D
Wine
Producer Wine Appellation
Château d'Esclans Côtes de Provence Rosé Les Clans Château
d'Esclans Les Clans Côtes de Provence

Mais je n'arrive même pas a faire la recherche en fonction de la liste
en feuil2...

Merci d'avance de votre aide.
Avatar
DanielCo
Bonjour.
Peut-être :

Sub test()
Dim c As Range
Dim sh As Worksheet
Set sh = Sheets("Feuil1")
With Sheets("Feuil2")
For i = 2 To sh.[D65536].End(xlUp).Row
For Each c In Range(.[B2], .[B65536].End(xlUp))
Set x = [Feuil1!D:D].Find(c.Value)
If Not x Is Nothing Then
txt = WorksheetFunction.Substitute(x.Value, c.Value, "")
pos = InStr(1, LCase(sh.Cells(i, 4)), " rosé ")
If pos > 0 Then
txt = WorksheetFunction.Substitute(x.Value, " rosé ",
"")
txt = WorksheetFunction.Substitute(x.Value, " Rosé ",
"")
sh.Cells(x.Row, 2) = Left(txt, pos - 1)
sh.Cells(x.Row, 1) = Right(txt, Len(txt) - pos + 1)
End If
sh.Cells(x.Row, 4) = c.Value
End If
Next c
Next i
End With
End Sub

Cordialement.
Daniel


Bonjour,
Je me permets de venir vers vous car après de nombreuses lectures, je
bloque.....

Voici ce que je souhaite faire :

J'ai une feuille "feuil1" ainsi :

A
B C D
Wine
Producer Wine Appellation
Château d'Esclans Côtes de Provence Rosé Les Clans


Et sur une autre feuille, "feuil2" , j'ai la liste des appellations :

A B
Pays Appellations
France Tavel
France Coteaux du Languedoc
France Côtes de Provence
France Vouvray

Voici l'algo :

Pour chaque ligne de feuil1
Recherche de la sous-chaine "appellation" dans ColA(i) en
fonction de la colonne B de feuil2
Si trouvé
Si "Rosé" après l'appellation, je supprime "Rosé"
Sous chaine à gauche de l'appellation feuil1.colA(i) -> dans
feuil1.colB(i)
Sous chaine à droite de l'appellation feuil1.colA(i) -> dans
feuil1.colC(i)
Sous feuil2.colB (appellation trouvée=) -> dans feuil1.colD(i)

boucle

En clair, le résultat serait :

A
B C D
Wine
Producer Wine Appellation
Château d'Esclans Côtes de Provence Rosé Les Clans Château
d'Esclans Les Clans Côtes de Provence

Mais je n'arrive même pas a faire la recherche en fonction de la liste
en feuil2...

Merci d'avance de votre aide.
Avatar
LSteph
Bonjour,

Ce que tu veux en sortie tel que ne me semble pas du tout limpide
pour rejoindre le propos d'Isabelle.

Mais plus prioritairement il me semble que ces vins (au moins dans
les Côte de Provence j'en suis sûr
il y en a d'excellents) pourraient être aussi en Rouge ou en Blanc...

si c'est donc la couleur qui doit être éradiquée attention aux
Bordeaux car si pour peu
tu avais un Chateau Cheval Blanc (qui en fait pourrait être Rouge)
risquerait de devenir un simple Cheval

Non pas que je cherche à couper les "chevaux" en quatre mais jongler
ainsi avec des libellés est bien souvent hasardeux.

A ta place je me constituerais plutôt une liste exhaustive des
libellés qu'on est sensé pouvior trouver
avec dans la colonne adjacente la correpondance qu'on voudrait en
faire.
Cela me servirait de table de correspondance. Ensuite un recherchev ou
index Equiv ferait l'affaire.

Cordialement.

--
LSteph


On 9 août, 14:55, guil182 wrote:
Bonjour,
Je me permets de venir vers vous car après de nombreuses lectures, je
bloque.....

Voici ce que je souhaite faire :

J'ai une feuille "feuil1" ainsi :

A
B                  C             D
Wine
Producer        Wine    Appellation
Château d'Esclans Côtes de Provence Rosé Les Clans

Et sur une autre feuille, "feuil2" , j'ai la liste des appellations :

A             B
Pays        Appellations
France  Tavel
France  Coteaux du Languedoc
France  Côtes de Provence
France  Vouvray

Voici l'algo :

Pour chaque ligne de feuil1
     Recherche de la sous-chaine "appellation" dans ColA(i) en
fonction de la colonne B de feuil2
     Si trouvé
        Si "Rosé" après l'appellation, je supprime "Rosé"
        Sous chaine à gauche de l'appellation feuil1.colA(i) -> dans
feuil1.colB(i)
        Sous chaine à droite de l'appellation feuil1.colA(i) -> dans
feuil1.colC(i)
        Sous feuil2.colB (appellation trouvée=) -> dans feuil 1.colD(i)

boucle

En clair, le résultat serait :

A
B                               C                  D
Wine
Producer                    Wine                 Appellation
Château d'Esclans Côtes de Provence Rosé Les Clans    Château
d'Esclans            Les Clans     Côtes de Provence

Mais je n'arrive même pas a faire la recherche en fonction de la liste
en feuil2...

Merci d'avance de votre aide.