Gordon se demande comment il peut importer un sous-ensemble d’un fichier texte dans Excel, en fonction de la valeur d’un champ particulier. Par exemple, il peut souhaiter importer uniquement les enregistrements contenant un « y » dans la colonne 5 de chaque enregistrement du fichier texte.

Vous pouvez aborder cette tâche de plusieurs manières. La première est que vous pouvez simplement importer le fichier texte entier, trier les enregistrements et supprimer ceux que vous ne voulez pas. C’est peut-être l’option la plus simple si vous n’avez besoin de traiter qu’un seul fichier et que le fichier entier peut tenir dans une seule feuille de calcul.

Une autre approche consiste à utiliser une macro. (C’est celui que je trouve le plus rapide et le plus simple, en particulier si vous devez importer un peu le même type de fichier.) La macro peut ouvrir le fichier texte, lire chaque ligne, puis déterminer si le les informations de cette ligne doivent être ajoutées à la feuille de calcul ou non. Voici un exemple qui ouvrira un fichier nommé « MyCSVFile.txt », puis collera les données dans une nouvelle feuille de calcul commençant à la première ligne.

Sub ReadMyFile()

Dim R As Integer     Dim C As Integer     Dim sDelim As String     Dim sRaw As String     Dim ReadArray() As String

sDelim = ","     ' Set to vbTab if tab-delimited file

Worksheets.Add     Open "myCSVFile.txt" For Input As #1     R = 1     Do While Not EOF(1)

Line Input #1, sRaw         ReadArray() = Split(sRaw, sDelim, 20, vbTextCompare)

If ReadArray(4) = "y" Then             For C = 0 To UBound(ReadArray)

Cells(R, C + 1).Value = ReadArray(C)

Next C             R = R + 1         End If     Loop     Close #1 End Sub

Pour utiliser la macro, changez simplement le nom du fichier pour qu’il corresponde au fichier que vous souhaitez traiter. Vous voudrez également modifier la variable sDelim pour vous assurer qu’elle correspond à tout ce qui est utilisé comme délimiteur dans vos enregistrements. Tel qu’il est écrit, il suppose que le délimiteur est une virgule (ce qui serait dans un fichier CSV), mais vous pouvez le changer en vbTab si vous travaillez réellement avec un fichier délimité par des tabulations. Une fois la macro terminée, seuls les enregistrements avec un seul caractère « y » minuscule se trouvent dans la nouvelle feuille de calcul.

Une autre approche consiste à utiliser la fonctionnalité Power Query d’Excel. Il s’agit d’un complément gratuit, de Microsoft, disponible pour certaines variantes d’Excel 2010 et d’Excel 2013. Vous pouvez télécharger (et découvrir quelles variantes sont prises en charge) à cet emplacement:

http://www.microsoft.com/en-us/download/details.aspx?id=39379

Si vous utilisez Excel 2016, Power Query est intégré au programme.

Si Power Query est installé ou disponible dans votre version d’Excel et que cette version d’Excel est Excel 2010 ou Excel 2013, procédez comme suit:

  1. Affichez l’onglet Power Query du ruban.

  2. Cliquez à partir du fichier | À partir de CSV. Excel affiche la boîte de dialogue Parcourir les valeurs séparées par des virgules, qui ressemble beaucoup à une boîte de dialogue Ouvrir standard.

  3. Recherchez et sélectionnez le fichier CSV que vous souhaitez importer dans Excel.

  4. Cliquez sur Ouvrir. Excel charge les données dans une fenêtre Power Query avec des boutons de filtrage disponibles pour chaque champ.

Si vous utilisez Excel 2016 ou une version ultérieure, les étapes sont un peu différentes:

  1. Affichez l’onglet Données du ruban.

  2. Cliquez sur l’outil Nouvelle requête (Excel 2016) ou l’outil Obtenir des données (versions ultérieures d’Excel) dans le groupe Obtenir et transformer. Excel affiche certaines options.

  3. Cliquez à partir du fichier | À partir de texte / CSV. Excel affiche la boîte de dialogue Importer des données, qui ressemble beaucoup à une boîte de dialogue Ouvrir standard.

  4. Recherchez et sélectionnez le fichier CSV que vous souhaitez importer dans Excel.

  5. Cliquez sur Ouvrir. Excel charge les données dans une fenêtre Power Query avec des boutons de filtrage disponibles pour chaque champ.

