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

Le
guil182
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.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #22455081
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.
DanielCo
Le #22455391
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.
LSteph
Le #22458471
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
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.
Publicité
Poster une réponse
Anonyme