Traduction salaire textuel en salaire numérique

Bonjour à tous,

Voici mon problème. Je souhaite analyser des offres d'emploi et j'ai besoin de traduire les informations textuelles de salaire en valeurs numériques.

Dans ma colonne A, le salaire est exprimé en texte (salaire annuel), je souhaiterais avoir des valeurs numériques plus simples à manipuler dans ma colonne B (salaire annuel en kilo euros ou valeur médiane pour un intervalle de salaire).

Extrait colonne A du tableau joint (1482 lignes)

24 000 € brut/an = 24 (col. B)

24 - 28K€ brut/an = 26 (col. B)

24 / 27 K€ brut/an = 25,5 (col. B)

24 à 26K€ brut/an selon expé = 25 (col. B)

24/30 K€ brut/an = 27 (col.B)

-/+ 28 K€ brut/an = 28 (col.B)

.K€ brut/an = cellule vide en col. B

00000000K€ brut/an = cellule vide en col. B

Défini selon profil = cellule vide en col. B

Je n'y connais malheureusement rien en VBA: Est-il possible de faire une macro qui prenne en compte les 4 situations que je peux rencontrer dans la colonne A de ma feuille jointe :

  • Cas n°1 : s'il y a un seul nombre dans la cellule, extraire ce nombre (nombre de 1 à 999 999 en prenant en compte les décimales avec point ou virgule. Si le nombre est au format XXX XXX ou XXXXXX arrondir au format XXX (on reste en kilo euros en col. B)
  • Cas n°2 : s'il y a deux nombres consécutifs a et b dans la cellule -il s'agit d'un intervalle de salaire- alors calculer (b-a)/2 [les nombres consécutifs peuvent être séparé par les séparateurs "et" "à" "/" ou "-" avec ou sans espace de chaque côté des séparateurs]
  • Cas n°3 : si le nombre unique dans la cellule commence par 0 afficher une cellule vide
  • Cas n°4 : s'il n'y a pas de nombre dans la cellule afficher une cellule vide

D'avance merci pour votre aide.

Salut,

Je me suis penché sur ton problème et te propose un premier jet.

J’ai vu proche de la fin de mon travail que tu avais des salaires assez élevés par exemple aux lignes 77 et 78. Pour l’instant ces salaires sont considérés comme des salaires à plus de 999 et sont donc divisés par 1000. Si vraiment tu traites des salaires aussi hauts, il n’est pas dit que je trouve une solution.

Mais regarde déjà si le reste te convient. Ma macro prend bien quelques secondes pour arriver à son but.

Cordialement.

Re,

J’ai quand même recherché une solution pour cette ligne 78, si le salaire offert est vraiment de 2'386'000 Euros, mais ça a alors une influence sur les autres lignes telles que la 77. A toi de me dire ce que tu désires finalement.

Dans cette version, j’ai en plus placé les résultats en colonne B au lieu de la colonne C (je devais être fatigué, hier soir) et les résultats sont arrondis à l’unité (est-ce trop imprécis ?).

A te relire.

Un très grand merci pour avoir répondu à mon message.

Je profite de ma connexion de mauvaise qualité pour envoyer un 1er message de remerciement.

Je télécharge le fichier pour voir tout ça.

Merci!


Un très grand merci pour avoir répondu à mon message.

Je profite de ma connexion de mauvaise qualité pour envoyer un 1er message de remerciement.

Je télécharge le fichier pour voir tout ça.

Merci!

Je viens d'ouvrir le fichier.

C'est très impressionnant.

Je me demandais si c'était possible!

J'ai passé mon après-midi à construire des formules pour traiter tous les cas de figures un par un et je n'en ai pas fait la moitié....

Cette macro me fait gagner un temps vraiment considérable. Elle est plus efficace qu'un traitement avec des formules.

La ligne 78 est vraisemblablement une erreur de saisie, il ne faut pas en tenir compte.

Est-il possible d'extraire la deuxième valeur dans la colonne C si le salaire est exprimé par un

intervalle [a,b] ?

Par exemple :

24 à 26K€ brut/an selon expé = 24 en col B et 26 en col C

24 à 36 K€ brut/an = idem

24-30K€ brut/an

De 38000 à 45000 EUR par an = 38 en col B et 45 en col C

Entre 21 et 24 K€ brut/an

