Rapport de message :*
 

Re: Extraire des chiffres

Titre du sujet : Re: Extraire des chiffres
par JeanMarie le 01/12/2012 08:37:07

Bonjour Phil59110, Didier, le Forum

Dans un premier temps, tu dis dans ton fichier que les valeurs de la colonne B sont issues de formules, quelles est cette formule, il y aurait peut-être matière à trouver une meilleure solution.

Voici une solution par formule :
Dans la cellule C7 tu peux écrire cette formule :

Citation :

=GAUCHE(B7;CHERCHE("-";B7)-1

la fonction GAUCHE() retourne un nombre de caractères (Argument2) issus de la chaine (Argument1) en partant de la gauche.

la fonction CHERCHE() recherche le caractère "-" dans la chaine et en retourne sa position.


Pour la cellule D7 cela se complique, on ne peut pas utiliser ces deux fonctions, il pourvoir segmenter ta chaine.

Citation :
=SUBSTITUE(STXT($B7;CHERCHE("ù";SUBSTITUE($B7&REPT("-";15);"-";"ù";COLONNE(A1)))+1;2);"-";"")
La fonction REPT, elle retourne une suite de caractère (Argument1) dont la longueur est déterminé par la valeur de l'argument2, sont utilisation de la fonction à une importance, elle supprime une gestion d'erreur que l'on devrait mettre en place quand tous les segments de la chaine sont traités.
La fonction SUBSTITUE permet de remplacer une Xième occurrence d'un caractère dans une chaine, la valeur de l'occurrence à remplacer est donnée par la fonction COLONNE. Dans ton cas la fonction REMPLACER n'est pas utilisable.

Ensuite tu peux étirer cette formule sur la droite et étendre le tout vers le bas.

Deux points important, cela ne fonctionne correctement que si les valeurs à segmenter ne sont inférieures à 100. Les valeurs retournées sont des valeurs Texte

Pour finir une solution par VBA,
ci-dessous un code que tu mettras dans un module
Function decoupage(vChaine As String) As Variant
    decoupage = Split(vChaine & Application.Rept("-", 15), "-")
End Function

Ce code est une function qui retourne un tableau des valeurs segmentées de ta chaine.
Pour l'utiliser dans Excel, il faut pour cela :
     - Sélectionner une plage de cellules (C7:Q7)
     - Saisir la formule Decoupage(B7) et valider la formule par les touches Ctrl+Shift+Entrer
Après la validation tu dois voir des "{" "}" entourant la formule

La fonction Split permet le découpage de la chaine. l'utilisation de la fonction application.rept est utilisée pour supprimer une gestion d'erreur.

@+Jean-Marie