Convertir bloc notes en .xls

Résolu
nus Messages postés 16 Statut Membre -  
nus Messages postés 16 Statut Membre -
bonjour à tous,

après avoir ouvert un fichier extrait d'une base de données (bloc notes, avec .SER comme extension) !! je voudrais convertir via une macro, tous ces bloc notes en .xls ou .xlxs, avec une extension qui peut évoluer (.SER;1 ou .SER;3 ......). c'est pour me faciliter le tri que j'ai préparé déjà via VBA. comme je peux avoir plus de 200 bloc notes!!

merci

windows xp pro, excel vba 2007

11 réponses

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Ce que tu dis ne concorde pas,
    après avoir ouvert un fichier extrait d'une base de données (bloc notes, avec .SER comme extension)
    Cela laisse supposer que tu n'a qu'un seule fichier ?
    Cela laisse aussi supposer que tu voudrais séparer ce fichier en plusieurs ?
    D'ou ma première question et pour plus employer balise, avec quel critères séparer le grand fichier en petit.
    Ou bien, tu a déjà extrait plus de 200 fichiers texte ?
    Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
    NOTE : Je ne répond pas aux MP pour les questions techniques.
    2
  2. aryal888 Messages postés 12 Statut Membre 1
     
    Je pense que lermite22 a voulu dire par balises, séparateurs de champs.
    Donc, tu as un grand nombre de fichiers texte que tu voudrais réunir en un seul
    fichier xls, c'est bien cela??
    1
  3. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Essayons d'être un peu plus précis.
    A partir d'une base de données tu extrait un fichier texte ?
    Tu voudrais le convertir en un certain nombre de xls.
    Qu'est-ce qui détermine les balises pour scinder ce fichier.
    Ou j'ai pas compris et donne plus d'info ou.. donne plus d'info.
    A+
    0
  4. nus Messages postés 16 Statut Membre
     
    alors je ne connais pas grand chose au language info mais c koi les balises ?? :-(

    voilà j'extraits plein de fichier qui sortent en bloc note. si je change l'extension à la main je peux ouvrir mes fichiers, mais quand j'en ai plein, je voudrais tout convertir en un coup avec VBA.

    l'extension .SER;1 ou .SER;3 ...... ce n'est pas moi qui l'a choisi, c auto !

    merci
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. nus Messages postés 16 Statut Membre
     
    alors oui un grand nombre de fichier texte que je veux tous convertir en fichier Excel mais tous séparément car après je ferai des extractions ^^
    0
  7. nus Messages postés 16 Statut Membre
     
    ils sont déjà extrait, je voudrais juste les convertir en Excel.
    c'est juste que les fichiers sont nommés de la manière suivante :
    230073.SER;1
    230074.SER;3
    .......
    230156.SER;4

    ainsi de suite

    les n° ne se suivent pas forcément

    merci
    0
    1. lermite222 Messages postés 9042 Statut Contributeur 1 199
       
      Fait un import en manuel avec l'éditeur de macros, colle ensuite le code dans un poste suivant, histoire de voir quelque paramètres et je verrais pour te faire un code d'automatisation.
      0
  8. nus Messages postés 16 Statut Membre
     
    voilà le code que Excel me donne en ouvrant un fichier

    Sub Macro1()
    '
    ' Macro1 Macro
    ''
    Workbooks.OpenText Filename:= _
    "C:\Documents and Settings\k004418\Bureau\test 2\230073.SER;1", 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

    End Sub

    MERCI
    0
  9. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Tu met le texte sur 2 colonnes ?
    C'est pas grave, s'il le faut ont modifiera par la suite.
    Le plus simple pour le choix du répertoire je te met une boite de dialogue pour le sélectionner.
    Reste une question : quel noms et répertoire pour sauver les xls ?
    Tu dis et j'ai presque fini.
    Edit : Pourrais mettre une boite de dialogue aussi pour le répertoire où sauver les xls
    Edit 2 : Tu à Excel 2007 et tu veux sauver en xls ? ce sont des classeurs pour Excel 97-2003 ?
    Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
    NOTE : Je ne répond pas aux MP pour les questions techniques.
    0
  10. nus Messages postés 16 Statut Membre
     
    je voudrais sauvegarder les fichiers sur le chemin/répertoire siuvant, après je changerai dans la macro si je déplace les fichiers :

    C:\Documents and Settings\k004418\Bureau\test 2\fichier xls

    pour le nom des fichiers récupérer si possible le chiffre avant le .SER (230073, ....)

    pour la boite de dialogue, je verrai après pour la mettre de mon côté, je suis sur une autre macro !! et oui j'ai excel 2007 donc les sauvegarder en .xlsx c parfait

    j'espère avoir bien répondu, je connais pas trop le language

    merci
    0
  11. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    J'ai choisi de sélectionner le répertoire source ET le répertoire destination.
    Cela te facilitera la suite.
    Le code...
    'Procédure de démarrage.
    Sub ConvertiRep()
    Dim fs, F, f1, s, sf
    Dim Chemin As String, CheminCopie As String, NomFichier As String
    '-----------------------------------------------------------
        'Sélectionner le répertoire des fichiers source
        Chemin = SelectionRep
        'Eventuellement remplacer par
        'Chemin = "C:\Documents and Settings\k004418\Bureau\test 2\"
    '-----------------------------------------------------------
        'Sélectionner le répertoire de copie des fichiers
        CheminCopie = SelectionRep
    '-----------------------------------------------------------
        Set fs = CreateObject("Scripting.FileSystemObject")
        Set F = fs.GetFolder(Chemin)
        Set sf = F.Files
        For Each f1 In sf
            If f1.Name Like "*SER*" Then
                OuvreTxtXls Chemin & f1.Name
                s = Split(f1.Name, ".")
                ActiveWorkbook.SaveAs CheminCopie & s(0) & ".xlsx"
                ActiveWorkbook.Close
            End If
        Next
        Set sf = Nothing
        Set F = Nothing
        Set fs = Nothing
    End Sub
    
    Function SelectionRep()
    Const ssfTous = &H1
    Dim objShell As Object, objFolder As Object, oFolderItem As Object
        Set objShell = CreateObject("Shell.Application")
        Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", ssfTous)
        Set oFolderItem = objFolder.Items.Item
        SelectionRep = oFolderItem.Path & "\"
        Set objShell = Nothing
        Set objFolder = Nothing
        Set oFolderItem = Nothing
    End Function
    
    Sub OuvreTxtXls(Fichier As String)
        Workbooks.OpenText Filename:=Fichier, Origin:= _
            xlWindows, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(0, 1)
    End Sub


    Si tu ne sais pas bien comment lancer tu met le curseur au milieu de la procédure ConvertiRep et tu tape F5
    J'ai pas tester (pas tes fichiers) mais ça devrait le faire.
    A+
    0
  12. nus Messages postés 16 Statut Membre
     
    ok c bon
    sa tourne à fond !!

    merci
    0