tri sur une chaine de caractère dans excel - VB/VBA/VBS - Programmation
Marsh Posté le 30-06-2008 à 12:59:06
Salut, attention au probleme de doublons possibles, utiliser plutôt le N° Siret ?
Marsh Posté le 30-06-2008 à 13:28:00
Oui ca c est un autre probleme encore, et le numéro de siret je ne l utilise pas dans la mesure ou il n est pas dispo dans le fichier car en fait il s agit d un fichier de propects et relations diverses qui sont pour certains d entre eux seulement rattachés à une société cliente du coup tous ne pourront pas avoir de siret ...
je débarque dans la boite pour un stage avec pour mission d'uniformiser un peu leur base de données de clients/relations/connaissances mais la pour le moment c'est un sacré bazar pour rester poli, ils ont de tout, du fichier excel à la base de donnée hyperfile en passant par access ...
En fait la le but est de créer des codes clients sur 5 caractères, puis d importer ca dans les "vraies" bases de données déjà existantes apres avoir vérifié bien sur les doublons et/ou sociétés qui ont 2 codes clients distincts ...
Marsh Posté le 30-06-2008 à 13:33:55
En fait voila ce qu'il me faudrait en langage plutot humain :
Si les 5 premiers caractères de RaisonSociale contiennent " " ou "/" ou "*"
alors prendre les 5 premières lettres ou chiffres
sinon prendre les 5 premiers caractères.
Si il y a moins de 5 caractères c est pas génant dans la mesure ou 5 est le chiffre max du nombre de caractère de mon code client et que meme si y en a 3 ou 4 c est pas génant ..
mais je n'arrive pas a trouver la fonction dans excel ou en vba pour faire un tri avec uniquement l'alphanumérique ...
Marsh Posté le 30-06-2008 à 13:43:48
Bonjour
Voici une fonction
Function dudule(tmp) |
Marsh Posté le 30-06-2008 à 14:11:20
Cette fonction marche pour la première société mais me sort #VALEUR! pour toutes les suivantes, même celles qui ont une raison sociale de même format ?
Marsh Posté le 30-06-2008 à 14:40:07
Ok j'ai oublié une ligne
Function dudule(tmp)
application.volatile
....
Si tu as encore des problèmes donne moi des exemples
Marsh Posté le 30-06-2008 à 14:49:21
En colonne J j'ai la raison sociale, en colonne AJ j ai le code client que je dois indiquer ...
Donc j'ai copié la fonction dans la partie module 1 de la fenetre microsoft visual basic et je mets en guise de valeur quand je veux remplir AJ2 :
=dudule(J2)
puis je tire vers le bas ... et ca ne remplit que les 4 premières dont la raison sociale est 8TEC ...
par contre si pour la société suivante ERDECOR je mets 8TEC alors ca remplit automatiquement la colonne AJ en 8TEC aussi ....
J'ai essayé en ERDE au cas ou il s'agirait du nombre de caractères qui pose probleme mais ca ne change rien ...
De plus j'ai testé également avec True apres application.volatile dans la mesure ou j'ai vu ca aussi sur google .... mais ca ne résout pas le probleme ...
Marsh Posté le 30-06-2008 à 15:19:58
Dans le même style que pyrof :
Code :
|
Marsh Posté le 30-06-2008 à 15:27:57
C'est aujourd'hui lundi et je ne dois être bien réveillé,
en voyant la macro de babass je m'apperçois qu'il manque un argument a mid:
Select Case Mid(tmp, b, 1)
Marsh Posté le 30-06-2008 à 15:29:14
babasss a écrit : Dans le même style que pyrof :
|
celle la ne me sors que le premier caractères de la première société et plus rien ensuite
Marsh Posté le 30-06-2008 à 15:32:59
pyrof a écrit : C'est aujourd'hui lundi et je ne dois être bien réveillé, |
on renvient au comportement initial, a savoir ca marche pour la premiere société, puis j ai #VALEUR! pour les autres ...
actuellement j'ai ca du coup la :
Code :
|
Marsh Posté le 30-06-2008 à 15:33:20
Arghh, je me suis laissée avoir par la formulation de pyrof, il faut mettre "A" to "Z" et non "A-Z"
Marsh Posté le 30-06-2008 à 15:38:29
babasss a écrit : Arghh, je me suis laissée avoir par la formulation de pyrof, il faut mettre "A" to "Z" et non "A-Z" |
Ah yes ca marche, merci
Merci a vous deux
maintenant j'ai plus qu'a m'attaquer aux doublons mais ca va devoir être vérifié à la main la de toutes facons parce qu'ils veulent décider au cas par cas ce qu'ils vont mettre en cas de doublons, 2500 entrées
Marsh Posté le 30-06-2008 à 15:44:12
Ou alors il me faudrait une fonction ou macro qui trouve code client qui a au moins 2 raisons sociales distinctes ...
je sais le faire en SQL ca
Marsh Posté le 30-06-2008 à 19:03:54
re,l'occasion peut-être d'essayer cet utilitaire pour les doublons sous Excel http://www.mdf-xlpages.com/modules [...] d=2&lid=11
Marsh Posté le 30-06-2008 à 11:22:06
bonjour à tous,
j'ai un fichier excel qui reference des clients et il faut que je leur créé des codes clients a partir de leur raison sociale ( que j'ai dans le fichier excel à la colonne J) ...
le code client est à faire a partir des 5 premiers caracteres de la raison sociale, donc un simple =GAUCHE(J2;5) pourrait suffire sauf que certaines raisons sociales contiennent des caractères spéciaux ( genre espace, / , * ) et en fait je ne voudrais que les 5 premières lettres ou chiffres mais je ne sais pas comment trier ca ...
J'ai essayé avec une fonction cells.find mais j'ai une erreur avec le if que je n'arrive pas à syntaxer correctement avec ...
bref pour le moment j'ai ca, c est partiel, le tri n'est effectué que sur le caractère /, et de plus comme j'ai commencé le vba y a environ 20 minutes, c est un peu l'anarchie la :
Qui peut m'aider ?
Merci