Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Mise en forme fichier texte sous excel

VBA

XLDnaute Nouveau
Bonjour,

J'extraie un fichier texte depuis un erp que je voudrais mettre en forme sur excel, j'ai deja un bout de code qui le fait mais j'aurais besoin de votre aide pour la sélection du fichier texte. Je voudrais avoir l'affichage d'une fenêtre pour le choix du fichier, si c'est possible bien sûr.

Voici le bout de code que j'ai actuellement:

VB:
Sub mef()
  Range("A1").Select
  With ActiveSheet.QueryTables.Add(Connection:= _
  "TEXT;c:\user\U538819\test\job17.5.2018.txt", Destination:=Range("$A$1"))
  .CommandType = 0
  .Name = "job17.5.2018"
  .FieldNames = True
  .RowNumbers = False
  .FillAdjacentFormulas = False
  .PreserveFormatting = True
  .RefreshOnFileOpen = False
  .RefreshStyle = xlInsertDeleteCells
  .SavePassword = False
  .SaveData = True
  .AdjustColumnWidth = True
  .RefreshPeriod = 0
  .TextFilePromptOnRefresh = False
  .TextFilePlatform = 1252
  .TextFileStartRow = 10
  .TextFileParseType = xlDelimited
  .TextFileTextQualifier = xlTextQualifierDoubleQuote
  .TextFileConsecutiveDelimiter = False
  .TextFileTabDelimiter = True
  .TextFileSemicolonDelimiter = False
  .TextFileCommaDelimiter = False
  .TextFileSpaceDelimiter = False
  .TextFileOtherDelimiter = "|"
  .TextFileColumnDataTypes = Array(9, 1, 1, 1)
  .TextFileTrailingMinusNumbers = True
  .Refresh BackgroundQuery:=False
  End With
  Columns("A:A").ColumnWidth = 5.71
End Sub

Merci.
 

VBA

XLDnaute Nouveau
J'ai pu récupérer le fichier via get open filename mais j'ai une erreur qui se produit mais je ne comprend avec son nom. Quand je le rajoute dans le code pour la mise en forme sa m'affiche une erreur Argument ou appel de procédure incorrect.

Voici mon code :
VB:
Sub mef()

stFichier = Application.GetOpenFilename
tmpStr = Split(stFichier, "\")
nomF = tmpStr(UBound(tmpStr))

  Range("A1").Select
  With ActiveSheet.QueryTables.Add(Connection:= _
  "TEXT;c:\user\U538819\test\" & nomF, Destination:=Range("$A$1"))
  .CommandType = 0
  .Name = nomF
  .FieldNames = True
  .RowNumbers = False
  .FillAdjacentFormulas = False
  .PreserveFormatting = True
  .RefreshOnFileOpen = False
  .RefreshStyle = xlInsertDeleteCells
  .SavePassword = False
  .SaveData = True
  .AdjustColumnWidth = True
  .RefreshPeriod = 0
  .TextFilePromptOnRefresh = False
  .TextFilePlatform = 1252
  .TextFileStartRow = 10
  .TextFileParseType = xlDelimited
  .TextFileTextQualifier = xlTextQualifierDoubleQuote
  .TextFileConsecutiveDelimiter = False
  .TextFileTabDelimiter = True
  .TextFileSemicolonDelimiter = False
  .TextFileCommaDelimiter = False
  .TextFileSpaceDelimiter = False
  .TextFileOtherDelimiter = "|"
  .TextFileColumnDataTypes = Array(9, 1, 1, 1)
  .TextFileTrailingMinusNumbers = True
  .Refresh BackgroundQuery:=False
  End With
  Columns("A:A").ColumnWidth = 5.71
End Sub

Voila et merci.
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Essayez ce début :
VB:
Sub mef()
   Dim ChNomF
   ChDrive "C": ChDir "c:\user\U538819\test"
   ChNomF = Application.GetOpenFilename("Texte,*.txt")
   If VarType(ChNomF) <> vbString Then Exit Sub
   With ActiveSheet.QueryTables.Add(Connection:= _
      "TEXT;" & ChNomF, Destination:=Range("$A$1"))
 

Dranreb

XLDnaute Barbatruc
Je suppose que votre Sub mef est écrite dans un module objet et non dans un module standard ?
Si c'est le cas, dans VBA, menu Outils, Options…, onglet Général, rubrique Récupération d'erreur, cochez Arrêt dans le module de classe et réessayez.
Sinon mettez un point d'arrêt au début et déroulez en pas à pas jusqu'à tomber sur l'instruction qui plante.
 
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…