Si vous utilisez une version d'Excel ne contenant pas "Obtenir des données externes" dans le menu Données (par exemple, Excel 2003, qui est ma version principale en raison des "mises à niveau" anti-productives d'Office 2007 à 2013), vous pouvez empêcher le comportement "utile" qu'ils vous imposent, soit par quelques étapes manuelles, soit par une macro (une macro est plus rapide et plus facile, je le mets donc dans mon fichier personal.xls):
- Ajouter un classeur (ou Ctrl+ N)
- Tapez la lettre Adans la cellule
A1
- Cellule de clic
A1
- Démarrer "Texte en colonnes" (ou Alt+ D, E)
- Choisissez délimité (ou Alt+ D)
- Frappé Enter
- Désélectionner toutes les cases à cocher
- Cliquez sur Terminer (ou Alt+ F)
- Fermez le classeur. Ne pas enregistrer.
Maintenant, le comportement "utile" sera empêché lorsque vous collerez à nouveau.
Dans du code,
' Differs from Walkenbach in that he just populated A1 if empty, did this on A1, restored A1.
' This is better IFF you are allowed to add a workbook.
Sub FixAutomaticTextToColumns()
If ActiveSheet.ProtectContents Then MsgBox _
"BTW, the active sheet is protected. Consider unprotecting 'ere TextToColumns"
Workbooks.Add
Cells(1) = "A" 'Required, else TextToColumns will error
Cells(1).TextToColumns DataType:=xlDelimited, Tab:=False, semicolon:=False, _
comma:=False, Space:=False, other:=False
ActiveWorkbook.Close False
End Sub
FWIW, j’ai écrit cette routine de manière indépendante, puis j’ai découvert que le gourou / auteur / développeur d’Excel, John Walkenbach,
avait publié quelque chose de similaire sur son site, The Spreadsheet Page , intitulé Clearing The Text To Columns Parameters .
Voir Comment ajouter VBA dans MS Office? pour des informations générales.