Comment exporter des colonnes sélectionnées dans un fichier csv


24

Je souhaite exporter un nombre spécifique de colonnes d'Excel vers un fichier .csv. J'ai environ 10 colonnes comme lname, fname, phone, address, emailet ainsi de suite. Que dois - je faire pour exporter seulement certaines colonnes comme lname, emailet ainsi de suite?

Réponses:


23

Faites simplement: -

  1. Appliquer la concaténation pour 10 colonnes

    =CONCATENATE(A1,",",B1,",",C1,",",D1,",",E1,",",F1,",",G1,",",H1,",",I1,",",J1)
    
  2. Faites glisser la liste vers le bas de votre dernière ligne

  3. Copiez la colonne des résultats
  4. Collez-le dans le bloc-notes
  5. Enregistrez-le au .csvformat de fichier

CONCATENATE a très bien fonctionné pour moi. Merci beaucoup.
Nedim Šabić

3
Simple ... à moins qu'une double citation ne puisse être trouvée dans aucune de vos colonnes ...
évêque

N'avez-vous pas à séparer les éléments concaténés par un point-virgule? = CONCATENER (A1; ","; B1; ","; C1; ","; D1; ","; E1; ","; F1; ","; G1; ","; H1; "," ; I1; ","; J1)
mabho

9

Sélectionnez la première colonne souhaitée. Ensuite, tout en maintenant enfoncée <Ctrl>, sélectionnez les colonnes restantes de votre choix. Copiez votre sélection et collez-la dans un nouveau classeur. Enregistrez le nouveau classeur en tant que fichier .csv.

Si vous comptez le faire fréquemment, enregistrez une macro de vos étapes. Voici la macro enregistrée lors de mon test. Dans mon exemple, la colonne A est le nom et la colonne E est le courrier électronique. J'ai également modifié la macro afin que le nom de fichier SaveAs inclue la date actuelle.


J'allais montrer un exemple de macro, mais pour une raison quelconque, des erreurs de superutilisateur se produisent lorsque je clique sur Enregistrer les modifications. Je réessayerai plus tard.


4

Voici une solution low-tech:

  1. Enregistrez une copie de votre feuille entière au format .csv.
  2. Tout en restant ouvert dans Excel, supprimez les colonnes dont vous ne voulez pas.
  3. Sauver.

3

J'ai écrit ma propre solution VBA en tant que complément; il est disponible ici sur GitHub.

Exemple de vue (cliquez sur l'image pour une version plus grande):

Capture d'écran du formulaire d'outil

Les étapes d'utilisation sont les suivantes:

  • Installer le complément
  • Charger le formulaire ( Ctrl+ Shift+ Cest actuellement attribué pour afficher le formulaire)
  • Mettez en surbrillance la plage que vous souhaitez exporter
  • Sélectionnez le dossier d'exportation
  • Entrez le nom de fichier, le format numérique et le séparateur souhaités
  • Choisissez d'ajouter ou d'écraser
  • Cliquez sur «Exporter»

Le formulaire est non modal, vous pouvez donc le laisser ouvert pendant que vous sélectionnez différentes plages ou naviguez feuille à feuille ou classeur à classeur. À noter, le «symbole at» ( @) sert de représentation du format numérique «Général» d'Excel pour des opérations de sortie comme celle-ci.

Contenu de C:\test.csvl'exemple ci-dessus:

13,14,15
14,15,16
15,16,17

2
Sub ExportSelectionAsCSV()
    ' MS Excel 2007
    ' Visual Basic for Applications
    '
    ' Copies the selected rows & columns
    ' to a new Excel Workbook. Saves the new 
    ' Workbook as Comma Separated Value (text) file.
    '
    ' The active workbook (the 'invoking' workbook - the 
    ' one that is active when this subroutine is called) 
    ' is unaffected.
    '
    ' Before returning from the subroutine, the invoking workbook
    ' is "set back to" (restored as) the active workbook.
    '
    ' Note: target filename is hard coded (code is simpler that way)

    ' Suspends screen updating (until ready to return)
    ' Warning: ScreenUpdating MUST be re-enabled before
    ' returning from this subroutine.
    '
    ' Note: Step through this subroutine line-by-line to prove
    ' to yourself that it is performing as promised.
    ' (Please step through the code at least once - use F8)
    Application.ScreenUpdating = False

    ' Gets the name of *this (the invoking) workbook
    ' so *this workbook can again be set active
    ' at the end of this subroutine.
    Dim CurrentFileName As String
    CurrentFileName = ActiveWorkbook.Name
    Debug.Print "Active File: " + CurrentFileName

    ' Copies the selected cells (to the clipboard).
    ' Precondition: Cells must be selected before 
    ' calling this subroutine.
    Selection.Copy

    ' Instantiates a (new) object instance of type Excel workbook.
    ' Side-effect: The new workbook instance is now
    ' the 'active' workbook. 
    Workbooks.Add Template:="Workbook"

    ' Selects the first cell of the 
    ' first worksheet of the new workbook.
    Range("A1").Select

    ' Pastes the clipboard contents to the new worksheet
    ' (of the new workbook)
    ActiveSheet.Paste

    ' Writes the new (active) Excel workbook to file.
    ' The format is Comma Separated Value
    ActiveWorkbook.SaveAs Filename:= _
    "C:\temp\data.csv" _
    , FileFormat:=xlCSV, _
    CreateBackup:=False

    ' Gets the filename of the new (active) workbook
    ' so the name can be logged.
    Dim NewFileName As String
    NewFileName = ActiveWorkbook.Name
    Debug.Print "Active File: " + NewFileName

    ' Closes the new CSV file
    Application.DisplayAlerts = False
    ActiveWorkbook.Close
    Application.DisplayAlerts = True

    ' Clears the clipboard contents.
    Application.CutCopyMode = False

    ' Restores the invoking workbook as the active
    ' Excel workbook. 
    Workbooks(CurrentFileName).Activate
    Range("A1").Select

    ' Re-Enables Excel screen display.
    Application.ScreenUpdating = True
End Sub


1

Si vous ouvrez le fichier dans Ron's Editor, vous pouvez masquer les colonnes dont vous ne voulez pas, puis exporter la «vue» résultante en tant que fichier Excel ou tout autre format. Mieux encore, vous pouvez enregistrer la vue pour une utilisation future. Très rapide, très facile.


1

Encore une autre solution:

  1. Sélectionnez les cellules que vous souhaitez exporter
  2. Enveloppez un tableau autour des cellules (par exemple, appuyez sur Ctrl + T sous Windows)
  3. Exécutez la macro ExportTable

Enregistre la table sur la feuille active en tant que nouveau CSV (en ouvrant un nouveau classeur et en enregistrant à partir de là, en utilisant le nom de la table comme nom de fichier).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.