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

VB 6 et antérieur Discussion :

VB6+Excel Copier/coller format numérique


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 30
    Par défaut VB6+Excel Copier/coller format numérique
    Salut,

    j'ai un petit soucis de conservation de format numérique

    description rapide :
    j'ouvre un fichier texte avec excell,
    je copie 2 colonnes
    je ferme le fichier texte
    je colle les deux colonnes dans un autre fichier

    problème : la virgule disparait

    config : séparateur numérique = ","

    description détaillée :
    j'ai un fichier texte avec des valeurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    41,372203	0,000000
    40,389933	0,020408
    ...
    62,817208	0,979592
    63,749042	1,000000
    je l'ouvre avec excel
    (je l'enregistre juste pour debugger)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            ExcelApp.Workbooks.OpenText FileName:=nomFichierLoi, Origin _
                          :=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
                          xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, _
                          Comma:=False, Space:=True, Other:=False
           ExcelApp.Range(Cells(1, 1), Cells(nbPoints, 2)).Select
           ExcelApp.Selection.NumberFormat = "0.000000"
     
            ' debug 
            ExcelApp.ActiveWorkbook.SaveAs FileName:=nomFichierLoi + ".xls", _
            FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
            ' /debug
    ce qui me donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    41,372203	0,000000
    40,389933	0,020408
    ...
    62,817208	0,979592
    63,749042	1,000000
    je veux copier ces deux colonnes dans un nouveau fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            ExcelApp.Range("A1:B" & nbPoints).Select
            ExcelApp.Selection.Copy
            ExcelApp.ActiveWorkbook.Close (False) ' Fermeture
    puis je ferme mon fichier vu que j'en ai plus besoin

    là j'ai un soucis, mon espion de visual m'indique que toutes mes "," ont sauté et que les valeurs comme 62,817208 sont devenues 62817208... (en exécutant l'action close) sur une seule colonne...
    bizarrement sur la seconde colonne toutes les valeurs sauf le 0 et le 1 sont devenues des champs textes ("Nombre stocké sous forme de texte")

    du coup quand je veux coller mes deux colonnes...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        ExcelApp.Sheets(nomLoi + "_DATA").Activate
        ...
        ExcelApp.Range(Cells(3, 2 * i - 1), Cells(2 + nbPoints, 2 * i)).Select
        ExcelApp.ActiveSheet.Paste
    j'obtiens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    41372203	0,000000
    40389933	0,020408   (0,020408 -> "Nombre stocké sous forme de texte")
    ...
    62817208	0,979592   (0,979592 -> "Nombre stocké sous forme de texte")
    63749042	1000000
    j'ai bien essayé de remettre un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ExcelApp.Selection.NumberFormat = "0.000000"
    juste avant le paste mais j'obtiens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    41372203,000000	0,000000
    40389933,000000	0,020408
    ...
    62817208,000000	0,979592
    63749042,000000	1000000,000000
    je trouve pas ...

  2. #2
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    La programmation en VB, c'est de l'anglais. Faut pas l'oublier. Tu dois remplacer les virgules des valeurs de cellules par des points. Il est possible que le format des cellule soit de type Texte. Tu devras donc ensuite modifier le format des cellule pour Standard.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 30
    Par défaut
    ok, merci
    j'ai ajouté la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ExcelApp.Selection.Replace What:=",", Replacement:="."
    avant le close et ça marche

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

Discussions similaires

  1. [Excel] Copier / Coller de colonne
    Par trihanhcie dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/02/2007, 16h53
  2. [Excel] - Copier/coller
    Par DBBB dans le forum Excel
    Réponses: 2
    Dernier message: 16/01/2007, 19h46
  3. VB Excel : copier coller selection de plusieurs lignes
    Par skuzo_mars dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/01/2007, 14h48
  4. Réponses: 1
    Dernier message: 19/12/2006, 16h12
  5. Excel : copier coller
    Par mael94420 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/07/2006, 13h26

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