Problème importation fichier texte dans Excel

  • Initiateur de la discussion Initiateur de la discussion sophievba
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

sophievba

Guest
Bonjour à tous,


J'ai une problèmatique que je ne m'explique pas, j'ai eu beau fouiller un peu partout.

Lorsque je crée un fichier texte en mettant une série de chiffre, et qu'ensuite je l'importe dans Excel celui-ci me modifie ma série de chiffre ! Avez-vous déjà remarqué ce phénomène et trouver la solution, SVP?

Exemple : Créer un fichier texte avec plus de 15 chiffres tel que

1ère ligne mettre : 1234567891234567
2ème ligne mettre : 012345678912345678

Ouvrir le fichier avec Excel et vous obtiendrez :

Dans la première cellule : 1234567891234560
Dans la deuxième cellule : 12345678912345678

Vous remarquez dans la première ligne que le dernier chiffre est devenu 0 au lieu de 7, alors que dans la deuxième ligne il supprime le premier 0 !!!

Help, please, car cela me fausse mes stats quand j'importe mon fichier.

Par avance merci à tous et très bonne journée.

Sophie.
 
Re : Problème importation fichier texte dans Excel

Pierrejean,

Merci pour votre gentillesse et votre efficacité.
Grâce à vous j'ai pu avancer dans mon travail et je vous en suis reconnaissante.

Avant de vous solliciter pour la suite de ma macro, je souhaiterai tout de même essayer de mon côté. Même si je ne suis pas douée, je veux apprendre, quitte à faire des bêtises et revenir en arrière 🙂

Je n'hésiterai pas à revenir, c'est une quasi certitude lol.

Merci encore à tous et à ce forum.

Sophie.
 
Re : Problème importation fichier texte dans Excel

Re bonsoir à tous,

Cela fait maintenant plus de deux heures que je tourne dans tous les sens ces deux bouts de code et je n'arrive pas à les adapter.
J'aurai tellement souhaité y arriver seule, mais là je m'arrache les cheveux

- Un bout de code vient d'un autre fil qui permet le dépassement des 65536 lignes en répartissant les données sur plusieurs onglets.

- Le second bout de code est celui que Mromain et Pierrejean ont réussi à me faire pour mon problème de format de cellule lors de l'import.

Pourriez-vous me dire s'il est possible de fusionner ces deux bouts de codes afin d'obtenir un résultat propre ou me dire si cela est totalement impossible, SVP ?

1 er bout de code :

Code:
Dim Resultat, Chemin As String
Dim Lecture As Integer
Dim Compteur As Variant
Chemin = Application.GetOpenFilename
If Chemin = "" Then End
Lecture = FreeFile()
Open Chemin For Input As #Lecture
Application.ScreenUpdating = False
Compteur = 1
Do While Not EOF(Lecture)
Line Input #Lecture, Resultat
ActiveCell.Value = Resultat
        
ActiveCell.TextToColumns , DataType:=xlFixedWidth, TextQualifier:=xlDoubleQuote, Comma:=True
If ActiveCell.Row = 65500 Then
ActiveWorkbook.Sheets.Add After:=Sheets(Sheets.Count)
Else
ActiveCell.Offset(1, 0).Select
End If
Compteur = Compteur + 1
Loop
Close #Lecture
Application.ScreenUpdating = True

2nd bout de code :

