|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre habitué
![]() Inscription : janvier 2005 Messages : 527 ![]() |
Bonjour à tous,
J'ai un csv que j'importe dans access. Je me suis rendue compte que j'importais des #NOM? car dans mon csv, il y a +accident devient =+accident soit #NAME? au moment de l'import avec la transformation text to column. Je souhaite donc avant la transformation text to column, ajouter une apostrophe avant chaque symbole + Code :
xlApp.Sheets("ImportCSV").Cells.Replace "+", "'+" J'ai également testé le code suivant qui ne fonctionne pas non plus: Code :
Je m'en remets donc à vous. Merci par avance. |
||
|
|
00
|
|
|
#2 |
|
Membre éprouvé
![]() Jean-Yves DUMASConsultant informatique Inscription : juin 2010 Messages : 325 ![]() |
Bonjour Debdev,
Bizarre ton pb. J'ai esayé de mon côté et ... ça marche Quel est le format de ton fichier .csv ? As-tu essayé d'utiliser les spécifications d'import ?
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!si tout est OK, n'oubliez pas de cliquer sur
|
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Inscription : janvier 2005 Messages : 527 ![]() |
Salut dumas.blr, ça marche chez toi ?
Celle-ci Code :
xlApp.Sheets("ImportCSV").Cells.Replace "+", "'+" Code :
xlApp.Sheets("ImportCSV").Cells.Replace "+", ESCAPE & "'+" & ESCAPE Le fichier csv a les champs entre guillemets, chaque champ étant séparé par des virgules donc de la forme Mon code est découpé en plusieurs parties: 1. Procédure qui fait l'équivalent de données/convertir pour basculer les champs en plusieurs colonnes 2. Procédure qui remplace les virgules séparateurs de champs par des points virgules 3. Procédure qui importe les données dans access via des spécifications d'import Tout fonctionne bien. Le problème c'est que dans des champs de saisie libre, certains ont commencé leur phrase par des symboles +. A ma 1ère procédure, quand je bascule en plusieurs colonnes, ça me bascule en =+monChamp (si je regarde dans l'affichage de la cellule en haut du fichier excel) et #NOM! apparait (si je regarde dans la cellule en elle même). C'est la raison pour laquelle je voulais faire un replace. En testant directement dans excel (sans passer par le vba ni par access), j'ai le même problème: je vous mets une copie d'écran avant et après le données/convertir pour illustrer le problème. Que le séparateur de champs soit la virgule ou le point virgule, on obtient la même chose. Idem si l'identificateur de texte est guillement ou rien. Merci de votre aide. |
|
|
00
|
|
|
#4 | ||
|
Membre éprouvé
![]() Jean-Yves DUMASConsultant informatique Inscription : juin 2010 Messages : 325 ![]() |
Bonjour Debdev,
Il ne faut pas passer par Excel, mais pas l'importation de fichiers texte. Il est d'abord important que le fichier Excel soir enregistré sous forme de fichier texte, avec l’extension que tu veux J'ai utilisé comme exemple un fichier .csv que j'ai visualisé dans avec un éditeur de texte de la manière suivante : Code :
Utilise d'abords l'assistant importation de texte menu "donnée externe - fichier texte" L'assistant va identifier un format délimité, puis un séparateur "virgule", ainsi qu'un délimiteur de texte " (j'ai aussi coché "première ligne contient le nom des champs") A ce moment-là, clique sur le bouton "avancé", et l'écran "spécification d'importation s'affiche" (Attention, là, j'ai changé le caractère du séparateur décimal, car il rentre en conflit avec la virgule-séparateur). Là, tu pourras enregistrer ce format d'importation (notament en enregistrant les étapes d'importation, comme le propose l'assistant), et le réutiliser dans un code VBA.
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!si tout est OK, n'oubliez pas de cliquer sur
|
||
|
|
00
|
|
|
#5 |
|
Membre habitué
![]() Inscription : janvier 2005 Messages : 527 ![]() |
![]() T'es un génie T'imagines même pas le temps que j'ai passé (ça se compte en journées entières) pour réussir à importer mon csv. En fait, là où j'avais mal pigé, c'est que j'avais mon csv: - je basculais en colonnes - je transformais la virgule en point virgule - j'importais dans access en utilisant un fichier de spécification Alors qu'importer directement le csv (où tout est en lignes) en utilisant un fichier de spécification, ça marche tout seul ! Pas besoin de mettre en colonnes... J'étais persuadée qu'il fallait un fichier avec des colonnes avant de l'importer dans access. Or cette étape en VBA est celle qui me posait souci pour le replace du "+". Bref, non seulement tu as résolu mon problème du "+" mais en plus, vu que je ne passe plus par l'étape de transformation lignes/colonnes, ça va carrément plus vite Un grand à toiBonne journée ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com