Problème d'importation de CSV

siocnarf

XLDnaute Occasionnel
Bonjour,

J'ai un csv de 90 000 lignes et je souhaite l'importer dans Excel 2007. Jusque là, il n'y a pas trop de souci.

Mon problème est que j'ai des inscriptions dans la première colonne tel que suit:
Adobe Acrobat 9 Pro - English, Français, Deutsch

Or l'importation fait que la séparation avec des virgules coupe le produit en 3 colonnes. Auparavant, j'avais évalué qu'avec un txt et des tabulations entre les colonnes mon problème était réglé. Je ne peux plus effectuer d'exportation avec un séparateur en tabulation.

Sur 90000 lignes, j'ai peut-être 300 lines qui sont problématiques.

1. Y-a-t-il un moyen d'empêcher que ces lignes soient coupé?
2. Comment par programmation, je pourrais tester ces lignes et les corriger.

Le principe serait de passer sur les lignes qui ont de l'information en colonne H (laq colonne H est normalement vide), fusionner La colonne A, B et C en mettant une virgule entre chaque mot et décaler les colonne D,E,F,G,H en colonne B,C,D,E,F.
Mais cela peut être long sur 90K lines.

Comment je devrais procéder? Y-a-t-il une autre alternative?

Merci,

François
 

Pièces jointes

  • test.xls
    94.5 KB · Affichages: 40
  • test.xls
    94.5 KB · Affichages: 45
  • test.xls
    94.5 KB · Affichages: 45

siocnarf

XLDnaute Occasionnel
Re : Problème d'importation de CSV

Lorsque j'ouvre un csv, j'ai effectivement une fenêtre me demandant diverses informations dont les séparateurs.
Pour l'exportation en csv, par défaut on obtient des virgule (comma-separated value). De là, la récupération des données peut être effectivement problématique.
 

chris

XLDnaute Barbatruc
Re : Problème d'importation de CSV

Re

J'ai l'impression d'un dialogue de sourds où on tourne en rond...

Je sais que CSV veut dire comma-separated value.

Cela n'empêche que sur la plupart des applicatifs on peut paramétrer le format et comme déjà dit, au minimum opter pour l'encadrement des chaînes de caractères et pour certains changer le séparateur...

Je pars du principe que traiter le problème en amont est toujours plus sûr que de le dénouer à postériori mais tu fais comme tu veux ou comme tu peux...
 

Docmarti

XLDnaute Occasionnel
Re : Problème d'importation de CSV

Bonjour siocnarf, à tous.

Une suggestion:

Code:
Sub Concatener_ABC_Et_Decaler_DH()
Set r = UsedRange
  
 For i = 2 To r.Rows.Count
 ' r.Cells(i, 1).Select
 
  If r.Cells(i, 7) <> "" Or r.Cells(i, 8) <> "" Then
    
   For j = 2 To 3
    
    r.Cells(i, 1).FormulaLocal = r.Cells(i, 1) & "," & r.Cells(i, j)
    r.Cells(i, j) = ""
   Next
    
   For j = 4 To 6
    r.Cells(i, j).FormulaLocal = r.Cells(i, j + 2)
   Next
   
   For j = 7 To 8
    r.Cells(i, j) = ""
   Next
   
  End If
 Next

End Sub

Cordialement

Docmarti
 

siocnarf

XLDnaute Occasionnel
Re : Problème d'importation de CSV

Re

J'ai l'impression d'un dialogue de sourds où on tourne en rond...

Je sais que CSV veut dire comma-separated value.

Cela n'empêche que sur la plupart des applicatifs on peut paramétrer le format et comme déjà dit, au minimum opter pour l'encadrement des chaînes de caractères et pour certains changer le séparateur...

Je pars du principe que traiter le problème en amont est toujours plus sûr que de le dénouer à postériori mais tu fais comme tu veux ou comme tu peux...

Je crois tout simplement que tu as la volonté de m'aider mais que je ne suis tout simplement pas ton raisonnement.
Je suis bien de ton avis qu'il vaut toujours mieux traiter en amont.

Ce qui m'embrouille est l'idée de renommer le fichier csv en txt. Bien évidemment, dans les deux cas, il y a un menu qui apparaît et demande le type de séparateur. Personnellement, j'utilisais les tabulations mais hélas ce n'est plus possible... Puisque le format du csv utilise les virgules et que ma problématique tient des virgules, les csv posent un souci. Je ne peux définitivement pas utiliser un autre séparateur puisque le csv est fait avec des virgules. L'encadrement des chaines de caractères n'est malheureusement pas une option. Il s'agit d'une extraction faites à partir de SQL avec SSRS 2008. Je n'ai pas accès au générateur de rapport et donc je ne peux faire de modification.

Bizarrement, j'ai réussi à importer les données malgré les virgules supplémentaires. C'est étrange. Pourtant avec le même rapport, j'ai obtenu une séparation de trop avec les termes contenant des virgules. Il y a quelque chose qui m'échappe. Parfois ça marche et parfois pas. As-tu une idée?

Merci pour ta patience.
 

chris

XLDnaute Barbatruc
Re : Problème d'importation de CSV

Bonjour

Ce qui m'embrouille est l'idée de renommer le fichier csv en txt. Bien évidemment, dans les deux cas, il y a un menu qui apparaît et demande le type de séparateur.

Sur Excel quand on passe par fichier ouvrir ou si on double clique sur le fichier depuis l'explorateur, le fenêtre en question ne s'ouvre pas d'où le changement d'extension qui force cette ouverture.

Comment ouvres-tu le fichier ?

Personnellement, j'utilisais les tabulations mais hélas ce n'est plus possible... Puisque le format du csv utilise les virgules et que ma problématique tient des virgules, les csv posent un souci. Je ne peux définitivement pas utiliser un autre séparateur puisque le csv est fait avec des virgules. L'encadrement des chaines de caractères n'est malheureusement pas une option. Il s'agit d'une extraction faites à partir de SQL avec SSRS 2008. Je n'ai pas accès au générateur de rapport et donc je ne peux faire de modification.

Si on en croit cette page Ce lien n'existe plus le séparateur est paramétrable et les chaînes sont encadrées par défaut par des guillemets : donc à vérifier.
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 765
Messages
2 091 892
Membres
105 084
dernier inscrit
lca.pertus