Convertir TXT automatique ouverture Excel avec conditions

samimi94

XLDnaute Occasionnel
Bonsoir à tous,

Me voilà avec une nouvelle problématique.
Je souhaiterai ouvrir un fichier TXT séparateur ; avec Excel mais qu'à l'aide d'une macro celle-ci soit convertit automatiquement en colonnes.
Ce fichier TXT remplit le fichier Excel de la colonne A à la colonne AA lorsque je le convertis manuellement.
Là ou ça se corse, c'est que dans ce fichier Excel certaines données ne me sont pas utiles, je souhaiterai donc qu'à l'ouverture du fichier une macro converti ce fichier TXT dans un premier lieu puis supprime les colonnes non-souhaitées (Exemple : je ne veux pas les données des colonnes F, M, Q, R...).

Par avance, merci et bonne fin de soirée.
 

Pièces jointes

  • Test separateur Xls.zip
    444 bytes · Affichages: 41

SergiO

XLDnaute Accro
Re : Convertir TXT automatique ouverture Excel avec conditions

Bonsoir,

Un code à tester :

Code:
Sub Macro1()
    Workbooks.OpenText Filename:="C:\Test separateur Xls.txt", Origin:= _
        xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote _
        , ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=True, Comma:=False _
        , Space:=False, Other:=False, TrailingMinusNumbers:=True
    Columns("R:R").Delete Shift:=xlToLeft
    Columns("Q:Q").Delete Shift:=xlToLeft
    Columns("M:M").Delete Shift:=xlToLeft
    Columns("F:F").Delete Shift:=xlToLeft
End Sub

@+
 

samimi94

XLDnaute Occasionnel
Re : Convertir TXT automatique ouverture Excel avec conditions

Bonsoir SergiO,

C'est exactement ce que je voulais, merci bien.
Si je peux abuser encore un peu, dans ce même fichier est-il possible de lui dire d'insérer le fichier à partir de la ligne 5 par exemple, car je souhaite mettre des commentaires dans le fichier vierge afin que ceux soient présents en en-tête après l'importation du TXT.

Merci beaucoup.
Samimi94.
 

kjin

XLDnaute Barbatruc
Re : Convertir TXT automatique ouverture Excel avec conditions

Bonsoir,
Là ou ça se corse, c'est que dans ce fichier Excel certaines données ne me sont pas utiles, je souhaiterai donc qu'à l'ouverture du fichier une macro converti ce fichier TXT dans un premier lieu puis supprime les colonnes non-souhaitées (Exemple : je ne veux pas les données des colonnes F, M, Q, R...).
Veux tu dire que ce ne sont pas toujours les mêmes colonnes qu'il faut supprimmer ?
Sinon,
Code:
Sub ImportTxt()
    Workbooks.OpenText Filename:= _
        "C:\....\FichierText.txt", _
        Origin:=xlWindows, _
        StartRow:=5, _
        DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, _
        Comma:=False, Space:=False, Other:=False
    Range("F:F,M:M,O:O,Q:Q,R:R,T:T,U:U,W:W,Y:Y,Z:Z").EntireColumn.Delete
End Sub
 

samimi94

XLDnaute Occasionnel
Re : Convertir TXT automatique ouverture Excel avec conditions

Bonsoir Kjin,

Les colonnes que je souhaite supprimer sont toujours les mêmes.
Cependant j'ai un souci car lorsque je colle le bout de macro il s'execute bien mais en m'ouvrant un autre fichier !
Les données ne se complémentent pas dans le fichier Excel avec la macro.

Par avance, merci.
 

kjin

XLDnaute Barbatruc
Re : Convertir TXT automatique ouverture Excel avec conditions

Re,
Alors peut-être
Code:
Sub Fichier_TXT_import()
Dim Resultat, Chemin As String
Dim Lecture As Integer
Dim Compteur As Variant
Chemin = "C:\....\fichiertext.txt" 'à adapter
Lecture = FreeFile()
Open Chemin For Input As #Lecture
Application.ScreenUpdating = False
Compteur = 1
Do While Seek(Lecture) <= LOF(Lecture)
Line Input #Lecture, Resultat
With Cells(Compteur + 5, 1)
.Value = Resultat
.TextToColumns , DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, Semicolon:=True
End With
ActiveCell.Offset(1, 0).Select
Compteur = Compteur + 1
Loop
Close
Range("F:F,M:M,O:O,Q:Q,R:R,T:T,U:U,W:W,Y:Y,Z:Z").EntireColumn.Delete
Application.ScreenUpdating = True
End Sub

