Automatiser l'insertion de données d'un fichier texte

  • Initiateur de la discussion Initiateur de la discussion mowts
  • 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 !

mowts

XLDnaute Nouveau
Bonjour,

Voila j'ai réalisé une petite application sous excel à partir d'un fichier texte que j'ai rentré avec l'outil "Données -> A partir du texte". Le problème est qu'en utilisant cela on est obligé de prendre toutes les données du fichier texte !

Je cherche donc à l'aide d'une macro à pouvoir automatiser cela et aussi me permettre de sélectionner les lignes du fichiers qui m'intéresse !!

Par exemple dans mon fichier à chaque début de ligne, j'ai une date et une heure !! Je voudrai pouvoir rentrer les lignes que je sélectionnerai en rentrant une date de debut et une date de fin !!
Mais je ne sais pas si cela est réalisable en VBA !! Comme je m'y connais pas encore trop en excel et VB je demande une petite aide !!

Si quelqu'un à une solution je suis preneur !!

Merci d'avance pour vos réponses !!

a+
 
Re : Automatiser l'insertion de données d'un fichier texte

Bonjour,
Ce serait bien que tu fournisses le fichier texte car dans ce cas il suffit de le lire le fichier texte (source) et de copier les données que l'on veut garder dans un second fichier texte et ensuite de l'importer dans Excel
 
Re : Automatiser l'insertion de données d'un fichier texte

Bonjour,

Voila le fichier text est disponible sur :Cijoint.fr - Service gratuit de dépôt de fichiers


Ta solution me parait intéressante ! Par contre est-qu'il faut que charge le fichier sous excel et que ensuite je sélectionne les données ? ou alors je fais un petit programme en C ?

Sinon le but est dans le fichier texte de pouvoir insérer les lignes souhaités en fonction des information contenue dans la 2ème colonnes du fichier. Ma deuxième colonne indique l heure. J'aimerai donc essayer de définir une heure de début et une heure de fin et ensuite insérer les lignes entre ces 2 heures!!

Voila merci de ta réponse !

à+
 
Re : Automatiser l'insertion de données d'un fichier texte

Bonjour !!!

Merci pour ta réponse, j'ai essayé ton exemple et ça marche parfaitement !!
Je suis en train d'essayer de l'adapter à mon fichier mais j'ai un souci pour mettre le boutton ?
Je suis sur Excel 2007 et je n'arrive pas à trouver ou es-ce qu'on peut ajouter un bouton ?

Merci encore pour la réponse

a+
 
Re : Automatiser l'insertion de données d'un fichier texte

Bonjour !!!

Merci pour ta réponse, j'ai essayé ton exemple et ça marche parfaitement !!
Je suis en train d'essayer de l'adapter à mon fichier mais j'ai un souci pour mettre le boutton ?
Je suis sur Excel 2007 et je n'arrive pas à trouver ou es-ce qu'on peut ajouter un bouton ?

Merci encore pour la réponse

a+

re bonjour,

De rien 😉
pour créer un bouton, rien de tel qu'une petite recherche Google (excel 2007 créer un bouton).

a+
 
Re : Automatiser l'insertion de données d'un fichier texte

C bon j'ai finalement reussi à trouver un exemple !!! Le truc c'est que j'arrivai à faire la macro mais impossible de trouver ou etait l'outil pour insérer le bouton !!!

Donc maintenant cela fonctionne bien mais j'ai encore un petit souci quand même !!
Parce que je n'arrive pas à faire de calcul avec les valeurs que je rentre grâce à cette méthode. Par exemple les chiffres à virgule s'affiche avec des points. Il faut donc que j'aille spécifié d'aller les afficher avec des virgules. Et sinon pour certaine autre valeur entière, j'ai des espace avant ?

Du coup je suppose qu'il faut que je modifie cette fonction :
tabLine = Split(txtFile.ReadLine, vbTab)
et celle la
.Range("A" & (iLine + 6)).Resize(1, UBound(tabLine) + 1).Value = tabLine

Mais je suis un petit peu pommé en VB !!
Si vous avez une méthode je suis preneur !!

Merci Encore !!
 
Re : Automatiser l'insertion de données d'un fichier texte

bonjour,

voici le code modifié :
Code:
Dim pathFichierTxt As String, dateD As Long, heureD As Double, dateF As Long, heureF As Double
Dim tabLine() As String, iLine As Long, test As Boolean, itab As Long
Dim myFso As Object, txtFile As Object

    pathFichierTxt = Range("fichierTxt").Text
    dateD = CDate(Range("parametres")(1))
    heureD = CDate(Range("parametres")(2))
    dateF = CDate(Range("parametres")(3))
    heureF = CDate(Range("parametres")(4))
    
    Set myFso = CreateObject("Scripting.FileSystemObject")
    Set txtFile = myFso.OpenTextFile(pathFichierTxt, 1)
    txtFile.ReadLine
    
    With ThisWorkbook.Sheets("Feuil1")
        .Cells.ClearContents
        While Not txtFile.AtEndOfStream
            tabLine = Split(txtFile.ReadLine, vbTab)
            On Error Resume Next
            test = CDate(tabLine(0)) >= dateD And CDate(tabLine(1)) >= heureD And CDate(tabLine(0)) <= dateF And CDate(tabLine(1)) <= heureF
            If Err.Number <> 0 Then test = False
            On Error GoTo 0
            If test Then
                iLine = iLine + 1
                For itab = LBound(tabLine) To UBound(tabLine)
                    If itab > 2 Then
                        .Cells(iLine, itab + 1).Value = CDbl(Replace(tabLine(itab), ".", ","))
                    Else
                        .Cells(iLine, itab + 1).Value = tabLine(itab)
                    End If
                Next itab
            End If
        Wend
    End With
    
    Set txtFile = Nothing: Set myFso = Nothing

par contre, il est plus lent...


a+
 
Dernière édition:
Re : Automatiser l'insertion de données d'un fichier texte

Bonjour,

Un grand merci pour ton aide, ça m'a permis de terminer ma petite application sous excel !
La bout de code fonctionne bien. Par contre c'est vrai qu'il faut être un peu plus patient pour attendre que les valeurs se charge.
Je vais peut être essayer de modifier le code, comme je n'ai besoin que de 7 colonnes de données (pour l'instant), pour ne convertir que les valeurs que j'ai besoin en nombres.
Peut être que ça me permettra de gagner un peu de temps!!

Merci encore pour ces réponses !

Tchao
 
- 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

Discussions similaires

Retour