Des pro excel dans le coin ?
J'ai besoin de votre aide
J'ai un fichier excel au boulot, je veux automatisé tous sa
J'ai donc une feuille excel ou je rentre mon code (le nombre) et une base de données
Ma base de données contient le nom de mes client par code etc....
Voila je pose les bases
Je donnes un nombre (oui c'est un grand nombre) (par exemple le dernier que j'ai reçu vendredi)
5042207413622217201841152
se nombre se décompose comme suit
504 / 2207413 / 62 / 2217201 / 841152
504 désigne que c'est un colis et/ou 404 pour un sachet
2207413 code expéditeur
62 code établissement destinataire
2217201 code destinataire
841152 code colipass
Je voudrais que quand je rentre un nombre du style 5042207413622217201841152 il se décompose dans plusieurs cases du fichier
Scan / Date / Code Expéditeur / Expéditeur / Etablissement destinataire / Code Destinataire / Destinataire / N°de colipass / Sachet / Colis
Une fois les nombres posés dans chaque case, le fichier va chercher a qui il correspondent dans la base de données et compléter les cases manquantes
ex: 2207413(code expéditeur) signifie que c'est le client Mr Ducon
Sachant aussi que je n'ai quasi aucun moyen de transférer des fichiers sur le pc en questions du moins pas conventionnellement vu que tu est protéger sur les serveurs mais je peux essayer de m'arranger en passant par le pc d'un responsable en secret.
Je vous remercie et hésiter pas pour les questions.
ps: mon bescherelle a pris feu alors soyez indulgent.
Pour décomposer ton nombre tu utiliseras selon les besoin les fonctions : gauche(), droite(), ou une combinaison cherche() - nbcar() voire stxt().
Pour la correspondance tu utiliseras cette bonne vieille recherchev().
merci stxt va bien m'aider et recherchev je l'avais déjà vu quelque part mais j’étais pas sur.
Pour decomposer, tu peux utiliser MID(text, start, n_char)
Pour la recherche en base, deux solutions:
- soit tu peux taper directement dessus (ce que je doute)
- avoir une version locale (= un classeur excel) sur lequel tu peux taper
Il existe plein de manières, voici deux solutions (je ne peux pas poster de lien alors copie / colle du coup...) :
puu.sh/xervN/88c6fb96e2.png
puu.sh/xerxo/729d3b84cd.png
puu.sh/xerxG/3fec17f174.png
puu.sh/xery7/243e62533b.png
puu.sh/xeryK/c84fe96ec7.png
puu.sh/xerz7/29545969be.png
puu.sh/xerzT/1a83750afa.png
puu.sh/xerAc/ee535ce6e1.png
puu.sh/xerAu/84e04a2a07.png
Tu peux faire aussi sans utiliser les colonnes B C et D mais il te faut du coup faire =DROITE(GAUCHE(A1;XXX);XXX) où X sont les positions des caractères que tu veux récupérer comme ici :
puu.sh/xerJb/931b0a2b03.png
Comme dit boulbi, STXT c'est bien aussi et sûrement moins chiant que ce que j'ai fait.
merci je vais utiliser stxt mais tes photos mon pas mal aidé a comprendre le fonctionnement de ces formules
La première question à se poser : est-ce que le découpage est toujours le même ou est-ce que ça peut varier ?
Si ça varie, t'es dans la merde.
Rien à foutre de ton Bescherelle. Tu dois l'avoir en tête, pas sous ton derche pour atteindre le clavier...
Tu peux t en sortir de deux manières en effet. La première est de baser la décomposition par diverses formules, la deuxième est en jouant avec des macro. Si tu as un scan ça peut être d autant plus efficace car une input box suffit, avec tous les contrôles imaginable que tu peux réaliser. Il s agit de programmation en un langage similaire de visual basic, avec quelques spécificités d ou le nom VBA ( visual basic pour Application). Tu peux d ailleurs accéder en maintenant par exemple alt F11. Google regorge de cours explicatif à ce sujet. Moi je partirai sur ça bien que ça ne reste qu un des nombreux chemin possible.
Edit : en oubliant pas un point, toutes les formules d excel sont compilées et plus rapides que la programmation en manuel. Ça permet de créer de nouvelles fonctions par exemple si celle présentes ne tu satisfont pas.
alors de tête tu cliques droit sur la cellule format--> nombre et la tu auras décimal qui faudra mettre a 0 au lieu de 2
J'ai posé toutes mes formules sa marche nickel mais j'ai quand même galéré, bon il me reste que deux truc qui m’embête c'est les #N/D dans les cases vides et je voudrais que quand le nombre commence par 404 sa met un X dans sachet et 504 sa met X dans colis
par contre le problème des formules dans une base de données est que ça va alourdir ton fichier c est la seule chose un peu dommage ;) pour ton problème avec des if ou des reconnaissances de texte "#N/D"
en gros sa me donnerais sa =RECHERCHEV(C2;Base.A2:B500;2;0)&SI(D2="#N/D";"";RECHERCHEV(C2;Base.A2:B500;2;0"")) mais sa me met erreur 522
enlève la partie avant & ça te donne certainement ton erreur. Étonnant d ailleurs qu Excel accepte ta formule
Plus exactement ne teste pas d2 mais bien la formule recherche etc = #ND; "";recherche...)
Tu peux pas rajouter une condition devant ta formule ? Du genre "si la case est vide, affiche une case vide, sinon fais la recherche". Ca donnerait un truc du genre =SI(A2="";"";RECHERCHEV.................).
Tu ne dois accéder à ce site que si tu as au moins 18 ans ou si tu as l'âge légal pour visionner ce type de matériel dans ta juridiction locale, l’âge le plus élevé étant retenu. En outre, tu déclares et garantis que tu ne permettras aucun mineur à d'accéder à ce site ou à ces services.
En accédant à ce site, tu acceptes nos conditions d'utilisation.