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 :

passage de format texte vers nombre


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 243
    Points : 86
    Points
    86
    Par défaut passage de format texte vers nombre
    Bonjour
    Je reviens vous carj'ai un pb qui me bloque totalement

    j'ai une feuille excel avec une colonne de chiffres, mais qui sont au format texte
    Ces nombres sont ecrits de la forme suivante
    727*355,38
    1*019*815,32
    ect......

    Tout d'abord je veux changer les virgules par des points. ça j'ai pas de mal
    Par contre, un espace sépare les milliers ( nombres regroupés par paquets de 3...)
    Il me semble que ces espaces n'en sont pas, puisque j'arrive pas à les supprimer. Excel semble ne pas les reconnaître!!!!

    Mon but est donc de trouver le moyen de changer les virgules par de points, d'enlever les espaces et de les mettres en format nombre.


    Toute piste serait la bien venue

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Salut,

    Si à l'affichage tu as les espaces et pas dans la barre de formule: c'est que les espaces sont dans le format de cellules.
    En modifiant le format de cellules : tu devrais pouvoir enlever les espaces.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 243
    Points : 86
    Points
    86
    Par défaut
    Merci pour ta réponse
    En effet je peux enlever l'espace dans la barre
    Mais quand je veux utiliser les fonctions excel pour effecer cet espace, ça marche pas.

  4. #4
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Si tes cellules ont un format numérique/monétaire avec séparateur de milliers, l'espace n'y est pas. C'est le format qui le met.

    De plus,
    quand je veux utiliser les fonctions excel pour effecer cet espace, ça marche pas.
    Si tu penses à la fonction SUPPRESPACE(), elle laisse au moins un espace entre chaque mot pour les cellules dont le format est de type texte et est sans effet sur des cellules de type numérique.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 243
    Points : 86
    Points
    86
    Par défaut
    Justement je veux pas d'espace.

    Et le format de mes cellules est en texte.
    Je vois pas là!!

  6. #6
    Membre averti Avatar de mordrhim
    Inscrit en
    Avril 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 270
    Points : 314
    Points
    314
    Par défaut
    tes cellules au format texte : # ###,##

    pour enlever les espaces :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SansEspace = Replace(NbreTexte, " ","")
    pour convertir au format nombre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LeNombre = CDbl(SansEspace)
    Il ne faut pas remplacer le 'point' par une 'virgule', le Double etant du format ####,##

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 243
    Points : 86
    Points
    86
    Par défaut
    ca marche toujour pas

  8. #8
    Membre averti Avatar de mordrhim
    Inscrit en
    Avril 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 270
    Points : 314
    Points
    314
    Par défaut
    donne un exemple alors (pas tout ton programme mais un fichier avec des cellules remplies au format que tu as)

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 243
    Points : 86
    Points
    86
    Par défaut
    Pour l'exemple j'ai ça
    comme données

    170*048,54
    406*033,21
    92*850,78
    1*019*815,32
    145*502,73
    520*616,72
    1*096*284,75
    559*269,76

    C'est du format txt aperement. Les chiffres sont séparés 3 par 3 par un espace qui n'estpas un espace au fait. En tout cas j'arrive pas à le supprimer ni avec replace ni avec une autre fonction excel

    Mon but est d'enlever les espaces, de changer la virgule par un point et de rendre le format en nombre pour que je puisse faire des sommes par exemple.

    J'ai pu concocter une fonction excel qui est celle là:

    =CNUM(SI(ET(NBCAR(G4)>7;NBCAR(G4)<11);GAUCHE(G4;NBCAR(G4)-7)&DROITE(G4;6);SI(NBCAR(G4)>11;STXT(G4;1;NBCAR(G4)-11)&STXT(G4;NBCAR(G4)-9;3)&DROITE(G4;6);SI(ET(NBCAR(G4)>1;NBCAR(G4)<7);G4;SI(I4="FAUX";G4;0)))))

    avec en colonne I =ESTERR(CHERCHE(",";G4;1))

    Là ça marche
    Mais je veux faire une macro à la place.

    Mais j'arrive pas en vba à implementer cette formule

    J'espere avoir été clair
    Merci d'avance pour vos réponses

    En sachant que je ne peux avoir que 2 décimales, mais jusqu'a 8 chiffres à gauche de la virgule . Donc il faut un truc dynamique ....

  10. #10
    Membre averti Avatar de mordrhim
    Inscrit en
    Avril 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 270
    Points : 314
    Points
    314
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LeNombre = CDbl(Replace(LeNombreEnTexte,"*",""))
    ou LeNombreEnTexte est donnée par la valeur de ta cellule
    ex :
    si le nombre est en A1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LeNombre = CDbl(Replace(Range("A1).value,"*",""))
    on verra mais la je suis plus la pour la journée

    bubaille

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 243
    Points : 86
    Points
    86
    Par défaut
    Je viens de remarquer qu'en copiant les exemples, les fameux espaces sont remplacées par des * !!!!!!!!!!

    la declaration de la variable le nombre doit se faire sous quel type?

    Ca beugue et m'affiche incompatibilité de type!

  12. #12
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Joins ton fichier, on parle dans le vide, là. As-tu essayé de remplacer, dans toute la colonne, l'espace par un espace. J'ai eu le cas et ça a fonctionné.
    Sinon... Copie ta feuille dans un fichier vierge, tu le zippes et tu le joins.
    A+

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 243
    Points : 86
    Points
    86
    Par défaut
    OK je vous envoye le fichier c'est la dernière colonne qui me pose le pb

    Merci en tou cas
    Fichiers attachés Fichiers attachés

  14. #14
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    Bonjour à tous


    Ton fichier en retour avec soit fonction perso, soit ue macro à lancer qui traite toute la colonne G

    Bonne journée

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 243
    Points : 86
    Points
    86
    Par défaut
    Et quesque tu fais des décimales
    Mais je vais le mettre à ma sauce.
    Merci

  16. #16
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    re:

    je ne comprends pas ta question, elles y sont les decimales !!!!!!!!

    @ te lire

  17. #17
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Ton espace est unchr(167) (Alt+255) c'est pour ça !
    Ensuite, le format de chaque cellule est "Texte". Malheureusement le changement de format ne suffit pas
    Bref, une macro pour faire le travail
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Remplacer_Chr255_par_Chr67()
        Cells.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
        DerniereLigne = Range("A1").SpecialCells(xlCellTypeLastCell).Row
        Columns("G:G").NumberFormat = "0.00"
        For i = 1 To DerniereLigne
            Range("G" & i) = Val(Range("G" & i))
        Next
    End Sub
    A+

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 243
    Points : 86
    Points
    86
    Par défaut
    Pour la derniere solution
    la macro, pour 566*796,56 par exemple me renvoit 566,00 dans la cellule!!

    Je continue à fouiller...

  19. #19
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    re:

    tu n'avas mis que des valeurs, pas des formules dur dur

    dans la macro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Mid(Range("G" & j).Value, i, 1) = "," Then
    devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if instr(",+-/*",mid(range(G" & j).value > 0 then
    si tu as des formules, il faut initialiser newval = "="

    salutations

  20. #20
    Membre actif Avatar de ilcocodrillo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Âge : 18
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Points : 276
    Points
    276
    Par défaut Pas besoinde vba pour ça
    Utilise la commande "convertir" du menus "données" en ayant d'abord pris soin de sélectionner le colonne et qu'il n'y ai rien à droitre de celle ci. puis tu choisi "délimité,suivant, tu sélectionne comme caractère séparateur * et puis tu clique sur suivant puis terminer et voilà

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/05/2015, 10h29
  2. [XL-2010] supprimer l'espace , convertir le format text en nombre
    Par ghazi.hlioui dans le forum Excel
    Réponses: 1
    Dernier message: 06/03/2014, 14h01
  3. [XL-2003] Conversion texte vers nombre
    Par Toine-45 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 10/01/2014, 17h40
  4. [XL-2003] Passage de format texte à date
    Par Sibuxian dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/05/2010, 14h36
  5. format texte vers date
    Par VBBBA dans le forum Macros et VBA Excel
    Réponses: 28
    Dernier message: 18/11/2007, 16h59

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