Changer extension .txt en xls

Résolu
Aussie44 Messages postés 3 Statut Membre -  
isrforlife Messages postés 144 Statut Membre -
Bonjour,

J'aurais besoin de changer l'extension de 3000 fichiers en .txt en .xls...vu la tâche j'aimerais utiliser une macro ;o))

J'en ai trouvé une sur le forum qui fonctionne bien mais qui ne boucle pas. Il est donc nécessaire à chaque fois d'aller ouvrir le fichier à convertir. Est-il possible de mettre en place une boucle sachant que tous mes fichiers d'entrée et de sortie se trouveront dans le même répertoire.

Voici la macro que j'ai trouvé (merci Bidouilleu_R) :

Sub Convertit_en_xls()
Dim Chemin As String
Dim Fichier As String
Dim LeNom As String

Fichier = Application.GetOpenFilename("Text Files (*.txt), *.txt")
Workbooks.OpenText (Fichier)

While Right(Fichier, 1) <> "\"
LeNom = Right(Fichier, 1) & LeNom
Fichier = Left(Fichier, Len(Fichier) - 1)
Wend
CheminSource = Left(Fichier, Len(Fichier) - 1)

While Right(CheminSource, 1) <> "\"
CheminSource = Left(CheminSource, Len(CheminSource) - 1)
Wend
Chemin = CheminSource & "Données Excel\"

LeNom = Left(LeNom, Len(LeNom) - 3) & "xls" ' le nom avec xls

ActiveWorkbook.SaveAs Chemin & LeNom
ActiveWorkbook.Close

End Sub

Un grand grand merci par avance pour votre aide.

4 réponses

  1. sk8dada Messages postés 52 Statut Membre 7
     
    Veux tu vraiment le faire via VB? Car si c'est juste pour changer l'extension de tes 3000 fichiers texte j'ai un logiciel gratuit qui te fait ça
    1
    1. Aussie44 Messages postés 3 Statut Membre
       
      Merci sk8dada de ta réponse.
      Dans l'absolu je préférerais en vba mais sait-on jamais...Ton logiciel est entièrement gratuit ? Il pourrait me modifier l'extension pour l'intégralité des fichiers sans avoir à aller les chercher 1 par 1.
      bon après-midi.
      0
    2. Aussie44
       
      Le problème résolu. Merci !
      0
    3. isrforlife Messages postés 144 Statut Membre 10
       
      Salut et bien joué pour avoir résolu ton problème ! Peux-tu nous faire partager ta solution ? Cela pourra aider qqu un jours si il a le même problème que toi !
      0
  2. isrforlife Messages postés 144 Statut Membre 10
     
    Sub Bouclemoiça()
    dim i = 0
    While (i != 3000)
    Convertit_en_xls()
    Wend

    En adaptant un truc comme ça, cela ne pas fonctionner ?
    0
  3. isrforlife Messages postés 144 Statut Membre 10
     
    j'ai oublier l'incrémentation de i ! sinon ça boucle infinie :)
    "i += 1"
    0
  4. Aussie44 Messages postés 3 Statut Membre
     
    Merci isrforlife de ta réponse.
    Etant complètement novice en vba, j'aurais 2 petites questions :
    1) l'incrementation, c'est i+1 non ? Je place l'incrementation avant "Wend" ?
    2) la boucle je la place où par rapport au programme que j'ai ? A l'intérieur -si oui où exactement-, avant le programme ou après le programme.
    Bon après-midi
    0