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 :

Selection bloc dans un fichierTXT [XL-365]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Août 2006
    Messages : 148
    Par défaut Selection bloc dans un fichierTXT
    Bonjour,

    est-il possible de sélectionner l'ensemble d'un bloc de lignes depuis un fichier TXT et de le copier dans un classeur Excel.

    La recherche des lignes de début et de fin du bloc est réalisé par les numéros de lignes issues d'une extraction antérieure.

    Ces numéros ne sont donc pas inconnus.

    Pourquoi la recherche par référence de ligne ? Tout simplement car ces blocs sont tous différents et il m'est compliqué de définir le début mais surtout la fin.

    En vous remerciant par avance pour votre aide

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Bonjour, voici une proposition.
    Je pars de l'hypothèse que le numéro en début de ligne est séparé du reste de la ligne par un espace.
    La macro demande 2 paramètres, le numéro de la première ligne et celui de la dernière.

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    Sub ExtraireBlocVersExcel(startLine As Long, endLine As Long)
        ' Spécifiez le chemin du fichier TXT
        Dim cheminFichierTxt As String
        cheminFichierTxt = "C:\Chemin\vers\votre_fichier.txt"
     
        ' Créer une nouvelle feuille dans le classeur Excel
        Dim classeur As Workbook
        Set classeur = Workbooks.Add
     
        ' Ouvrir le fichier TXT
        Open cheminFichierTxt For Input As #1
     
        ' Lire les lignes et écrire dans le classeur Excel
        Dim ligne As String
        Dim i As Long
        i = 1
     
        Do Until EOF(1)
            Line Input #1, ligne
            ' Extraire le numéro de ligne de la ligne actuelle
            Dim numeroLigne As Long
            numeroLigne = Val(Left(ligne, InStr(1, ligne, " ")))
     
            If numeroLigne >= startLine And numeroLigne <= endLine Then
                ' Étendre la plage dans le classeur Excel si nécessaire
                If i > classeur.Sheets(1).Rows.Count Then
                    classeur.Sheets(1).Rows(i).Resize(1).Insert Shift:=xlDown
                End If
     
                ' Écrire la ligne dans le classeur Excel
                classeur.Sheets(1).Cells(i, 1).Value = ligne
                i = i + 1
            End If
        Loop
     
        ' Fermer le fichier TXT
        Close #1
     
        ' Enregistrez le classeur Excel
        classeur.SaveAs "C:\Chemin\vers\resultat.xlsx"
     
        ' Fermez le classeur Excel
        classeur.Close
     
        MsgBox "Le bloc de lignes a été extrait avec succès dans le classeur Excel.", vbInformation
    End Sub
    Tu peux ensuite l'appeler comme ceci par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub test()
        ExtraireBlocVersExcel 20, 35
    End Sub

  3. #3
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Août 2006
    Messages : 148
    Par défaut
    Merci beaucoup !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] sélection aléatoire dans la base de données
    Par tjoce dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 07/02/2010, 19h49
  2. Requête SELECT problème dans les résultats trouvés ...
    Par snoopy69 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 18/10/2005, 12h46
  3. Selection distincte dans un dlookupcombobox
    Par Tyler Durden dans le forum Bases de données
    Réponses: 3
    Dernier message: 06/10/2005, 08h19
  4. Selection listener dans JTable
    Par calypso dans le forum Composants
    Réponses: 3
    Dernier message: 02/08/2004, 17h56
  5. Selection aléatoire dans une fouchette de 10%
    Par RobertDeNiroZ dans le forum Requêtes
    Réponses: 4
    Dernier message: 14/06/2004, 09h22

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