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 :

[VBA-E] Derniere ligne fichier texte


Sujet :

Macros et VBA Excel

  1. #21
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    (
    me demande pas pourquoi )
    Ben oui, je te demande pourquoi !
    Est-ce vraiment un fichier .txt ne contenant que du texte ?
    Combien de lignes a-t-il donc ? + de 20000 ? :

  2. #22
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Bon !
    Je viens de me fabriquer un fichier texte de 56315 lignes !
    J'ai lancé mon code
    Résultat en 1/8 de seconde !
    De quoi est donc composé ton fichier ?
    Peux tu nous faire parvenir un petit bout de ce truc-là, que l'on voie si c'est du texte ?

  3. #23
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Points : 448
    Points
    448
    Par défaut
    euh ca j'ai pas envie de les compter mais c'est possible

    bon allez jviens de les compter pour toi : 35770

    En testant sur un plus petit qui doit avoir moins de 100 lignes, ca me copie les premiere ligne (ca s'arrete vers la 8eme) et au passage si je relance la macro une seconde fois il me dit que le fichier (texte) est deja ouvert alors je doit relancer excel pour la ré executer (jai pas trouver comme faire autrement).

    Donc là me demande plus pourquoi , en voyant ton code je compernd pas pourquoi j'ai pas la derniere ligne


    (Au passage merci pour ta réponse ouskel )

  4. #24
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Regarde mon message précédent !
    montre-nous un petit bout de ce fichier, qu'on voie un peu !!!!!
    et fiche-donc un close , nom de ... !

  5. #25
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Points : 448
    Points
    448
    Par défaut
    Tiens on s'est croisé !!

    Ohh la composition de mon fichier texte est secrete
    Bon allez tiens vla un petit morceau !

    MVS_SYSTEM_ID;DATE;TIME;SERVICE_CLASS;MIPS;
    CPUF;2006-01-03;00.00.00;B2_V4;0019,00;
    CPUF;2006-01-03;00.00.00;B2_V1;0000,00;
    CPUF;2006-01-03;00.00.00;B2_V9R;0008,00;
    CPUF;2006-01-03;00.00.00;B3_V3;0000,00;
    CPUF;2006-01-03;00.00.00;B3_V6P;0000,00;
    CPUF;2006-01-03;00.00.00;B3_V7;0000,00;
    CPUF;2006-04-03;00.00.00;B3_V8;0289,73;
    CPUF;2006-01-03;00.00.00;B3_V9;0000,00;

    Etc.. il faisait quelle taille ton fichier de 50000 lignes?

    et je vien de voir ton nouveau post !! reste calme petit diable

  6. #26
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    1) taille de mon fichier d'essai : 1,78 MO !!!
    2) ton petit bout, tel que donné : aucun problème !

    Je me demande ce que sont ces ";" qui sont généralement utilisés pour séparer des données !
    Es-tu certain de ce que ton fichier (le bon, pas par copier-coller) a bien plusieurs lignes séparées par un retour-charriot ????

    J'ai comme l'impression que le fichier en cause a été généré par un truc du genre :
    http://www.developpez.net/forums/viewtopic.php?t=485966
    par un nommé Elstak
    dis-nous

  7. #27
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Points : 448
    Points
    448
    Par défaut
    Euh,

    moi il fait 9mo le mien :S
    sinon pour les lignes, bonne question comment voir?
    quand j'ouver le fichier avec word il y a bien 1 ligne par ligne (y'a un ptit truc sur word pour voir si on tape sur entree a la fin d'une ligne non? )

  8. #28
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Un petit truc ?
    Un énorme, oui : afficher les marques et séparateurs !
    Tu as çà tans ta barre (sinon rajoutes-le) !

    EDIT : je viens de "pousser le bouchon" à 450000 lignes et plus de 14 MO
    Résultat (et bon) en 1/2 seconde

  9. #29
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Points : 448
    Points
    448
    Par défaut
    hehe, ta edité ton post de 11:52? parce que j'avais pas vu la fin (et je vois pas que ca avait été edité non plus )

    donc pour repondre a la question: non!

    Là en gros je veux juset voir si le fichier est complet en regardant si il y a bien la derniere ligne (c'est pour ca que je la veux !!) enfin je verifie si elle contient bien un morceau de texte pour etre plus exact..

    Et ensuite si c'est complet je veux copier ce fichier sous excel pour qu'il soit tout beau tout propre (c'est à ca que servait mon autre post)

    J'espere que c'est plus clair maintenant

  10. #30
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    REGARDE mon Edit !!!!

  11. #31
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Je déjeune et reviens te fabriquer un petit machin qui va te faire DECOUVRIR ce qu'est en réalité ton fichier texte
    A + donc

  12. #32
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Hello jmf,
    Citation Envoyé par tu
    EDIT : je viens de "pousser le bouchon" à 450000 lignes et plus de 14 MO
    Résultat (et bon) en 1/2 seconde
    Si la dernière ligne est un crlf, tu auras une ligne vide.
    J'ai testé, pour le temps, j'ai comme toi : rien de perceptible pour 55000 lignes.
    Mais ma dernière ligne ayant un crlf tout court, j'avais une chaîne vide.
    En supprimant cette ligne, c'est ok

    Juste pour mettre du sel dans la discussion

    A+

  13. #33
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Vivement tout à l'heure, qu'on voit la "machine à découvrir la réalité" de jmf... Je vais rester devant mon PC et ne pas déjeûner pour être sûr d'être là quand il enverra ça!

  14. #34
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Voilà ! voilà ! (il me fallait déjeuner, quand même !...)
    alors :
    lancer celà et me dire scrupuleusement ce qui s'affiche. Je dirai ce que le résultat veut dire
    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
    Private Sub Command1_Click()
      Dim cpt As Double, cpt1 As Double, fic As String, I As Double, titi As Double
      fic = "d:\essai.txt"  '===== où tu remplece par le chemin complet de ton fichier
      Open fic For Input As #1
      For I = 1 To 10000
        Input #1, toto
        If toto = "" or EOF(1) Then Exit For  '******* Corrige ici
        cpt = cpt + 1
      Next
      Close #1
      Open fic For Input As #1
      While Not EOF(1)
        Line Input #1, toto
        cpt1 = cpt1 + 1
        If Len(toto) > 2000 Then titi = Len(toto)
      Wend
      Close #1
      MsgBox cpt & "  " & cpt1 & "  " & titi
    End Sub
    J'attends !

  15. #35
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Ben non !
    Il a un fichier énorme !
    Alors une boucle sur les 1000 1ers suffit (je veux seulement voir s'il y a une ligne vide)
    ensuite, je me contente de voir combien il a de lignes normales (il nous a dit combien il pensait en avoir) ... et de chercher la confirmation d'une ou plusieurs lignes démesurées...
    Je ne sais pas, ... mais je "sens" que ce fichier a été généré de façon "particulière" (dieu sait comment) et que c'est ce qu'il devra corriger, en réalité !
    J'attends avec impatience qu'il revienne car j'ai encombré mon disque avec un fichier encore plus grand pour tester (j'aimerais bien le zigouiller le plus vite possible )

  16. #36
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Points : 448
    Points
    448
    Par défaut
    hop hop apres une breve interruption (due à une coupure EDF ) me revoilà

    alors bon je suis un peu pommé moi là dedans faut boire moins de café les gars

    j'ai testé ton code jmf et voilà le resultat

    10000 43009 0

    voilà et jai aussi regardé sous word et en fait je vois des P (dans l'autre sens) loinnnnnn au bout de la ligne et yen a aussi un a la derniere ligne mais moins loin (du style LIGNE......P)

    voilà! 43009 c les lignes non?

    sinon je doit aussi tester ton code ouskel?

  17. #37
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Bon : analyse :

    1) pas de lignes vides parmi les 10000 premières (il est vraisemblable que tu n'en pa pas ailleurs
    2) tu as 43009 lignes (et pas 35770 comme tu le croyais)
    3) aucune ligne ne contient plus de 2000 caractères
    4) tu as un retour charriot à la fin
    tout devrait donc être bon si ce n'est ce retour-charriot...
    Supprimes-le manuellement, pour voir, et relances ton code (pas celui-ci mais celui devant aller à la pêche de la dernière ligne). Si celà va bien, la correction sera élémentaire .
    Si celà ne va pas, c'est incompréhensible et je vais te demander de nous mettre ici le code exact de ta pêche à la dernière ligne !

  18. #38
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Points : 448
    Points
    448
    Par défaut
    Yop !
    Bon ca je pouvais te le dire qu'il y avant pas de ligne vide
    En supprimant le retour là je suis ok avec toi c rapide et j'ai le resultat


    Maitenant t'aurais pas une idée pour le supprimer à l'ouverture ou un truc du genre?

  19. #39
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Ben voilà !
    Je reviens dans quelques secondes !

  20. #40
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    dim laderniere as string, jmfcoucou as string 
    laderniere = "" 
    open "....\.....txt" for input as #1 
    while not EOF(1) 
      line input #1, jmfcoucou
      if jmfcoucou <> "" then laderniere = jmfcoucou
    wend 
    close #1
    msgbox laderniere
    Résout ton problème
    Mais pas celui de l'écriture indue d'un retour-charriot (à corriger dans le code générateur du fichier, de préférence à ici)

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. Suppression ligne fichier texte
    Par stephane92400 dans le forum Entrée/Sortie
    Réponses: 13
    Dernier message: 25/12/2009, 16h14
  2. [VBA-E] Calcul sur fichiers Texte
    Par anisr dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 04/02/2007, 14h37
  3. [VBA-E]derniere ligne non vide
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 28/07/2006, 10h48
  4. [VBA-E] Récupération données fichier texte
    Par Theo28fr dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/07/2006, 08h08
  5. [VBA-E] Lire un fichier texte
    Par Lnmex dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/05/2006, 19h33

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