À ce stade, quelle que soit la version d’Excel que vous utilisez, vous pouvez utiliser les contrôles pour spécifier une requête (c’est-à-dire définir une définition des enregistrements à importer). Lorsque vous cliquez sur Fermer et charger, les enregistrements sont extraits du fichier et la requête peut être enregistrée pour une utilisation future.

Une quatrième approche consiste à utiliser Microsoft Query. Pour ce faire, vous devrez suivre cette très longue série d’étapes. (Personne n’a jamais dit que Microsoft voulait rendre Microsoft Query facile à utiliser, et vous serez d’accord après avoir suivi ces étapes.)

  1. Affichez l’onglet Données du ruban.

  2. Cliquez sur l’outil Obtenir les données dans le groupe Obtenir et transformer les données, puis choisissez À partir d’autres sources (dans les versions antérieures du groupe Obtenir des données externes d’Excel), puis choisissez À partir de Microsoft Query. Excel affiche la boîte de dialogue Choisir la source de données. (Voir la figure 1.)

  3. Sélectionnez l’option Nouvelle source de données et cliquez sur OK. Excel affiche la boîte de dialogue Créer une nouvelle source de données. (Voir la figure 2.)

  4. Donnez un nom à votre source de données, par exemple « Fichiers CSV ».

  5. À l’aide de la liste déroulante de l’élément 2, choisissez Microsoft Text Driver.

  6. Cliquez sur Connecter. Excel affiche la boîte de dialogue Configuration du texte ODBC.

  7. Cliquez immédiatement sur OK pour fermer la boîte de dialogue.

  8. Cliquez sur OK pour fermer la boîte de dialogue Créer une nouvelle source de données. Excel met à jour la boîte de dialogue Choisir la source de données pour inclure le nom que vous avez spécifié à l’étape 4.

  9. Sélectionnez la source de données que vous venez de créer, puis cliquez sur OK. Excel affiche un avertissement indiquant qu’il n’y a pas de tables de données dans la source. (C’est bon; vous n’en avez pas défini.)

  10. Cliquez sur OK pour ignorer l’avertissement. Excel affiche la boîte de dialogue Assistant Requête.

  11. Comme vous ne pouvez rien faire avec une boîte de dialogue Assistant Requête vide, cliquez sur Annuler. Excel affiche un avertissement vous demandant si vous souhaitez rester dans Microsoft Query.

  12. Cliquez sur Oui. Excel affiche la boîte de dialogue Ajouter une table.

  13. À l’aide des commandes de la boîte de dialogue, recherchez et sélectionnez votre fichier CSV.

  14. Cliquez sur le bouton Ajouter. Excel semble ne rien faire, mais il a en fait ajouté la référence au fichier CSV.

  15. Cliquez sur le bouton Fermer pour fermer la boîte de dialogue Ajouter une table. Votre fichier CSV s’affiche dans la fenêtre Microsoft Query.

  16. À l’aide de la liste des champs du fichier CSV, faites glisser chaque champ que vous souhaitez importer dans la feuille de calcul dans la zone inférieure de la fenêtre Microsoft Query. (Si vous voulez tous les champs, faites simplement glisser l’astérisque dans la zone inférieure de la fenêtre.)

  17. Cliquez sur Critères | Ajouter des critères. Excel affiche la boîte de dialogue Ajouter des critères. (Voir la figure 3.)

  18. À l’aide des commandes de la boîte de dialogue, spécifiez que vous souhaitez que le champ 5 (quel que soit son nom) soit égal à «y».

  19. Cliquez sur le bouton Ajouter pour ajouter réellement les critères à la requête.

  20. Cliquez sur Fermer pour fermer la boîte de dialogue Ajouter des critères.

  21. Cliquez sur Fichier | Renvoyez les données à Microsoft Excel. Excel affiche la boîte de dialogue Importer des données. (Voir la figure 4.)

  22. Modifiez les paramètres de la boîte de dialogue, comme vous le souhaitez, pour indiquer comment vous souhaitez que les données CSV soient renvoyées dans Excel.

  23. Cliquez sur OK.

(Je vous ai dit que les étapes étaient longues.) Vous pouvez maintenant travailler avec les données dans Excel et, si vous le souhaitez, utiliser les outils de l’onglet Conception du ruban pour actualiser les données du fichier CSV.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (10384) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365.