Comparer deux champs avec 3 caractères consécutifs
Fermé
MaximeL54
Messages postés
3
Date d'inscription
vendredi 20 février 2015
Statut
Membre
Dernière intervention
23 février 2015
-
20 févr. 2015 à 10:36
MaximeL54 Messages postés 3 Date d'inscription vendredi 20 février 2015 Statut Membre Dernière intervention 23 février 2015 - 23 févr. 2015 à 12:10
MaximeL54 Messages postés 3 Date d'inscription vendredi 20 février 2015 Statut Membre Dernière intervention 23 février 2015 - 23 févr. 2015 à 12:10
A voir également:
- Comparer deux champs avec 3 caractères consécutifs
- Caractères ascii - Guide
- Caractères spéciaux clavier azerty - Guide
- Caractères spéciaux - Guide
- Picasa 3 - Télécharger - Albums photo
- Deux ecran pc - Guide
2 réponses
MaximeL54
Messages postés
3
Date d'inscription
vendredi 20 février 2015
Statut
Membre
Dernière intervention
23 février 2015
23 févr. 2015 à 09:07
23 févr. 2015 à 09:07
Il y a t-il une solution personne ne sait si celà est réalisable ?
Corialement
Corialement
Si, c'est réalisable. Tout est faisable, il suffit d'y consacrer suffisament de temps et d'énergie. Malehureusement, on n'a pas toujours le temps de tout faire....
Je ne vois pas immédiatement de solution évidente. Je vois comment faire avec des boucles en VBA mais ce sera lourd et lent.
Voici une solution imaginable :
étape 0:
Si cela n'existe pas encore, créer un identifiant unique pour chaque nom d'entreprise dans chaque table (numéro de client par exemple)
étape 1 : créer une nouvelle copie de la table2 en ordonnant les noms d'entrprise par order alphabetique et en ajoutant un champ (booléen par exemple).
étape 2 :
Créer une Sub/fonction en VBA avec des boucles. Cette Sub va lire la table1 de la première à la dernière ligne. Pour chaque ligne, extraire le 3 (ou 4 ou 5) premiers caractères.
étape 3:
lire la nouvelle table2 de la première à la dernière ligne. Pour chaque ligne extraire les 3 (ou 4 ou 5) premiers caractères et le comparer au 3 (ou4 ou 5) caractères de la table1.
étape 4:
Si ces caractères sont identiques, alors on a un match, on peut l'extraire et inscrire dans une nouvelle table les deux identifiants uniques. Passer à l'étape 8 puis 2.
Si ces caractères ne sont pas identiques, faire l'étape 5.
étape 5:
lires les caractères 2-3-4 ( ou 2-3-4-5 ou 2-3-4-5-6) de la table2. Faire l'étape 4 à nouveau jusqu'à la fin du nom d'entreprise.
étape 6:
un fois arrivé en bout de chaine sur la table 2 et si on a toujours pas de match, lire les caractères 2-3-4 (ou 2-3-4-5 ou 2-3-4-5-6...) du nom d'entreprise de la table1 et reprendre à l'étape 3.
étape 7:
si le un match a été trouvé retirer de la table2 l'entreprise déjà trouvée. Cela permettra de gagner du temps.
étape 8 :
Passer à la ligne suivante dela table1. Reprendre à l'étape 2.
Ce sera lent....
commencez par comparer les chaines de caractères les plus longues possibles (10 caractères) car c'est ce qui vous donnera la meilleure qualité d'équivalence.
Puis recommencez avec des chaines plus courtes (9 caractères puis 8...)
Continuez à chercher. Il y a sûrement mieux.
Je ne vois pas immédiatement de solution évidente. Je vois comment faire avec des boucles en VBA mais ce sera lourd et lent.
Voici une solution imaginable :
étape 0:
Si cela n'existe pas encore, créer un identifiant unique pour chaque nom d'entreprise dans chaque table (numéro de client par exemple)
étape 1 : créer une nouvelle copie de la table2 en ordonnant les noms d'entrprise par order alphabetique et en ajoutant un champ (booléen par exemple).
étape 2 :
Créer une Sub/fonction en VBA avec des boucles. Cette Sub va lire la table1 de la première à la dernière ligne. Pour chaque ligne, extraire le 3 (ou 4 ou 5) premiers caractères.
étape 3:
lire la nouvelle table2 de la première à la dernière ligne. Pour chaque ligne extraire les 3 (ou 4 ou 5) premiers caractères et le comparer au 3 (ou4 ou 5) caractères de la table1.
étape 4:
Si ces caractères sont identiques, alors on a un match, on peut l'extraire et inscrire dans une nouvelle table les deux identifiants uniques. Passer à l'étape 8 puis 2.
Si ces caractères ne sont pas identiques, faire l'étape 5.
étape 5:
lires les caractères 2-3-4 ( ou 2-3-4-5 ou 2-3-4-5-6) de la table2. Faire l'étape 4 à nouveau jusqu'à la fin du nom d'entreprise.
étape 6:
un fois arrivé en bout de chaine sur la table 2 et si on a toujours pas de match, lire les caractères 2-3-4 (ou 2-3-4-5 ou 2-3-4-5-6...) du nom d'entreprise de la table1 et reprendre à l'étape 3.
étape 7:
si le un match a été trouvé retirer de la table2 l'entreprise déjà trouvée. Cela permettra de gagner du temps.
étape 8 :
Passer à la ligne suivante dela table1. Reprendre à l'étape 2.
Ce sera lent....
commencez par comparer les chaines de caractères les plus longues possibles (10 caractères) car c'est ce qui vous donnera la meilleure qualité d'équivalence.
Puis recommencez avec des chaines plus courtes (9 caractères puis 8...)
Continuez à chercher. Il y a sûrement mieux.
MaximeL54
Messages postés
3
Date d'inscription
vendredi 20 février 2015
Statut
Membre
Dernière intervention
23 février 2015
23 févr. 2015 à 12:10
23 févr. 2015 à 12:10
Merci pour votre réponse, c'est en effet lourd à réaliser.
Je ne trouve malheureusement pas mieux pour le moment.
Je ne trouve malheureusement pas mieux pour le moment.