Edit : Bonsoir Sergio, désolé je n'avais pas raffraichi l'écran dans un premier temps

A+
kjin
 
Dernière édition:

samimi94

XLDnaute Occasionnel
Re : Convertir TXT automatique ouverture Excel avec conditions

Re Kjin,

Super, le fichier TXT s'ouvre bien dans mon fichier avec macro et débute à la ligne 8 ce qui me convient parfaitement.

Deux petites questions si je peux me permettre : est-il possible de ne pas donner le nom du fichier dans le bout de la macro, mais de le choisir soi-même à l'ouverture du fichier?
Puis-je mettre une syntaxe dans le bout de macro afin que les colonnes soient ajustées automatiquement ?

Merci beaucoup pour ce bout de macro qui me satisfait quoiqu'il en soit correspond au résultat voulu.

Samimi94.
 

samimi94

XLDnaute Occasionnel
Re : Convertir TXT automatique ouverture Excel avec conditions

Re Kjin,

Petite chose que je n'avais pas constaté avant, mais les commentaires que je mets dans les cinq premières lignes sont également supprimés au moment de la suppression des colonnes ! Y a-t-il une procédure telle une insertion de cadre pour éviter que ces commentaires ne soient déplacés ?

Par avance merci.
 
Dernière édition:

samimi94

XLDnaute Occasionnel
Re : Convertir TXT automatique ouverture Excel avec conditions

Re,

Juste pour dire que je viens de trouver la solution pour que mes commentaires ne s'effacent pas lors de la suppression des colonnes :)

J'ai fait un clic droit sur mon image (par exemple) puis clic sur format de la forme automatique, onglet propriétés et coché "ne pas déplacer".

Voilou.

Si vous avez une idée pour mes deux autres questions je suis prenante biensûr ;)

Merci encore et bonne fin de soirée.
 

samimi94

XLDnaute Occasionnel
Re : Convertir TXT automatique ouverture Excel avec conditions

Ca y est je ne vous embête plus pour aujourd'hui, j'ai pu trouver la parade pour la mise en forme de mes colonnes en ajoutant au bout de macro :

Code:
Columns("B:B").ColumnWidth = 15

et ainsi de suite pour chacune de mes colonnes.

Bonne nuit à tous et mille mercis

Samimi94
 

kjin

XLDnaute Barbatruc
Re : Convertir TXT automatique ouverture Excel avec conditions

Re,
Il faut aussi supprimmer tous les espaces contenues dans les cellules converties
Code:
Sub Fichier_TXT_import()
Dim Resultat, Chemin As String, Lecture As Integer, Compteur As Variant
Chemin = Application.GetOpenFilename("Text Files (*.txt), *.txt")
x = Chemin
If x = False Then Exit Sub
Lecture = FreeFile()
Open Chemin For Input As #Lecture
Application.ScreenUpdating = False
Compteur = 1
Do While Seek(Lecture) <= LOF(Lecture)
Line Input #Lecture, Resultat
With Cells(Compteur + 5, 1)
.Value = Resultat
.TextToColumns , DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, Semicolon:=True
End With
ActiveCell.Offset(1, 0).Select
Compteur = Compteur + 1
Loop
Close
Range("F8:F12,M8:M12,O8:O12,Q8:Q12,R8:R12,T8:T12,U8:U12,W8:W12,Y8:Y12,Z8:Z12").Delete Shift:=xlToLeft
For Each Cel In Range("A6:Q12")
Cel.Value = Trim(Cel)
Next
Range("A:Q").Columns.AutoFit

Application.ScreenUpdating = True
End Sub
A+
kjin
 

samimi94

XLDnaute Occasionnel
Re : Convertir TXT automatique ouverture Excel avec conditions

Re Kjin,

En fait j'avais trouvé une solution qui parait très tordu à côté de la tienne :eek: mais qui me permet d'obtenir un résultat.

En fait j'ai mis
Code:
Chemin = Application.GetOpenFilename
Pour qu'il me propose de choisir le chemin d'accès et le fichier à traiter à l'ouverture et ensuite j'ai renseigné la mise en forme pour chaque colonne (beaucoup plus contraignant que ta solution).
Comme d'hab tu me trouves toujours une solution super efficace et réactive.

Merci beaucoup.

Samimi94.
 

Discussions similaires

Réponses
13
Affichages
339

Statistiques des forums

Discussions
311 732
Messages
2 081 995
Membres
101 857
dernier inscrit
mt60400