Code:
Application.ScreenUpdating = False
Dim i As Integer, textFile As Object
Chemin = Application.GetOpenFilename
If Chemin = "" Then End
Set textFile = CreateObject("Scripting.FileSystemObject").OpenTextFile(Chemin, 1)
While Not textFile.AtEndOfStream
  x = Split(textFile.ReadLine, ",")
   For n = LBound(x) To UBound(x)
    ActiveCell.Offset(i, n).Value = "'" & Replace(x(n), """", "")
   Next n
    i = i + 1
Wend
Set textFile = Nothing
Application.ScreenUpdating = True

Lors de mes diverses tentatives j'obtiens soit le résultat du 1er code, soit le résultat du 2nd code. Mais pas les deux combinés.

Merci pour vos conseils.

Bonne soirée.

Sophie.
 
Re : Problème importation fichier texte dans Excel

Bonjour à tous,

J'ai passé une partie de la nuit à chercher en vain ce qui pourrait faire fonctionner ces deux macros ensemble et je n'y suis pas parvenue.

Je ne suis pas assez douée pour savoir si cela est réalisable.

Si l'un d'entre vous pouvait me dire si ces codes peuvent être fusionnés ce serait vraiment sympa.

Merci beaucoup et bonne journée.


Sophie.
 
Re : Problème importation fichier texte dans Excel

Re

A tester

Code:
Application.ScreenUpdating = False
Dim i As Integer, textFile As Object
Chemin = Application.GetOpenFilename
If Chemin = "" Then End
ligne = ActiveCell.Row
colonne = ActiveCell.Column
Set sh = ActiveSheet
Numero = 1
Set textFile = CreateObject("Scripting.FileSystemObject").OpenTextFile(Chemin, 1)
While Not textFile.AtEndOfStream
  x = Split(textFile.ReadLine, ",")
   For n = LBound(x) To UBound(x)
    sh.Cells(ligne, colonne + i).Value = "'" & Replace(x(n), """", "")
    i = i + 1
   Next n
    i = 0
    ligne = ligne + 1
   If ligne > 65536 Then
     Sheets.Add.Name = "Suite" & Numero 'a adapter
     ligne = 2 'a adapter eventuellement
     colonne = 1 'a adapter
     Set sh = Sheets("Suite" & Numero)
     Numero = Numero + 1
   End If
Wend
Set textFile = Nothing
Application.ScreenUpdating = True
 
Re : Problème importation fichier texte dans Excel

Bonjour le forum, Bonjour PierreJean,


Je viens de tester ta macro PierreJean et je n'ai qu'un mot à dire "PARFAIT".
J'ai passé un temps fou sur ces codes et je n'ai jamais trouvé une solution fiable. J'espère un jour avoir votre niveau mais je vois qu'il y a encore beaucoup de travail.

Petite dernière question, pas urgente en soi, comme puis-je faire pour changer l'ordre des feuilles à la fin de l'execution de la macro (ex : avoir Feuil1, Feuil2, Feuil3 et non pas Feuil3, Feuil2 et Feuil 1) ?

Merci beaucoup pour ton (votre) aide qui va me faciliter la vie dans mon traitement de fichiers.

Bonnée journée à tous.
Sophie.
 
Re : Problème importation fichier texte dans Excel

bonjour sophievba, pierrejean,


je vois que pierrejean s'est bien occupé de ton problème 😉

pour ajouter les feuilles en dernière position, je te propose une petite modification du code de pierrejean :
Code:
Sub t()
Application.ScreenUpdating = False
Dim i As Integer, textFile As Object
Chemin = Application.GetOpenFilename
If Chemin = "" Then End
ligne = ActiveCell.Row
colonne = ActiveCell.Column
Set sh = ActiveSheet
Numero = 1
Set textFile = CreateObject("Scripting.FileSystemObject").OpenTextFile(Chemin, 1)
While Not textFile.AtEndOfStream
  x = Split(textFile.ReadLine, ",")
   For n = LBound(x) To UBound(x)
    sh.Cells(ligne, colonne + i).Value = "'" & Replace(x(n), """", "")
    i = i + 1
   Next n
    i = 0
    ligne = ligne + 1
   If ligne > 65536 Then
[B]     With ThisWorkbook
         Sheets.Add after:=.Sheets(.Sheets(.Count))
         .Sheets(.Count).Name = "Suite" & Numero  'a adapter
     End With
[/B]     ligne = 2 'a adapter eventuellement
     colonne = 1 'a adapter
     Set sh = Sheets("Suite" & Numero)
     Numero = Numero + 1
   End If
Wend
Set textFile = Nothing
Application.ScreenUpdating = True
End Sub
a+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
589
Retour