XL 2010 Importer .txt sur feuille Excel

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

thunder23

XLDnaute Occasionnel
Bonjour le forum,

Je souhaite importer les données d'un fichier en format texte sur une feuille Excel mais par VBA et avec la même mise en forme que dans le fichier .txt .
Un exemple est disponible en pièce jointe

Merci pour commentaires 🙂
 

Pièces jointes

re
Si je te parle de ton post #87 avec ton code.
Le dernier code que tu as publié m'inverse le mois et le jour
non!!non!!non!!!! je viens de vérifier

@Staple1600 on s'en fou de ca j'importe tout moi aussi au depart
ce que je veux dir c'est le collage des données ne se font pas verticalement
même si la destination est bien A rows.count end(xlup).offset(1)
je l'avais déjà remarqué parmi les moult détails qui me plaisent pas avec querytable(sur .txt)
 
re

non!!non!!non!!!! je viens de vérifier

@Staple1600 on s'en fou de ca j'importe tout moi aussi au depart
ce que je veux dir c'est le collage des données ne se font pas verticalement
même si la destination est bien A rows.count end(xlup).offset(1)
je l'avais déjà remarqué parmi les moult détails qui me plaisent pas avec querytable(sur .txt)

Je viens de tester sur un nouveau classeur avec ton dernier code, regarde 😉
 

Pièces jointes

thunder23
heu je crois que t'est perdu la
c'est une macro querytable c'est pas ma next version clipboard
c'est ca ma next version
VB:
Sub test()
    Dim tout As String, x$, fichier As String, tbl, colonnes
    Application.ScreenUpdating = False
    fichier = "C:\Users\polux\DeskTop\bdd.txt"
    fichier = Application.GetOpenFilename("Text Files (*.txt), *.txt", 1, "ouvrir un fichier")
    If fichier = "" Then Exit Sub
    x = InputBox("tapez les numero de colonnes séparée par une virgule", "liste des colonnes")
    If x <> "" Then colonnes = Split(x, ",")
    x = FreeFile: Open fichier For Binary Access Read As #x: tout = String(LOF(x), " "): Get #x, , tout: Close #x
    For i = 20 To Right(Year(Date) + 1, 2): tout = Replace(tout, "/" & i, "/20" & i): Next
    With CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}"): .SetText tout: .PutInClipboard: End With
    With Sheets(1).Cells(1, 1) 'Cells(Rows.Count, 1).End(xlUp).Offset(1)
        .Parent.Activate
        .CurrentRegion.Clear
        .EntireColumn.NumberFormat = "mm/dd/yyyy"
        .Select
        ActiveSheet.Paste
        DoEvents
        tbl = Application.Index(.CurrentRegion.Value, Evaluate("ROW(" & 1 & ":" & .CurrentRegion.Rows.Count & ")"), colonnes)
        .CurrentRegion.ClearContents
        .EntireColumn.NumberFormat = "m/d/yyyy"
        .Resize(UBound(tbl), UBound(tbl, 2)) = tbl
     .EntireColumn.NumberFormat = "dd/mm/yyyy"
     .EntireColumn.HorizontalAlignment = xlRight
     End With
 End Sub
 
Re

Donc je me réponds à moi-même
(bravo l'émulation entre xldnautes... 🙄)
VB:
Sub Macro1_Cinquo()
Dim typeCol, Chemin$
Application.ScreenUpdating = False
Chemin = "C:\Users\STAPLE\bdd\bdd.txt"
typeCol = Array(4, 1, 1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9)
    With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & Chemin, Destination:=Cells(Rows.Count, 1).End(3)(2))
        .FieldNames = True
        .PreserveFormatting = True
        .RefreshStyle = xlInsertDeleteCells
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePlatform = 850
        .TextFileStartRow = 4
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileTabDelimiter = True
        .TextFileColumnDataTypes = typeCol
        .TextFileDecimalSeparator = "."
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
        .Delete
    End With
End Sub
Et j'ai donc ma réponse sur xlSkipColumn
🙄
 
Staple1600,

si c'est à moi que tu me parlais je t'ai répondu au #105 😉
Ce n'est qu'après la colonne N que les fichiers txt diffèrent d'une bdd à une autre car certains ont une station avec extension et d'autre non. 😉
Voilà le format donc ton Array est bon pour le chiffre 4 😉
xlDMYFormat4Format de date JMA.
 
Dernière édition:
Re

Je parle juste de xlSkipColumn depuis un petit bout.
Mais c'est pas grave, j'ai ma réponse en faisant le test-moi même.
(C'est ce que j'appelle la non-émulation entre participants d'un fil)

Et si tu ne sais pas à l'avance quelles colonnes seront ignorées, je ne vois pas comment automatiser la chose...
 
Re,

Oui je viens juste de modifier mon post #118 (ça en fera un en moins)
Ben pourquoi c'est possible avec le code de patricktoulon avec une inputbox ?

VB:
x = InputBox("tapez les numero de colonnes séparée par une virgule", "liste des colonnes")
    If x <> "" Then colonnes = Split(x, ",")
    x = FreeFile: Open fichier For Binary Access Read As #x: tout = String(LOF(x), " "): Get #x, , tout: Close #x
 
- 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

Réponses
4
Affichages
159
Réponses
5
Affichages
325
Retour