IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

convertir texte avec € en nombre [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 262
    Points : 121
    Points
    121
    Par défaut convertir texte avec € en nombre
    Hello,

    j'ai une liste de cellule avec des montant en € du type : 30,41espace€

    Les cellules sont reconnues en format texte

    J'ai essayé un recherche et remplace sur espace€, j'ai un message qui me dit "Excel a détecter que votre recherche contient des symboles de mise en forme, modifiez les options de recherche comme suit : recherche dans valeurs"

    Mon problème c'est que dans la liste déroulante , je n'ai comme choix que recherche dans formule.

    Une idée ?

  2. #2
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Bonjour Gui-llaume, bonjour le forum,

    Le code ci-dessous pour la cellule active à adapter pour ta liste...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Macro1()
    ActiveCell.Value = ActiveCell.Value * 1
    ActiveCell.NumberFormat = "#,##0.00 $"
    End Sub
    À plus,

    Thauthème

    Je suis Charlie

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 262
    Points : 121
    Points
    121
    Par défaut
    Merci ta requête fonctionne.
    je suis surpris cependant qu'on puisse pas le faire autrement que par macro. j'ai essayé de multiplie par 1 dans une autre cellule ou par un collage spécial mais ca ne fonctionne pas plus.

  4. #4
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Bonjour Gui-llaume, bonjour le forum,

    Si ça marche par VBA, ça devrait marcher en multipliant par 1 dans une autre cellule puis en mettant un format monétaire. Mais sans fichier exemple difficile d'en dire plus...
    À plus,

    Thauthème

    Je suis Charlie

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 262
    Points : 121
    Points
    121
    Par défaut
    Salut Thautheme,

    je t'envoie le fichier exemple, dis moi ce que tu en penses ...
    les montants à convertir sont ici en jaunes.

    Copie de TEL export.xlsx

  6. #6
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    En fait, tu n'as pas des espaces mais des espaces insécables Chr(160)€

    Tu peux le supprimer en utilisant dans une autre colonne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SUBSTITUE(G6;CAR(160);"")
    Que tu peux copier en valeur en colonne initiale


    Ou bien, tu copie cet espace insécable et tu le colonne dans ton fameux Chercher/Remplacer
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 262
    Points : 121
    Points
    121
    Par défaut
    super , merci !
    comment as tu procédé pour faire la différence entre espace et caractère insécable ?

  8. #8
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Bonjour Gui-llaume, bonjour le forum,

    Le problème vient du fait que l'espace devant le symbole de l'euro n'est pas un espace normal (Chr(32)) mais un autre espace (Chr(160)). C'est pour cela qu'en multipliant ça ne marche pas. Deux solutions possibles, sans ou avec VBA.
    Sans VBA
    Tu edites n'importe quelle cellule jaune avec F2. Tu sélectionnes uniquement l'espace et tu le copies. Tu valides avec [Enter]. Tu sélectionnes la colonne G et tu fais Rechercher/Remplacer ([Ctrl]+[H]). Dans le champ Rechercher tu colles ([Ctrl]+[V]), dans le champ Remplacer tu tapes un espace. Tu fais Remplacer tout. Après tu pourras multiplier par 1.
    Avec VBA

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Macro1()
    Dim O As Object 'déclare la variable O (Onglet)
    Dim PL As Range 'déclare la variable PL (PLage)
    Dim CEL As Range 'déclare la variable CEL (CELlule)
     
    Set O = Sheets("Feuil1") 'définit l'onglet O
    Set PL = O.Columns(7).SpecialCells(xlCellTypeConstants) 'définit la plage PL
    For Each CEL In PL 'boucle sur toutes les cellule CEL de la plage PL
        CEL.Value = Replace(CEL.Value, Chr(160), Chr(32)) 'remplace le "faux" espace par un espace normal
        CEL.Value = CEL.Value * 1 'multiplie la cellule par 1
        CEL.NumberFormat = "#,##0.00 $" 'formate la cellule
        CEL.HorizontalAlignment = xlRight 'alignà droite
    Next CEL 'prochaine celllule de la boucle
    End Sub
    À plus,

    Thauthème

    Je suis Charlie

  9. #9
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Il suffirait de laisser vide le champs remplacer. éventuellement reformater la colonne
    Citation Envoyé par Thautheme Voir le message

    Tu édites n'importe quelle cellule jaune avec F2. Tu sélectionnes uniquement l'espace et tu le copies. Tu valides avec [Enter]. Tu sélectionnes la colonne G et tu fais Rechercher/Remplacer ([Ctrl]+[H]). Dans le champ Rechercher tu colles ([Ctrl]+[V]), dans le champ Remplacer
    tu laisse vide
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  10. #10
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Bonjour le fil, bonjour le forum,

    Oui c'est vrai Mercatog ! Comme quoi, quand on a la tête dans le guidon...
    À plus,

    Thauthème

    Je suis Charlie

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Convertir nombre en texte avec Excel
    Par detail17 dans le forum Excel
    Réponses: 8
    Dernier message: 20/07/2016, 09h25
  2. [XL-2007] Additionner cellule texte avec cellule nombre
    Par JulieD33 dans le forum Excel
    Réponses: 7
    Dernier message: 05/02/2015, 14h31
  3. [XL-2010] Convertir texte en nombre avec VBA
    Par Denis_67 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/07/2014, 14h52
  4. Réponses: 11
    Dernier message: 14/06/2011, 18h37
  5. Lecture fichier texte avec un nombre de lignes à ignorer
    Par TravelMate dans le forum Langage
    Réponses: 20
    Dernier message: 02/08/2006, 11h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo