Convertir bloc notes en .xls

Résolu/Fermé
nus Messages postés 14 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 3 février 2012 - 2 févr. 2012 à 12:58
nus Messages postés 14 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 3 février 2012 - 3 févr. 2012 à 15:28
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
A voir également:

11 réponses

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 2/02/2012 à 18:33
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
aryal888 Messages postés 12 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 2 février 2012 1
2 févr. 2012 à 14:19
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
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
2 févr. 2012 à 13:24
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
nus Messages postés 14 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 3 février 2012
2 févr. 2012 à 13:28
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nus Messages postés 14 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 3 février 2012
2 févr. 2012 à 15:20
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
nus Messages postés 14 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 3 février 2012
3 févr. 2012 à 09:54
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
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
3 févr. 2012 à 11:15
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
nus Messages postés 14 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 3 février 2012
3 févr. 2012 à 11:20
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
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 3/02/2012 à 12:43
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
nus Messages postés 14 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 3 février 2012
3 févr. 2012 à 14:01
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
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
3 févr. 2012 à 14:53
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
nus Messages postés 14 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 3 février 2012
Modifié par nus le 3/02/2012 à 15:44
ok c bon
sa tourne à fond !!


merci
0