Extraction de données et opération sur celle-ci
Bonjour,
Voilà je ne suis pas mauvais sur excel avec les formule. je m'en sort bien mais j'aimerais réalisé un truc assez complexe et donc je m'adresse à vous.
J'aimerai extraire des caractère défini d'une cellule, les dispose dans leur ordre d’apparition et en faire le calcul dans une autre cellule.
Si possible en formule svp (mais ça m’étonnerai que cela soit possible)
Sinon VBA.
Comme je ne connais pas VBA je n'ai rien fait
Sinon pour le côter formule j'ai surtout plancher sur STXT mais je ne crois pas que cela suffise.
Cela me simplifiera les choses dans mon travail. Sinon je continuerai à faire le report manuellement.
Merci d'avance pour votre temps.
Voilà je ne suis pas mauvais sur excel avec les formule. je m'en sort bien mais j'aimerais réalisé un truc assez complexe et donc je m'adresse à vous.
J'aimerai extraire des caractère défini d'une cellule, les dispose dans leur ordre d’apparition et en faire le calcul dans une autre cellule.
Si possible en formule svp (mais ça m’étonnerai que cela soit possible)
Sinon VBA.
Comme je ne connais pas VBA je n'ai rien fait
Sinon pour le côter formule j'ai surtout plancher sur STXT mais je ne crois pas que cela suffise.
Cela me simplifiera les choses dans mon travail. Sinon je continuerai à faire le report manuellement.
Merci d'avance pour votre temps.
-
- aideformule.xlsx
- (9.34 Kio) Téléchargé 19 fois
- frangy
- Passionné d'Excel
- Messages : 4'342
- Appréciation reçue : 1
- Inscrit le : 19 novembre 2012
- Version d'Excel : 2007 FR
Bonjour,
Une proposition avec une fonction personnelle
A+
Une proposition avec une fonction personnelle
A+
-
- aideformule.xlsm
- (15.47 Kio) Téléchargé 14 fois
Bonjour,
Une proposition avec VBA et fonction personnelle
Oups!!! pas vu la proposition de Tangy désolé
Re,
En plus j'ai oublié le bouton, je l'ai ajouté
Explications en feuil2
Une proposition avec VBA et fonction personnelle
Oups!!! pas vu la proposition de Tangy désolé
En plus j'ai oublié le bouton, je l'ai ajouté
Explications en feuil2
-
- aideformule.xlsm
- (22.84 Kio) Téléchargé 20 fois
Cordialement
R.J.
R.J.
Frangy merci pour ton tableau il correspond exactement à ce que je veu en faire mais il ne prend pas en compte les chiffre décimaux. cela est-il possible?
Renvoi du tableau avec exemple
Renvoi du tableau avec exemple
-
- aideformule.xlsm
- (16.04 Kio) Téléchargé 12 fois
Re,
Suite à votre remarque j'ai modifié ma function pour remplacer la , par un . car evaluate ne prend pas la virgule en considération pour calculer.
Function Extract_F(x As String)
Dim chaine As String, caract As String, Expression As Variant, Signes As String
Dim i As Integer, Longueur As Integer, cel As Range
'Liste des signes
Signes = "(),.*-+/"
'La chaine complète et lenombre de caractères qu'elle contient
chaine = Range("C4")
Longueur = Len(chaine)
'Analyse de la chaine caractère par caractère pour constituer l'expression à calculer
For i = 1 To Longueur
caract = Mid(chaine, i, 1)
'Si une , est détectée elle doit être remplacée par un point car Evaluate ne calcule qu'avec un point
'comme séparateur décimal
If caract = "," Then caract = "."
If InStr(1, Signes, caract) Or IsNumeric(caract) Then
Expression = Expression + caract
End If
Next i
Extract_F = Evaluate(Expression)
End Function
Donc en D4 mettre =Extract_F(C4)
Et plus besoin du bouton alors
Suite à votre remarque j'ai modifié ma function pour remplacer la , par un . car evaluate ne prend pas la virgule en considération pour calculer.
Function Extract_F(x As String)
Dim chaine As String, caract As String, Expression As Variant, Signes As String
Dim i As Integer, Longueur As Integer, cel As Range
'Liste des signes
Signes = "(),.*-+/"
'La chaine complète et lenombre de caractères qu'elle contient
chaine = Range("C4")
Longueur = Len(chaine)
'Analyse de la chaine caractère par caractère pour constituer l'expression à calculer
For i = 1 To Longueur
caract = Mid(chaine, i, 1)
'Si une , est détectée elle doit être remplacée par un point car Evaluate ne calcule qu'avec un point
'comme séparateur décimal
If caract = "," Then caract = "."
If InStr(1, Signes, caract) Or IsNumeric(caract) Then
Expression = Expression + caract
End If
Next i
Extract_F = Evaluate(Expression)
End Function
Donc en D4 mettre =Extract_F(C4)
Et plus besoin du bouton alors
Cordialement
R.J.
R.J.
Robjam j'ai un souci avec t'as formule
En fait je voudrai que lorsque j'écris dans la cellule Extract_F(cellule) il me calcul la cellule à laquelle je fait référence.
mais ton code ne calcul que la formule en C4.
Comment changer cela?
Function Extract_F(x As String)
Dim chaine As String, caract As String, Expression As Variant, Signes As String
Dim i As Integer, Longueur As Integer, cel As Range
'Liste des signes
Signes = "(),.*-+/"
'La chaine complète et lenombre de caractères qu'elle contient
chaine = Range("c4")
Longueur = Len(chaine)
'Analyse de la chaine caractère par caractère pour constituer l'expression à calculer
For i = 1 To Longueur
caract = Mid(chaine, i, 1)
'Si une , est détectée elle doit être remplacée par un point car Evaluate ne calcule qu'avec un point
'comme séparateur décimal
If caract = "," Then caract = "."
If InStr(1, Signes, caract) Or IsNumeric(caract) Then
Expression = Expression + caract
End If
Next i
Extract_F = Evaluate(Expression)
End Function
En fait je voudrai que lorsque j'écris dans la cellule Extract_F(cellule) il me calcul la cellule à laquelle je fait référence.
mais ton code ne calcul que la formule en C4.
Comment changer cela?
Function Extract_F(x As String)
Dim chaine As String, caract As String, Expression As Variant, Signes As String
Dim i As Integer, Longueur As Integer, cel As Range
'Liste des signes
Signes = "(),.*-+/"
'La chaine complète et lenombre de caractères qu'elle contient
chaine = Range("c4")
Longueur = Len(chaine)
'Analyse de la chaine caractère par caractère pour constituer l'expression à calculer
For i = 1 To Longueur
caract = Mid(chaine, i, 1)
'Si une , est détectée elle doit être remplacée par un point car Evaluate ne calcule qu'avec un point
'comme séparateur décimal
If caract = "," Then caract = "."
If InStr(1, Signes, caract) Or IsNumeric(caract) Then
Expression = Expression + caract
End If
Next i
Extract_F = Evaluate(Expression)
End Function
-
- Sujets similaires
- Réponses
- Vues
- Dernier message
-
-
récupérer des données et faire un pourcentage de celle-ci
par yohan.p » 5 mai 2014, 16:17 » dans Excel - VBA - 6 Réponses
- 247 Vues
-
Dernier message par yohan.p
6 mai 2014, 09:58
-
-
- 2 Réponses
- 70 Vues
-
Dernier message par blk59
14 mai 2018, 22:59
-
- 14 Réponses
- 142 Vues
-
Dernier message par Steelson
3 juillet 2019, 18:43
-
- 3 Réponses
- 324 Vues
-
Dernier message par impreza73
27 août 2014, 22:17
-
- 1 Réponses
- 127 Vues
-
Dernier message par gmb
4 février 2014, 13:14
-
- 2 Réponses
- 123 Vues
-
Dernier message par jad73
12 avril 2015, 12:01