Si c'est possible, je renonce à mon idée de représenter un intervalle [a,b] par la valeur (b-a)/2

Enfin, pour pourvoir utiliser cette macro sur une colonne de taille variable est-ce qu'il suffit

simplement que je sélectionne mes valeurs dans la colonne cible où il y a des salaires et que j'exécute

la macro?

Un très grand merci

Salut,

castelem a écrit :

La ligne 78 est vraisemblablement une erreur de saisie, il ne faut pas en tenir compte.

J’ai entretemps imaginé une solution pour ces cas. Donc si tu as quand même besoin de traiter des salaires en millions d’Euro, reviens à la charge et j’essaierai d’appliquer mon idée.
castelem a écrit :

Est-il possible d'extraire la deuxième valeur dans la colonne C si le salaire est exprimé par un intervalle [a,b] ?

En fait tu ne dois pas connaitre grand-chose aux macros, car sinon tu aurais remarqué – en détaillant la macro proposée – que j’écris d’abord les deux valeurs séparément dans les colonnes C et D afin de pouvoir en utiliser les valeurs dans le calcul de la moyenne demandé par toi-même ; valeurs que j'effaçais bien entendu par la suite. Alors si tu préfères les deux valeurs séparément, je supprime simplement mon calcul final A propos de ces moyennes, j’avais fait une erreur et le résultat correct tout d’abord calculé et inscrit correctement était remplacé par une deuxième valeur erronée (tout ça d’une manière invisible si tu ne lances pas la macro au pas-à-pas). Ainsi à la ligne 46 par exemple, ça affichait un résultat erroné de 17 en finale au lieu de la moyenne de 44 ou de 43,5 selon la précision voulue. Mais comme tu ne désires plus cette moyenne, ………..
castelem a écrit :

Enfin, pour pourvoir utiliser cette macro sur une colonne de taille variable est-ce qu'il suffit simplement que je sélectionne mes valeurs dans la colonne cible où il y a des salaires et que j'exécute la macro?

Je ne sais pas avec quel appareil tu écris tes messages, mais tes textes éclatés (celui-ci sur trois lignes, dans ton message) rendent la lecture difficile ; j’ai dû m’y reprendre à deux fois pour comprendre qu’il s’agissait d’un seul et même paragraphe, soit d’une seule et même demande. Alors oui, si tu places d’autres données dans la colonne A, dès la cellule A2 et que tu lances la macro, ça devrait fonctionner correctement.
castelem a écrit :

J'ai passé mon après-midi à construire des formules pour traiter tous les cas de figures un par un et je n'en ai pas fait la moitié....

En fait ma macro fait plus ou moins ceci : elle passe en revue toutes les lignes en remplace les points par des virgules et elle supprime les espaces. Ensuite elle supprime si nécessaire tous les textes devant le premier chiffre. Puis elle cherche si nécessaire le premier signe qui n’est ni un chiffre ni une virgule afin de savoir où s’arrête le premier nombre et elle sépare le premier nombre du reste du texte. Ensuite elle efface à nouveau si nécessaire le texte devant le deuxième nombre, recherche à nouveau s’il y a du texte après le deuxième nombre et le supprime si nécessaire. A ce moment-là, tu as deux nombres séparés sans plus aucun texte (et quels que soient ces textes, donc tu n’aurais pas eu besoin d’en imaginer toutes les variantes possibles ). Avec mes premières macros, ces deux nombres trouvés étaient encore utilisés afin d’en calculer la moyenne.

Dans le fichier ci-joint, les dernières corrections selon tes nouvelles demandes. A ajuster éventuellement.

A te relire.

Merci Yvouille,

J'écris mes messages via mon bloc-notes pour éviter de les perdre suite à mon problème de connexion Internet.

Je fais attention à mes "sauts de ligne" maintenant, promis

Effectivement, j'aurais du te préciser que je n'y connaissais rien en macro. Tu l'as vite compris.

Le résultat est au-delà de mes espérances. Je suis pleinement satisfait par ton dernier fichier et c'est sympathique d'avoir créer un bouton pour moi! Je me permettrais de te transmettre mon projet Excel terminé en MP pour que tu vois le projet auquel tu as contribué.

Un grand merci pour ta disponibilité et un excellent 1er mai!

Cordialement,

Mathieu.

Rechercher des sujets similaires à "traduction salaire textuel numerique"