Extraire nombre d´une serie de Charactère

  • Initiateur de la discussion Gillou
  • Date de début
G

Gillou

Guest
Coucou les expert d´Excel,
j´ai encore un problème,
Cette fois j´aimerai extraire un chiffre d´une série de charactères:
Par exemple j'ai en colonne remplie de cellules de type :Embaler 100 par caisse (ou 50 ou 20...) enfin bref + de 7000 lignes... Et j´aimerai que une macro ou un code excel me sorte dans la colonne à coté la valeur: 100.
Vous voyez le pb.
Si quelqu´un pouvait m´aider ça m´éviterai de me taper les 7000 lignes.
Merci d´avance
Gillou
 

andré

XLDnaute Barbatruc
Salut,

C'est faisable par formule, à condition d'avoir un point commun entre toutes les données, par exemple extraire la première chaîne de caractères après le premier espace, ... ou autre chose.

Si tu ne trouves pas, il serait bon d'avoir une dizaine de lignes représentatives sous les yeux pour pouvoir t'aider.

A tan.btôt.
Ândré.
 

MichelXld

XLDnaute Barbatruc
bonjour Gillou , bonjour André

Gillou , tu peux tester cette macro pour extraire toutes les valeurs numeriques de la cellule

dans cet exemple , les données sont dans la colonne A , chaque valeur numérique est extraite dans la colonne d'a coté


Code:
Sub extraireValeursNumeriques()
'michelxld le 21.04.2004
Dim i As Byte, j As Byte
Dim Cell As Range
Dim Cible As String
Dim Nombre As Double, Total As Double

For Each Cell In Range('A1:A' & Range('A65536').End(xlUp).Row)
Cible = Cell
j = 0
i = 0
 'pour que la fonction Val puisse reconnaitre les decimales
Cible = Application.Substitute(Cible, ',', '.')
Cible = Application.Substitute(Cible, ' ', 'x')'pour gerer deux nombres qui se suivent
For i = 1 To Len(Cible)
If IsNumeric(Mid(Cible, i, 1)) Then
j = j + 1
Cell.Offset(0, j) = Val(Mid(Cible, i, Len(Cible) - i + 1))
i = i + Len(Str(Cell.Offset(0, j))) - 1
End If

Next i
Next Cell

End Sub



bonne soirée
Michel
 

Discussions similaires

Statistiques des forums

Discussions
312 668
Messages
2 090 739
Membres
104 643
dernier inscrit
adriano22