Extraction du nombre juste avant un symbole
Résolu/Fermé
frenzy7
Messages postés
55
Date d'inscription
samedi 24 février 2018
Statut
Membre
Dernière intervention
29 juillet 2024
-
24 févr. 2018 à 22:39
frenzy7 - 27 févr. 2018 à 02:59
frenzy7 - 27 févr. 2018 à 02:59
A voir également:
- Extraction du nombre juste avant un symbole
- Excel afficher 0 avant nombre - Guide
- Symbole - Accueil - Maison
- Copains d'avant qui a visité mon profil - Forum Facebook
- En raison d'un nombre important d'échec de connexion snapchat - Forum Snapchat
- Retrouver mon compte copains d'avant - Forum Réseaux sociaux
6 réponses
jee pee
Messages postés
40558
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
16 décembre 2024
9 457
Modifié le 25 févr. 2018 à 11:59
Modifié le 25 févr. 2018 à 11:59
Bonjour,
Condition, il faut que devant le nombre il y ait un blanc
En A1 ta chaine, je le fais en 2 fois car en une seule la formule devient illisible car trop longue
en A2 :
en A3 :
Cdlt
Condition, il faut que devant le nombre il y ait un blanc
En A1 ta chaine, je le fais en 2 fois car en une seule la formule devient illisible car trop longue
en A2 :
=GAUCHE(A1;CHERCHE("€";A1)-1)on supprime ce qu'il y a à partir de €
en A3 :
=DROITE(A2;NBCAR(A2)-CHERCHE("§";SUBSTITUE(A2;" ";"§";NBCAR(A2)-NBCAR(SUBSTITUE(A2;" ";"")))))on ne garde que ce qu'il y a après le dernier blanc
Cdlt
via55
Messages postés
14502
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 décembre 2024
2 736
25 févr. 2018 à 12:35
25 févr. 2018 à 12:35
Bonjour
Ou bien avec une fonction personnalisée à condition comme dans les formules de jee pee qu'il y ait une blanc devant le nombre et après le € et qu'un nombre comme 10000 ne soit pas écrit 10 000
Copier la macro et la coller dans un module de l'Editeur VBA (ALT+F11 pour ouvrir l'éditeur - Insertion - Module - coller la macro)
Syntaxe à utiliser dans la feuille : = isolmonet(A1)
Cdlmnt
Via
Ou bien avec une fonction personnalisée à condition comme dans les formules de jee pee qu'il y ait une blanc devant le nombre et après le € et qu'un nombre comme 10000 ne soit pas écrit 10 000
Copier la macro et la coller dans un module de l'Editeur VBA (ALT+F11 pour ouvrir l'éditeur - Insertion - Module - coller la macro)
Function isolmonet(plage As Range) tablo = Split(plage, " ") For n = 0 To UBound(tablo) If Right(tablo(n), 1) = "€" Then isolmonet = Application.WorksheetFunction.Substitute(tablo(n), "€", "") Next End Function
Syntaxe à utiliser dans la feuille : = isolmonet(A1)
Cdlmnt
Via
frenzy7
Messages postés
55
Date d'inscription
samedi 24 février 2018
Statut
Membre
Dernière intervention
29 juillet 2024
2
26 févr. 2018 à 13:17
26 févr. 2018 à 13:17
Merci pr votre aide. Par rapport à mon cas, un soucis se pose:
Le format monétaire a disparu. Comment faire pour le réactiver, ceci dans la meme macro?
Le format monétaire a disparu. Comment faire pour le réactiver, ceci dans la meme macro?
via55
Messages postés
14502
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 décembre 2024
2 736
26 févr. 2018 à 13:39
26 févr. 2018 à 13:39
Bonjour
Tu demandais : je souhaite extraire le nombre "100".
Donc dans la macro je fais remplacer le $ par du vide
Soit tu formates ta cellule où tu entre la fonction en format monétaire et tu auras un nombre utilisable (pour d'autres calculs) soit tu modifie ainsi la ligne de macro
mais tu auras du texte non utilisable dans un calcul
Tu demandais : je souhaite extraire le nombre "100".
Donc dans la macro je fais remplacer le $ par du vide
Soit tu formates ta cellule où tu entre la fonction en format monétaire et tu auras un nombre utilisable (pour d'autres calculs) soit tu modifie ainsi la ligne de macro
If Right(tablo(n), 1) = "€" Then isolmonet = tablo(n)
mais tu auras du texte non utilisable dans un calcul
frenzy7
Messages postés
55
Date d'inscription
samedi 24 février 2018
Statut
Membre
Dernière intervention
29 juillet 2024
2
26 févr. 2018 à 13:56
26 févr. 2018 à 13:56
Je veux utiliser la cellule pr d'autres calculs. Du coup je dois transformer cette cellule en formule au lieu d'utiliser une macro? Quelle est cette formule?
via55
Messages postés
14502
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 décembre 2024
2 736
26 févr. 2018 à 15:31
26 févr. 2018 à 15:31
????
D'abord j'ai fait oubli dans la macro c'est de convertir la valeur texte en nombre donc tu remplaces la ligne avec le IF par celle ci :
If Right(tablo(n), 1) = "€" Then isolmonet = Val(Application.WorksheetFunction.Substitute(tablo(n), "€", ""))
Tu mets la formule =isolmonet dans ta cellule, la macro retourne une valeur numérique et pour faire afficher en monétaire il faut que ta cellule soit en format monétaire dans le Ruban Accueil - Nombre ou clic droit dans la cellule - Format de cellule)
D'abord j'ai fait oubli dans la macro c'est de convertir la valeur texte en nombre donc tu remplaces la ligne avec le IF par celle ci :
If Right(tablo(n), 1) = "€" Then isolmonet = Val(Application.WorksheetFunction.Substitute(tablo(n), "€", ""))
Tu mets la formule =isolmonet dans ta cellule, la macro retourne une valeur numérique et pour faire afficher en monétaire il faut que ta cellule soit en format monétaire dans le Ruban Accueil - Nombre ou clic droit dans la cellule - Format de cellule)
frenzy7
Messages postés
55
Date d'inscription
samedi 24 février 2018
Statut
Membre
Dernière intervention
29 juillet 2024
2
26 févr. 2018 à 16:11
26 févr. 2018 à 16:11
Je suis bloqué, dans Module1 de Visual Basic Editor j'ai ceci:
Sub isolmonet()
'
' isolmonet Macro
'
'
Application.Goto Reference:="isolmonet"
End Sub
A quel endroit dois-je coller la macro? J'ai tt essayé (un peu partout lol) je n'arrive pas à valider la macro
Sub isolmonet()
'
' isolmonet Macro
'
'
Application.Goto Reference:="isolmonet"
End Sub
A quel endroit dois-je coller la macro? J'ai tt essayé (un peu partout lol) je n'arrive pas à valider la macro
via55
Messages postés
14502
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 décembre 2024
2 736
26 févr. 2018 à 18:58
26 févr. 2018 à 18:58
Je ne sais pas d'où provienennt ces lignes de codes dans ton module1, elles n'appartiennent pas à la macro que t'ai fournie !
Efface toutes ces lignes dans le module 1 et colles à la place celles-ci :
Si tu n'y arrives pas poste un exemple de ton fichier sur mon-partage.fr, fais créer un lien que tu copies et reviens coller ici, je regarderais
Efface toutes ces lignes dans le module 1 et colles à la place celles-ci :
Function isolmonet(plage As Range) tablo = Split(plage, " ") For n = 0 To UBound(tablo) If Right(tablo(n), 1) = "€" Then isolmonet = Val(Application.WorksheetFunction.Substitute(tablo(n), "€", "")) Next End Function
Si tu n'y arrives pas poste un exemple de ton fichier sur mon-partage.fr, fais créer un lien que tu copies et reviens coller ici, je regarderais
J'ai testé ca fonctionne. La formule retounrne bien un nombre. Au final je vais le laisser sans le "€" c'est mieux.
Il ne reste plus qu'à convertir la cellule en monétaire (car impossible de faire des calculs avec cette celluleen laissant comme ca). Quelle serait cette formule? Si on peut le faire ds la meme macro ca m'arrangerait
Il ne reste plus qu'à convertir la cellule en monétaire (car impossible de faire des calculs avec cette celluleen laissant comme ca). Quelle serait cette formule? Si on peut le faire ds la meme macro ca m'arrangerait
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
via55
Messages postés
14502
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 décembre 2024
2 736
26 févr. 2018 à 20:51
26 févr. 2018 à 20:51
Il n'y a pas de formule à mettre c'est le format de ta cellule qu'il faut mettre en monétaire selon la procédure que je t'indiquais dans mon message 6
On ne peut pas le faire dans la macro car ce n'est pas une macro qui s'applique à une cellule mais une fonction qui crée une sorte de formule
Si tu veux adapter le format d'une cellule par macro il faut le faire dans une autre macro qui se déclencherait apr exemple par une double clic dans la cellule
On ne peut pas le faire dans la macro car ce n'est pas une macro qui s'applique à une cellule mais une fonction qui crée une sorte de formule
Si tu veux adapter le format d'une cellule par macro il faut le faire dans une autre macro qui se déclencherait apr exemple par une double clic dans la cellule
Oui je comprends bien mais ma cellule est déjà au format monétaire! Lorsque j'applique la macro le format monétaire semble disparaitre (mais qd je regarde son format, il est bien là!), j'ai beau recliqué sur monétaire, celà ne change rien.
En effet la cellule n'affiche pas les ",00 €" comme je voudrais qu'elle le fasse afin de pouvoir faire mes calculs.
J'ai fait mes recherches, testé et retesté, j'ai utilisé la formule =CNUM(SUBSTITUE(A1);CAR(160);""))
Avec notre fonction isolmonet celà donne:
=CNUM(SUBSTITUE(isolmonet(A4);CAR(160);""))
Le probleme est finalement résolu :)
En effet la cellule n'affiche pas les ",00 €" comme je voudrais qu'elle le fasse afin de pouvoir faire mes calculs.
J'ai fait mes recherches, testé et retesté, j'ai utilisé la formule =CNUM(SUBSTITUE(A1);CAR(160);""))
Avec notre fonction isolmonet celà donne:
=CNUM(SUBSTITUE(isolmonet(A4);CAR(160);""))
Le probleme est finalement résolu :)
Sur le meme principe voici un exp d'une chaine de caracteres alphanumérique:
abcd 123 efgh456 impayé100e ijkl789.
Je désire récupérer dans une cellule le nombre 100. Avec le mot de référence "impayé", quelle serait la macro à créer? J'ai testé avec l'autre (remplacé € par impayé je n'y arrive pas, probablement parce que la récupération est à droite cette fois)
abcd 123 efgh456 impayé100e ijkl789.
Je désire récupérer dans une cellule le nombre 100. Avec le mot de référence "impayé", quelle serait la macro à créer? J'ai testé avec l'autre (remplacé € par impayé je n'y arrive pas, probablement parce que la récupération est à droite cette fois)
via55
Messages postés
14502
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 décembre 2024
2 736
26 févr. 2018 à 22:41
26 févr. 2018 à 22:41
Oui il faut adapter la macro ainsi :
mais elle va retourner 100e
c'est ce qui me gêne dans ton exemple, après le 100, il y a toujours une seule lettre ?
If Left(tablo(n), 6) = "impayé" Then isolmonet = Val(Application.WorksheetFunction.Substitute(tablo(n), "impayé", ""))
mais elle va retourner 100e
c'est ce qui me gêne dans ton exemple, après le 100, il y a toujours une seule lettre ?