|
Publicité | ||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : février 2010 Messages : 4 ![]() |
Bonjour,
comme expliqué dans le titre, j'obtiens un résultat que je ne comprends en utilisant l'opérateur like. Pour simplifier : - j'ai d'un côté une liste d'individus contenant leur nom suivi de leur prénom complet ou abrégé (première lettre du prénom suivi d'un point). Cette liste est issue d'un autre fichier (copier/coller). - j'ai d'un autre côté un individu X identifié par son nom suivi de son prénom complet (non abrégé). Le but simplifié de la macro est de savoir si l'individu X apparaît dans la liste. Pour cela, j'utilise l'opérateur like mais le résultat n'est pas celui attendu : même lorsque l'individu X est dans la liste, le résultat est 'false'. Je joins à ma discussion un code simplifié. Merci d'avance pour votre aide. Dernière modification par idrysse31 ; 07/03/2010 à 14h50. Motif: Mauvais fichier joint |
|
|
00
|
|
|
#2 |
![]() ![]() |
Bonjour
Merci de mettre le code dans la discussion Tout le monde n'ouvre pas les fichiers Excel. Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon ![]() Si vous pensez commencer sans un livre, oublier : livres pour débuter Vous pouvez consulter mes articles sur Access et PowerPoint Le blog Office. Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas. |
|
|
00
|
|
|
#3 | ||
|
Membre Expert
![]() Inscription : décembre 2002 Messages : 1 281 ![]() |
bonjour idrysse31 Philippe le forum essai comme cela!!
Code :
__________________
SALUTATIONS
|
||
|
|
00
|
|
|
#4 | ||||
|
Invité de passage
![]() Inscription : février 2010 Messages : 4 ![]() |
Bonjour à tous,
Philippe, le code original est le suivant : Code :
Code :
|
||||
|
|
00
|
|
|
#5 | |||||||
|
Inactif
Inscription : février 2010 Messages : 517 ![]() |
Salut à toutes et tous,
J'ai lu : 1) les explications données, à savoir ; Citation:
Citation:
3) les réactions de idrysse31 : Citation:
- le code donné par laeticia ne peut fonctionner que si les "choses" sont les mêmes, en ce qui concerne les caractères présents dans les deux cas. Il ne le peut si "croche en pattes" - "croche en pattes" ?, c'est quoi, çà ? Cà, ce peut être le résultat du "copier-coller" dont il est parlé en 1, pardi ! Copier/coller comment et à partir de quoi ? Qui dit que ce copier/ coller ne contient pas, en lieu et place d'un espace (caractère 32), un tout autre caractère (tiens : au hasard : le caractère 160) Et alors là ? ===>> Ben ===>> le code de Laeticia "tomberait bien évidemment à l'eau"... Non , Laeticia ? ... N'est-ce pas ? Bon ... passons à du sérieux : 1) remplacer dans la liste copiée/collée le caractère 160 par le caracxtère 32 (qui, lui, semble être utilisé dans l'autre.... 2) essayer de traiter autrement : jouer sur l'espace : travailler avec un tableau dynamique pour alimenter un dictionnaire (Allez, Laeticia, vas-y : c'est la bonne voie). Utiliser ce dictionnaire pour chacun des articles de la deuxième liste. Moi, je vous laisse ici ('le reste est trop simple Ah ouui : Une manière de vérifier le bien fondé de mes suppositions : Code :
puis : Code :
Je parie que dans la deuxième figure le caractère 32 qui ne figure pas dans la 1ère ! Sans toutefois réellement le parier, je n'exclurais pas qu'on trouvera dans la 1ère le caractère 160 en lieu et place du caractère 322. Bon amusement à toutes et tous . |
|||||||
|
|
00
|
|
|
#6 | ||||||||
|
Inactif
Inscription : février 2010 Messages : 517 ![]() |
Voilà ce que je vous propose, sur la base de deux listes, l'une en colonne A et l'autre en colonne B.
Cette manière de procéder permet tout, dans les deux sens (y compris si certains prénoms sont également du type L. dans colonne B etr y compris si dans colonne B on trouve également des chr(160)) Code :
DURAND G. pourrait par exemple en effet correspondre tant à DURANG Georges, qu'à DURAND Gaston ou qu'à DURAND Gustave ! J'ai établi ce code sur l'hypothèse de présence de chr(160), que je pense probable. Il se pourrait toutefois que l'espace soit dans les faits représenté par un autre caractère. Le petit test que j'ai mis à la fin de mon message précédent permettra de le repérer, ce caractère, et de l'utiliser alors en lieu et place, dans mon code, du chr(160) Voilà. EDIT : si vous voulez en plus connaître la ligne de l'homonyme en colonne A, voilà comment modifier : Code :
EDIT IMPORTANT : Il n'est par ailleurs pas impossible que la présence d'un caractère de séparation (que je suppose être le chr(160)) ne résulte pas de l'origine d'un copier/coller, mais soit délibérée. Je m'explique : certains noms patronymiques pourraient être composés et sans tiret (Exemple : Mac ARTHUR). Un caractère spécial (probablement le chr(160) est alors quelquefois utilisé pour séparer le nom patronymique (qui, lui, peut contenir un véritable espace) et le prénom. Que convient-il de faire dans un tel cas ? remplacer dans mon code : Code :
Code :
Dernière modification par babaothe ; 08/03/2010 à 10h46. |
||||||||
|
|
00
|
|
|
#7 | |||
![]() ![]() Didier GONARDFormateur Développeur Office - indépendant Inscription : février 2008 Messages : 2 201 ![]() |
Bonjour,
Citation:
Si on en déduit que tu veux trouver les occurrences d'une chaîne données dans des plages de cellules diverses (ou non), il est très énergivore d'utiliser des boucles, surtout si les plages en questions peuvent être de grandes dimension. Faire appel à des commandes natives peut se révéler beaucoup plus rapide. Je te soumet un extrait brut d'un code d'une vieille appli de dvdthèque perso qui pourrait répondre à ton besoin. Il s'agit au moment de la création d'une nouvelle fiche de vérifier si elle n'existe pas déjà. Si on confirme que l'on veut garder la saisie, il continue à parcourir la base et signale chaque positif jusqu'à épuisement des données. Dans l'image ci-dessous, j'ai saisi manuellement la valeur de NR2 qui est la chaîne recherchée soit : "coups (les" et obtenu le résultat dans l'image. Si je supprime l'espace entre coups et la parenthèse, il ne trouve, fort logiquement, rien. Code :
![]() cordialement, Didier
__________________
Didier Gonard Ps : Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite ! Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP N'oubliez pas de mettre : ..quand c'est le cas !
|
|||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com