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 :

Créer une Macro qui transforme un fichier texte en fichier Excel


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Décembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2014
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Créer une Macro qui transforme un fichier texte en fichier Excel
    Bonjour

    Je souhaite créer une macro pour pouvoir ouvrir ce fichier en fichier xlsx

    Pouvez-vous m'aider ?

    Merci
    Salutations
    Vanessa Utzinger

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, essaie déjà via l'enregistreur de macros, sauve en xlsm ou xlsb

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Décembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2014
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci mais en fait cela me donne une mise en page qui ne me convient pas et je ne sais pas comment dire à ma macro d'écrire en respectant le format de cette pièce jointe.

  4. #4
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, que veux-tu faire de ce fichier ?

    Affecter un bouton à la procédure SelFichier

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    Option Explicit
     
    Dim sCheminDossier As String
    Const sNomDossier As String = "Dossier XLSX"
     
    Private Sub CreationDossier()
    Dim FSO As Object
        Set FSO = CreateObject("Scripting.FileSystemObject")
        sCheminDossier = ThisWorkbook.Path & "\" & sNomDossier
        If Not FSO.FolderExists(sCheminDossier) Then FSO.CreateFolder (sCheminDossier)
        Set FSO = Nothing
    End Sub
     
    Private Sub Lecture(sNomFichier As String)
    Dim FSO As Object, sOut As String
    Dim sNom As String, sExt As String
    Dim sNouveauNom As String
     
        Set FSO = CreateObject("Scripting.FileSystemObject")
        sNom = FSO.GetFileName(sNomFichier)
        sExt = FSO.GetExtensionName(sNomFichier)
        sOut = Left$(sNom, Len(sNom) - Len(sExt) - 1)
        Set FSO = Nothing
     
        Workbooks.OpenText Filename:= _
                sNomFichier, _
                Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
                xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
                Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
                TrailingMinusNumbers:=True
     
        Cells.Select
        With Selection.Font
            .Name = "Courier New"
            .Size = 10
            .Strikethrough = False
            .Superscript = False
            .Subscript = False
            .OutlineFont = False
            .Shadow = False
            .Underline = xlUnderlineStyleNone
            .ThemeColor = xlThemeColorLight1
            .TintAndShade = 0
            .ThemeFont = xlThemeFontNone
        End With
        Range("A1").Select
     
        sNouveauNom = RenommerFichier(sCheminDossier, sOut, "xlsx")
        ActiveWorkbook.SaveAs Filename:=sNouveauNom, FileFormat:=xlOpenXMLWorkbook
        ActiveWindow.Close
    End Sub
     
    Private Function RenommerFichier(sDossier As String, sNomFichier As String, sExtension As String) As String
    Dim sNouveauNom As String
    Dim i As Long
    Dim FSO As Object
        Set FSO = CreateObject("Scripting.FileSystemObject")
        If FSO.fileExists(sDossier & "\" & sNomFichier & "." & sExtension) = True Then
            sNouveauNom = sNomFichier
            i = 0
            While FSO.fileExists(sDossier & "\" & sNouveauNom & "." & sExtension) = True
                i = i + 1
                sNouveauNom = sNomFichier & Chr(40) & Format(i, "000") & Chr(41)
            Wend
            sNomFichier = sNouveauNom
        End If
        Set FSO = Nothing
        RenommerFichier = sDossier & "\" & sNomFichier & "." & sExtension
    End Function
     
    Sub SelFichier()
    Dim Fichier As Variant
        ChDir ThisWorkbook.Path
        Fichier = Application.GetOpenFilename("Fichiers Texte (*.txt), *.txt", Title:="Sélection Fichier")
        If Fichier = False Then Exit Sub
        DoEvents
        Application.ScreenUpdating = False
        CreationDossier
        Lecture (Fichier)
        Application.ScreenUpdating = True
    End Sub

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Décembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2014
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci kiki29 mais je pense que je n'ai pas assez de connaissances pour comprendre ta dernière réponse :-(

  6. #6
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, tu copies l'ensemble du code dans un module standard, puis tu affectes un bouton "Formulaire" ou "ActiveX" à la macro SelFichier.
    En cliquant sur ce bouton une boite de dialogue t'invitera à sélectionner un fichier *.txt, cette sélection faite la transformation est effectuée et un dossier "Dossier XLSX" est créé, le classeur de la transformation y est sauvé ( en tenant compte des éventuels doublons via un indice (001)(002) etc ).

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Décembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2014
    Messages : 6
    Points : 5
    Points
    5
    Par défaut MERCIiiiiiiiiiiiiiiiiiiiiiiiiiii
    C'est juste trop trop bien... Il faut vraiment que je prenne le tps d'apprendre tout cela...
    Tout ce langage est un mystère encore pour moi...
    C'est top :-)
    Un grand grand merci.
    Vanessa


  8. #8
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Pense a lui faire un petit ça fait toujours plaisir
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  9. #9
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, tu n'as pas répondu à cette question : que veux-tu faire de ce fichier ? car il y a peut-être d'autres solutions à ton problème ( pdf par exemple ? )

  10. #10
    Futur Membre du Club
    Femme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Décembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2014
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Pour le PDF c'est ok pour moi :-) merci tout de même

  11. #11
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Re, excuse-moi mais est-ce que cela t'intéresse ou pas , ton fichier c'est pour de l'archivage ?

  12. #12
    Futur Membre du Club
    Femme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Décembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2014
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Je sais le faire pour le mettre en PDF.
    Donc tout est ok pour moi.. pas besoin de plus.
    merci

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

Discussions similaires

  1. [XL-2010] Créer une macro qui previent si le fichier a été modifié
    Par Philippe76 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/07/2011, 23h24
  2. Réponses: 2
    Dernier message: 29/07/2010, 21h58
  3. [WD-2007] Créer une macro qui rempli des etiquettes automatiquement
    Par damienedme dans le forum VBA Word
    Réponses: 1
    Dernier message: 03/09/2009, 12h03
  4. Créer une macro qui reproduit vers le bas
    Par Jimy6000 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/01/2008, 10h43
  5. Réponses: 5
    Dernier message: 23/10/2007, 14h56

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