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 en nombre en VBA


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2018
    Messages : 6
    Par défaut Convertir texte en nombre en VBA
    bonjour

    je souhaiterai faire un copier coller (via code vba) d'une colonne ou les donner sont en texte a l'origine, pour les coller sur une autre colonne en format nombre.
    sachant que les donner a copier sont des chiffre en format texte.
    j'ai fait ce code mais rien le copier - coller reste en format texte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sheets("1°&2° TOUR  Allées").Visible = True   
        Columns("D:D").Select
        Selection.Copy
        Columns("AG:AG").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False

    merci de votre aide:

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    C'est un code fait à l'arrache directement sur le forum et non testé. Il se peut donc qu'il y ait un peu de débugage.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim Cel As Range
    For Each Cel In UsedRange.Column("D")
       Cel.Offset(0, 29).Value = Val(Cel.Value)
    Next Cel
    Lire : https://msdn.microsoft.com/fr-fr/VBA...s/val-function

    Pour que ça marche, il faut bien sûr que tes cellules de destination ne soient pas au format Texte.

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    J'ai des difficultés à comprendre que l'on puisse poser une telle question.
    Si les données sont en format texte, mais dont la chaîne est une expression numérique, la transposition en numérique se fait très simplement dans une autre cellule (puisque tel est don voeu), par simple formule Excel.
    Ainsi, si tu as en A1 du texte "transcriptible" en numérique, il te suffit de mettre en B1, formatée en numérique, la simple formule
    !!!
    Tu comprendras dès lors mon grand étonnement, puisque l'on est ici à du B.A.BA

    Si, par contre, ce que tu as en A1 n'est pas une expression de chaine numérique, ta question est à reposer avec les précisions nécessaires.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2018
    Messages : 6
    Par défaut
    bonjour UNPARIA

    les données récupéré dans la colonne D font partie d'une recherche texte (=STXT(PLAN_CHARG!E2;16;4))
    donc ma série de 4 chiffres apparais en format texte.
    je souhaiterais copier les donner dans cette colonne et les coller , et les convertir en nombre
    merci

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2018
    Messages : 6
    Par défaut
    Bonjour Menhir

    Merci pour ta formule ; mais cela ne fonctionne pas erreur 424

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Ta réponse, frajowc, ne change pas un seul iota à celle que je t'ai faite !

  7. #7
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2016
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2016
    Messages : 27
    Par défaut
    Bonjour !

    En reprenant l'approche de Menhir, essaie ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim Cel As Range
    Dim Plage As Range
    Set Plage = Application.Intersect(ActiveSheet.Columns("D"), ActiveSheet.UsedRange)
    For Each Cel In Plage.Cells
        Cel.Offset(0, 29).Value = Val(Cel.Value)
    Next Cel

  8. #8
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour MarcClap
    A l'armée, on a l'expression : "même punition pour même motif".
    La "punition" arrive si expression numérique non entière, avec une version où le séparateur décimal n'est pas le point.

  9. #9
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2016
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2016
    Messages : 27
    Par défaut
    Bonjour Unparia,

    Chez moi ça marche. Attendons de voir ce que ça donne chez frajowc. Il a peut-être que des nombres entiers ou le séparateur de décimales ad'hoc.

  10. #10
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Si cela "marche" chez toi, c'est que :
    - soit le séparateur décimal de ta machine est le point
    - soit que le texte traité n'est pas l'expression d'un décimal.
    Chez moi (séparateur virgule) :
    si A1 contient par exemple "11,12" (du texte, donc)
    et que j'exécute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("B1").Value = Val(Range("A1").Value)
    B1 ne contiendra pas 11,12, mais 11

  11. #11
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2016
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2016
    Messages : 27
    Par défaut
    Oui mais il avait indiqué qu'il s'agissait de 4 chiffres. Donc si c'est effectivement que ça, ça fonctionnera. Dans le cas contraire, on pourra toujours compléter l'ébauche si c'est plus complexe.

  12. #12
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par frajowc Voir le message
    les données récupéré dans la colonne D font partie d'une recherche texte (=STXT(PLAN_CHARG!E2;16;4))
    Pourquoi ne pas avoir fait simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =CNUM(STXT(PLAN_CHARG!E2;16;4))
    Citation Envoyé par frajowc Voir le message
    Merci pour ta formule ; mais cela ne fonctionne pas erreur 424
    J'ai prévenu qu'il y aurait sans doute un peu de débugage à faire.
    Tu comptes un peu participer à la résolution de TON problème ou tu attends que ça te tombe tout cuit dans le bec.

    En plus, tu ne prends même pas la peine de donner la description de l'erreur ni la ligne concernée.

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2018
    Messages : 6
    Par défaut
    bonjour MarcClap et merci

    non ta formule ne fonctionne pas.

    je vais reformuler ma demande :

    dans la colonne D jai une série de quatre chiffre ,qui elle même vient d'une série d'écriture que j’appellerais clef transport:

    de cette clef je fait la formulation suivante dans une feuille exel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =STXT(PLAN_CHARG!E2;16;4)
    a partir de la ma série de 4 chiffes (N° de tour) ;là pour l'exemple 7300.
    je veux faire un copier de cette valeurs dans la colonne AG
    a partir de ce copier coller il y a une recherche qui est faite. formule :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(AG6="";"";(RECHERCHE(AG6;'mission infolog'!A:B;'mission infolog'!B:B)))
    hors lors du coller des N° de tour ils apparaissent en texte , et nom pas en nombre , d'où ma problématique pour la recherche.

    actuellement j'ai le code ci-dessous mais qui ne change rien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            Sheets("1°&2° TOUR  Allées").Visible = True
          Columns("D:D").Select
        Selection.Copy
      Columns("AG:AG").Select
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
           :=False, Transpose:=False
    merci d’éclaire ma lanterne

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2018
    Messages : 6
    Par défaut sauvée !!
    ok merci Menhir

    ton CNUM résout la problématique


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =CNUM(STXT(PLAN_CHARG!E2;16;4))

  15. #15
    Nouveau membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2018
    Messages : 6
    Par défaut
    merci de votre aide a tous

    pas facile de récupéré un VBA 2003 sans commentaire et de le passé sur du 2013....

  16. #16
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour !

    Citation Envoyé par frajowc Voir le message
    pas facile de récupéré un VBA 2003 sans commentaire et de le passé sur du 2013....
    Aucun rapport avec la version car c'est juste un problème de conception ‼

    Beaucoup de mes codes développés sous 2003 fonctionnent sans souci dans les versions supérieures !
    La plupart de mes réponses dans le bon forum - ici n'étant pas celui du VBA ‼ - proviennent d'une version 2003
    sans que cela gêne par exemple un demandeur sous la version 2013 …

    ___________________________________________________________________________________________________________________________
    Je suis Paris, Egypte, Nigeria, New-York, Mogadicio, Barcelone, London, Manchester, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

Discussions similaires

  1. [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
  2. Convertir texte en nombre
    Par Mighty222 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/06/2010, 11h00
  3. Convertir texte en nombre
    Par guyanais dans le forum Macros et VBA Excel
    Réponses: 37
    Dernier message: 02/02/2009, 14h21
  4. convertir texte en nombre ou date
    Par 20100. dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/04/2008, 08h12
  5. Réponses: 2
    Dernier message: 06/12/2004, 21h38

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