Je souhaiterais pouvoir analyser de façon répétitive la présence de mots
clés contenus dans un fichier EXCEL A figé (sous forme d'une liste) dans un
fichier EXCEL B qui contient une liste d'expressions textuelles.
Je pense automatiser la recherche en prenant un à un les mots clés contenus
dans le fichier A et en utilisant la fonction rechercher dans le fichier B.
Si le mot clé est contenu dans la chaine de caractère, placer une valeur à 1
dans la colonne à coté de la chaine de caractères, sinon continuer...
Qui pourrait m'aider a construire cette automatisation???
Un grand merci d'avance!!!
Exemple:
Fichier A de mots clés
immeuble
maison
voiture
Fichier B d'expressions textuelles
l'immeuble est situé en ville
un accident de voiture
la caravane passe sous l'immeuble
la voiture rouge
Le résultat serait le fichier B modifié de la façon suivante:
l'immeuble est situé en ville 1
un accident de voiture 1
La caravane passe 0
la voiture passe sous l'immeuble 1
la voiture rouge 1
Les fraises sont bonnes 0
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
FxM
Fichier A de mots clés immeuble maison voiture
Fichier B d'expressions textuelles l'immeuble est situé en ville un accident de voiture la caravane passe sous l'immeuble la voiture rouge
Le résultat serait le fichier B modifié de la façon suivante: l'immeuble est situé en ville 1 un accident de voiture 1 La caravane passe 0 la voiture passe sous l'immeuble 1 la voiture rouge 1 Les fraises sont bonnes 0
Bonjour,
Un exemple non testé dont tu peux t'inspirer : - double boucle a et b - recherche de concordance par instr à partir d'Excel 2000
Sub test() for each a in workbooks("A").range("Liste") for each b in workbooks("B").range("phrases") if instr(1,b,a)>0 then Workbboks("B").range(b.address).offset(0,1)="1" end if next b next a end sub
@+ FxM
Fichier A de mots clés
immeuble
maison
voiture
Fichier B d'expressions textuelles
l'immeuble est situé en ville
un accident de voiture
la caravane passe sous l'immeuble
la voiture rouge
Le résultat serait le fichier B modifié de la façon suivante:
l'immeuble est situé en ville 1
un accident de voiture 1
La caravane passe 0
la voiture passe sous l'immeuble 1
la voiture rouge 1
Les fraises sont bonnes 0
Bonjour,
Un exemple non testé dont tu peux t'inspirer :
- double boucle a et b
- recherche de concordance par instr à partir d'Excel 2000
Sub test()
for each a in workbooks("A").range("Liste")
for each b in workbooks("B").range("phrases")
if instr(1,b,a)>0 then
Workbboks("B").range(b.address).offset(0,1)="1"
end if
next b
next a
end sub
Fichier B d'expressions textuelles l'immeuble est situé en ville un accident de voiture la caravane passe sous l'immeuble la voiture rouge
Le résultat serait le fichier B modifié de la façon suivante: l'immeuble est situé en ville 1 un accident de voiture 1 La caravane passe 0 la voiture passe sous l'immeuble 1 la voiture rouge 1 Les fraises sont bonnes 0
Bonjour,
Un exemple non testé dont tu peux t'inspirer : - double boucle a et b - recherche de concordance par instr à partir d'Excel 2000
Sub test() for each a in workbooks("A").range("Liste") for each b in workbooks("B").range("phrases") if instr(1,b,a)>0 then Workbboks("B").range(b.address).offset(0,1)="1" end if next b next a end sub
@+ FxM
AV
Sous réserve que les 2 fichiers "A" et "B" soient ouverts et avec plages nommées :
Sub zz_Vérif2() For Each c1 In Range("B.xls!Phrases") For Each c2 In Range("A.xls!Mots"): x = Chr(34) z = Evaluate("isnumber(search(" & x & c2 & x & ", " & x & [c1] & x & "))") c1.Range("B1") = Abs(z): If Abs(z) = 1 Then Exit For Next c2 Next c1 End Sub
AV
"O J" a écrit dans le message news: 3f228447$0$1807$
Bonjour,
Je souhaiterais pouvoir analyser de façon répétitive la présence de mots clés contenus dans un fichier EXCEL A figé (sous forme d'une liste) dans un fichier EXCEL B qui contient une liste d'expressions textuelles.
Je pense automatiser la recherche en prenant un à un les mots clés contenus dans le fichier A et en utilisant la fonction rechercher dans le fichier B. Si le mot clé est contenu dans la chaine de caractère, placer une valeur à 1 dans la colonne à coté de la chaine de caractères, sinon continuer...
Qui pourrait m'aider a construire cette automatisation???
Un grand merci d'avance!!!
Exemple:
Fichier A de mots clés immeuble maison voiture
Fichier B d'expressions textuelles l'immeuble est situé en ville un accident de voiture la caravane passe sous l'immeuble la voiture rouge
Le résultat serait le fichier B modifié de la façon suivante: l'immeuble est situé en ville 1 un accident de voiture 1 La caravane passe 0 la voiture passe sous l'immeuble 1 la voiture rouge 1 Les fraises sont bonnes 0
Sous réserve que les 2 fichiers "A" et "B" soient ouverts et avec plages nommées
:
Sub zz_Vérif2()
For Each c1 In Range("B.xls!Phrases")
For Each c2 In Range("A.xls!Mots"): x = Chr(34)
z = Evaluate("isnumber(search(" & x & c2 & x & ", " & x & [c1] & x &
"))")
c1.Range("B1") = Abs(z): If Abs(z) = 1 Then Exit For
Next c2
Next c1
End Sub
AV
"O J" <ojabo@free.fr> a écrit dans le message news:
3f228447$0$1807$626a54ce@news.free.fr...
Bonjour,
Je souhaiterais pouvoir analyser de façon répétitive la présence de mots
clés contenus dans un fichier EXCEL A figé (sous forme d'une liste) dans un
fichier EXCEL B qui contient une liste d'expressions textuelles.
Je pense automatiser la recherche en prenant un à un les mots clés contenus
dans le fichier A et en utilisant la fonction rechercher dans le fichier B.
Si le mot clé est contenu dans la chaine de caractère, placer une valeur à 1
dans la colonne à coté de la chaine de caractères, sinon continuer...
Qui pourrait m'aider a construire cette automatisation???
Un grand merci d'avance!!!
Exemple:
Fichier A de mots clés
immeuble
maison
voiture
Fichier B d'expressions textuelles
l'immeuble est situé en ville
un accident de voiture
la caravane passe sous l'immeuble
la voiture rouge
Le résultat serait le fichier B modifié de la façon suivante:
l'immeuble est situé en ville 1
un accident de voiture 1
La caravane passe 0
la voiture passe sous l'immeuble 1
la voiture rouge 1
Les fraises sont bonnes 0
Sous réserve que les 2 fichiers "A" et "B" soient ouverts et avec plages nommées :
Sub zz_Vérif2() For Each c1 In Range("B.xls!Phrases") For Each c2 In Range("A.xls!Mots"): x = Chr(34) z = Evaluate("isnumber(search(" & x & c2 & x & ", " & x & [c1] & x & "))") c1.Range("B1") = Abs(z): If Abs(z) = 1 Then Exit For Next c2 Next c1 End Sub
AV
"O J" a écrit dans le message news: 3f228447$0$1807$
Bonjour,
Je souhaiterais pouvoir analyser de façon répétitive la présence de mots clés contenus dans un fichier EXCEL A figé (sous forme d'une liste) dans un fichier EXCEL B qui contient une liste d'expressions textuelles.
Je pense automatiser la recherche en prenant un à un les mots clés contenus dans le fichier A et en utilisant la fonction rechercher dans le fichier B. Si le mot clé est contenu dans la chaine de caractère, placer une valeur à 1 dans la colonne à coté de la chaine de caractères, sinon continuer...
Qui pourrait m'aider a construire cette automatisation???
Un grand merci d'avance!!!
Exemple:
Fichier A de mots clés immeuble maison voiture
Fichier B d'expressions textuelles l'immeuble est situé en ville un accident de voiture la caravane passe sous l'immeuble la voiture rouge
Le résultat serait le fichier B modifié de la façon suivante: l'immeuble est situé en ville 1 un accident de voiture 1 La caravane passe 0 la voiture passe sous l'immeuble 1 la voiture rouge 1 Les fraises sont bonnes 0
Daniel.M
Bonjour,
Une autre manière qui enlève une boucle explicite.
Sub Macro1() Dim s$ s = "A.xls!Mots" With Range("Phrases").Offset(0, 1) .Item(1, 1).FormulaArray = "=N(OR(ISNUMBER(SEARCH(" & s & ",RC[-1]))))" .Item(1, 1).AutoFill Destination:=.Offset(0, 0) .Value = .Value End With End Sub
Salutations,
Daniel M.
"O J" wrote in message news:3f230559$0$22126$
"FxM" a écrit dans le message de news:
Fichier A de mots clés immeuble maison voiture
Fichier B d'expressions textuelles l'immeuble est situé en ville un accident de voiture la caravane passe sous l'immeuble la voiture rouge
Le résultat serait le fichier B modifié de la façon suivante: l'immeuble est situé en ville 1 un accident de voiture 1 La caravane passe 0 la voiture passe sous l'immeuble 1 la voiture rouge 1 Les fraises sont bonnes 0
Bonjour,
Un exemple non testé dont tu peux t'inspirer : - double boucle a et b - recherche de concordance par instr à partir d'Excel 2000
Sub test() for each a in workbooks("A").range("Liste") for each b in workbooks("B").range("phrases") if instr(1,b,a)>0 then Workbboks("B").range(b.address).offset(0,1)="1" end if next b next a end sub
@+ FxM
Merci pour votre réponse,
J'arrive en effet à mon objectif! Juste un point pour optimiser les boucles, car les calculs sont très longs... Pourrait-on utiliser la fonction rechercher qui s'applique sur toute la feuille, plutot que la fonction instr qui doit s'appliquer ligne par ligne... Dans ce cas quelle modification apporter au code? Peut être avez-vous une meilleur proposition que la fonction rechercher?
Encore une fois, merci pour votre aide ;-))
Bonjour,
Une autre manière qui enlève une boucle explicite.
Sub Macro1()
Dim s$
s = "A.xls!Mots"
With Range("Phrases").Offset(0, 1)
.Item(1, 1).FormulaArray = "=N(OR(ISNUMBER(SEARCH(" & s & ",RC[-1]))))"
.Item(1, 1).AutoFill Destination:=.Offset(0, 0)
.Value = .Value
End With
End Sub
Salutations,
Daniel M.
"O J" <ojabo@free.fr> wrote in message
news:3f230559$0$22126$626a54ce@news.free.fr...
"FxM" <fxmanceaux@chello.fr> a écrit dans le message de
news:ebypfu4UDHA.2360@TK2MSFTNGP10.phx.gbl...
Fichier A de mots clés
immeuble
maison
voiture
Fichier B d'expressions textuelles
l'immeuble est situé en ville
un accident de voiture
la caravane passe sous l'immeuble
la voiture rouge
Le résultat serait le fichier B modifié de la façon suivante:
l'immeuble est situé en ville 1
un accident de voiture 1
La caravane passe 0
la voiture passe sous l'immeuble 1
la voiture rouge 1
Les fraises sont bonnes 0
Bonjour,
Un exemple non testé dont tu peux t'inspirer :
- double boucle a et b
- recherche de concordance par instr à partir d'Excel 2000
Sub test()
for each a in workbooks("A").range("Liste")
for each b in workbooks("B").range("phrases")
if instr(1,b,a)>0 then
Workbboks("B").range(b.address).offset(0,1)="1"
end if
next b
next a
end sub
@+
FxM
Merci pour votre réponse,
J'arrive en effet à mon objectif!
Juste un point pour optimiser les boucles, car les calculs sont très
longs...
Pourrait-on utiliser la fonction rechercher qui s'applique sur toute la
feuille, plutot que la fonction instr qui doit s'appliquer ligne par
ligne... Dans ce cas quelle modification apporter au code? Peut être
avez-vous une meilleur proposition que la fonction rechercher?
Une autre manière qui enlève une boucle explicite.
Sub Macro1() Dim s$ s = "A.xls!Mots" With Range("Phrases").Offset(0, 1) .Item(1, 1).FormulaArray = "=N(OR(ISNUMBER(SEARCH(" & s & ",RC[-1]))))" .Item(1, 1).AutoFill Destination:=.Offset(0, 0) .Value = .Value End With End Sub
Salutations,
Daniel M.
"O J" wrote in message news:3f230559$0$22126$
"FxM" a écrit dans le message de news:
Fichier A de mots clés immeuble maison voiture
Fichier B d'expressions textuelles l'immeuble est situé en ville un accident de voiture la caravane passe sous l'immeuble la voiture rouge
Le résultat serait le fichier B modifié de la façon suivante: l'immeuble est situé en ville 1 un accident de voiture 1 La caravane passe 0 la voiture passe sous l'immeuble 1 la voiture rouge 1 Les fraises sont bonnes 0
Bonjour,
Un exemple non testé dont tu peux t'inspirer : - double boucle a et b - recherche de concordance par instr à partir d'Excel 2000
Sub test() for each a in workbooks("A").range("Liste") for each b in workbooks("B").range("phrases") if instr(1,b,a)>0 then Workbboks("B").range(b.address).offset(0,1)="1" end if next b next a end sub
@+ FxM
Merci pour votre réponse,
J'arrive en effet à mon objectif! Juste un point pour optimiser les boucles, car les calculs sont très longs... Pourrait-on utiliser la fonction rechercher qui s'applique sur toute la feuille, plutot que la fonction instr qui doit s'appliquer ligne par ligne... Dans ce cas quelle modification apporter au code? Peut être avez-vous une meilleur proposition que la fonction rechercher?