Désactiver le auto = lors d'un TextToColumns
Bonjour à tous,
Je suis entrain de faire un petit VBA et je sèche, j'importe un fichier qui me rempli la colonne A et après je fais un "Convertir" par espace sauf que j'ai une ligne dans le fichier qui est comme ça :
................................ 0494 ----Seuil d'Oubli depasse ...
Lors du convertir il met automatiquement un = devant ----Seuil du coup ça me génère un #NOM et la suite de mon programme VBA plante.
Tout en sachant que ce n'est pas que "----Seuil" j'ai d'autre #NOM car Excel rajoute un = à chaque fois.
Est-ce que quelqu'un aurait une idée ???
PS : Je ne peux pas vous partagez mon Excel mais je répondrais à toutes vos questions !
Merci
Private Sub PrepareFile_Click()
OpenAndImportFile (filePath)
' Sélectionnez toutes les colonnes
Columns(1).Select
' Convertissez le texte en colonnes
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlTextQualifierSingleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1)), TrailingMinusNumbers:=True
' Définissez le format des colonnes comme texte
Columns.NumberFormat = "@"
' Masquez le bouton "PrepareFile"
PrepareFile.Visible = False
' Affichez le bouton "GenerateFile"
GenerateFile.Visible = True
End Sub
Sub OpenAndImportFile(path)
Dim wbI As Workbook, wbO As Workbook
Dim wsI As Worksheet
Set wbI = ThisWorkbook
Set wsI = wbI.Sheets(1)
Set wbO = Workbooks.Open(path)
wbO.Sheets(1).Cells.Copy wsI.Cells
wbO.Close SaveChanges:=False
End Sub
Bonjour,
Essayez ceci:
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlSingleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=True, Other:=True, OtherChar:= _
"-", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), _
Array(6, 1)), TrailingMinusNumbers:=True
Cdlt
Bonjour Arturo,
Ca fonctionne plus de #NOM par contre ça m'a enlevé les ---- j'aimerais les garder (je suis chiant
Merci
Dans ce cas, avant de faire la conversion, on remplace tous les tirets par des "£", puis après la conversion, on remplace les "£" par des tirets.
Private Sub PrepareFile_Click()
OpenAndImportFile (filePath)
' Sélectionnez toutes les colonnes
Columns(1).Select
'Remplacer les tirets par des "£"
Selection.Replace What:="-", Replacement:="£", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
' Convertissez le texte en colonnes
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlTextQualifierSingleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1)), TrailingMinusNumbers:=True
'Remplacer les "£" par des tirets
Cells.Replace What:="£", Replacement:="-", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
' Définissez le format des colonnes comme texte
Columns.NumberFormat = "@"
' Masquez le bouton "PrepareFile"
PrepareFile.Visible = False
' Affichez le bouton "GenerateFile"
GenerateFile.Visible = True
End Sub
Cdlt
Oui effectivement je n'y avais pas pensé alors que c'est tout bête !
Merci beaucoup