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 donnée par code vba


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2008
    Messages : 51
    Par défaut Convertir donnée par code vba
    Bonjour,

    J'aimerai convertir mes données par le code vba. J'ai tenté de m'aider par la marco enregistrée, mais bon...

    Les données sont séparées par une virgule dans une feuille excel

    Merci d'avance

    Marie

  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
    Ton fichier de données, il est dans quel format ? .txt ou .csv ?

    Excel offre déjà des outils pour lire ce genre de fichiers.

    À moins que tu ne cherches à traiter tes données autrement... Mais là, comme nous ne sommes pas devins... et notre stock de boules de cristal est épuisé depuis longtemps... et le marc de café, pour ce genre de truc, c'est pas fiable... (c'était juste pour détendre l'atmosphère, je me lève, chez nous, c'est le matin...)

    bon... heu... sans rire... Explique un peu plus...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2008
    Messages : 51
    Par défaut
    ok ouain j'Avoue j'ai été plus que minimaliste...

    Mon fichier est en .csv

    Tout ce que je veux en fais, c'est de prendre les données et de les séparer dans des colonnes différentes.

    Je dois le faire par vba, car j'ai plusieurs fichiers que je dois ouvrir et tranférer ensuite des données de fichier en fichier...

    Et pour ce qui est du matin, bien bon réveil!!

    Marie

    Tu dis qu'il existe une façon de le faire par excel, mais est ce que tu parles à même le fichier excel, ou bien tu parles d'une fonction vba déjà existante....

    Merci

    Marie

  4. #4
    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
    Dans une nouvelle feuille du classeur ouvert, ou dans un nouveau classeur,

    • Menu Données, Données externes, Importer des données...
    • Dans la boîte de dialogue Sélectionner la source de données, tu sélectionne le fichier qui t'intéresse et tu cliques sur Ouvrir.
    • Suivre les étapes de l'Assistant Importation de texte.


    Je n'ai pas testé avec l'enregistreur de macro, mais celui-ci te donnera certainement un bon départ pour ton code...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2008
    Messages : 51
    Par défaut
    j'ai déja essayé la macro enregistrer et sérieux ca me donne selon moi n'importe quoi...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Columns("A:A").Select
        Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
            Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
            :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
            Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
            ), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array _
            (20, 1), Array(21, 1), Array(22, 1), Array(23, 1), Array(24, 1), Array(25, 1), Array(26, 1), _
            Array(27, 1), Array(28, 1), Array(29, 1), Array(30, 1), Array(31, 1), Array(32, 1), Array( _
            33, 1), Array(34, 1), Array(35, 1), Array(36, 1), Array(37, 1), Array(38, 1), Array(39, 1), _
            Array(40, 1), Array(41, 1), Array(42, 1), Array(43, 1), Array(44, 1), Array(45, 1), Array( _
            46, 1), Array(47, 1), Array(48, 1), Array(49, 1), Array(50, 1), Array(51, 1), Array(52, 1), _
            Array(53, 1), Array(54, 1), Array(55, 1), Array(56, 1), Array(57, 1), Array(58, 1), Array( _
            59, 1), Array(60, 1), Array(61, 1), Array(62, 1), Array(63, 1), Array(64, 1), Array(65, 1), _
            Array(66, 1), Array(67, 1), Array(68, 1), Array(69, 1), Array(70, 1), Array(71, 1), Array( _
            72, 1), Array(73, 1), Array(74, 1), Array(75, 1), Array(76, 1), Array(77, 1), Array(78, 1)) _
            , TrailingMinusNumbers:=True
    Enfin, si quelqu'un s'y retrouve... merci d'avance

    Marie

    Le code dans le message s'y haut est pour convertir à meme un fichier .csv

    Le code que je mets ici , est la macro engegistrée que zazaraignée m'a suggéré de faire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
        With ActiveSheet.QueryTables.Add(Connection:= _
            "TEXT;D:\Documents and Settings\CU4798\Bureau\louis eric\new\Plansem0602.csv", _
            Destination:=Range("A1"))
            .Name = "Plansem0602"
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .TextFilePromptOnRefresh = False
            .TextFilePlatform = 850
            .TextFileStartRow = 1
            .TextFileParseType = xlDelimited
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = False
            .TextFileSemicolonDelimiter = False
            .TextFileCommaDelimiter = True
            .TextFileSpaceDelimiter = False
            .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
            1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 _
            , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
            .TextFileTrailingMinusNumbers = True
            .Refresh BackgroundQuery:=False
    Mais moi j'ai déjà la parti du code qui permets d'ouvrir mes deux fichier .csv

    Ce que je ne sais pas par ou commencer, c'est pour la partie convertion vers des données en colonnes.

    Je ne pense pas pouvoir utiliser la macro engegistré puisqu'à chaque semaine je change de fichier.

    Alors j'ai crée une macro qui ouvre deux fichiers selon mes besoins et à partir de la , votre aide entre en jeux.

    Merci

    Marie

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2008
    Messages : 51
    Par défaut
    Bonjour à force de chercher, voici ce que j'ai trouvé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Public Sub ConvertirValeur(ByRef wbcache As Workbook, ByRef wbacces As Workbook)
     
    With wbcache
        Columns("A:A").Select
       .TextToColumns Destination:=Sheets(1).Cells(1, 1), _
        DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
        :=Array(1, xlGeneralFormat), TrailingMinusNumbers:=True
    End With
     
    End Sub
    sauf que la il indique : erreur 438 propriété ou méthode non géré par cet objet
    tout de suite aprés la dernière ligne de code...

    Auriez-vous des idées??

    Merci
    Marie


    merci

Discussions similaires

  1. [XL-2003] Actualiser les données xml par code vba
    Par kiki.gaby dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 07/04/2009, 12h04
  2. ajouter un utilisateur au groupe users par code VBA ?
    Par electrosat03 dans le forum Access
    Réponses: 2
    Dernier message: 12/01/2007, 17h00
  3. [VBA-E] Change links par code VBA
    Par Capsule dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/01/2007, 10h09
  4. Définir marge par code VBA
    Par tamyme dans le forum Access
    Réponses: 2
    Dernier message: 10/03/2006, 09h43
  5. Comment faire Copier/Coller par code VBA sur INTERNET...
    Par GESCOM2000 dans le forum Access
    Réponses: 5
    Dernier message: 02/01/2006, 13h19

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