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 :

[VBA-E] Macro pour convertir un fichier texte en excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 19
    Points : 12
    Points
    12
    Par défaut [VBA-E] Macro pour convertir un fichier texte en excel
    Bonjour,

    Je débute dans le VB et j'aimerai connaitre le code permettant de créer un fichier excel à partir d'un fichier texte.

    4000 LUP69 LUP69 FIL -1 SAF 5 56
    99 ITA00 ITA00 FIL 1 SAF 5 89

    Le fichier texte se présente de cette forme (les colonnes sont séparées par une tabulation). J'aimerai obtenir l'excel correpondant avec une petite modicication.
    En effet, j'aimerai aussi multiplé la colonne 8 par la colonne 5 et stocker le résultat dans la colonne 8 (écrasé) pour obtenir ceci.

    4000 LUP69 LUP69 FIL -1 SAF 5 -56
    99 ITA00 ITA00 FIL 1 SAF 5 89


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ' Transforme le fichier texte en version Excel
    Workbooks.OpenText _
            Filename:="V:\FINANCE\INFORMATIQUE\ZNHERN\test\EXPORT_DATA_MIK.txt", _
            Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
            Tab:=False, Semicolon:=True, Comma:=False, Space:=False, Other:=False, _
            FieldInfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2), _
            Array(5, 2), Array(6, 2), Array(7, 2), Array(8, 2), Array(9, 2), _
            Array(10, 2), Array(11, 2), Array(12, 2), Array(13, 2), 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)), DecimalSeparator:=".", _
            TrailingMinusNumbers:=True
    ActiveWindow.SmallScroll Down:=-1
    J'ai déjà récupérer ce bout de code que je n'arrive pas à faire marcher.

    Je vous remercie d'avance.

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    dans ton code si tu selectionne OpenText et appelle l'aide en ligne VBA excel .. par F1 ..tu trouveras la liste des options relative à la fonction ... à priori tes données étant des colonnes limitées par des tabulation modifie les 2 options suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tab:=True, Semicolon:=False
    ensuite il faut voir comment tu ve lancer ta macro ... ? si elle charge toujours le même fichier ou si tu doit en sélectionner un ...

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Merci bbil.

    En effet, ma stat lance toujours le même fichier. C'est une macro que je rappelle toutes les semaines.
    Juste une dernière question. Comment modifier une colonne en la multipliant avec une autre et en lui foutant le résultat ?

    Je suppose que je vais parcourir tout le fichier avec un while et incrémenter une valeur mais comment me balader dans mon fichier excel ?

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    tiens pour la multipication voilà un peu de code qui agit sur la feuille active :

    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 Multiplie()
      Dim r As Range 'Colonne à parcourir
      Dim iX As Integer ' index ligne parcouru
      'Par exemple colonne 8...
      Set r = Range(Cells(1, 8), Cells(1, 8).End(xlDown))
      For iX = 2 To r.Rows.Count '¨parcours les lignes en oubliant la 1°
        Debug.Print "IX : " & iX & ".."; r.Cells(iX)
        r.Cells(iX) = r.Cells(iX) * r.Parent.Cells(iX, 5)
        ' r.Parent = feuille contenant la colonne initiale
        '.Cells(ix,5) .. 5 = Colonne E
      Next
     
    End Sub

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Je vais essayer et vous tiens au courant.

    Merci.

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Ca l'air de marcher. Je vous remercie.


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

Discussions similaires

  1. macro pour découper un fichier pdf sous excel
    Par jibdu94 dans le forum Général VBA
    Réponses: 1
    Dernier message: 18/05/2011, 23h00
  2. [XL-2000] VBA - Parcourir dossiers, importer données de fichiers textes dans excel
    Par news4teab dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/04/2010, 18h09
  3. Réponses: 2
    Dernier message: 04/06/2007, 15h39
  4. [VBA-E] Macro pour tous fichiers Excel ?
    Par belfaigore dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 05/07/2006, 18h25
  5. Réponses: 13
    Dernier message: 05/07/2006, 09h39

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