CSV vers XLS provoque une erreur vba #NOM? dans champs qui débutent par =

CAPRI_456

XLDnaute Occasionnel
Bonjour le Forum


Suite à une importation de CSV dans XLS , j'ai des colonnes comprenant du texte importé était précédé de "=" :

exemples dans CSV:
= - others
= - - - others
= -details
etc....


tous ces termes ressortent sous forme d'une d'erreur vba #NOM? dans le tableur XLS

Où cela devient agacant c'est lorsque je veux envoyer les données du tableur XLS vers ACCESS
Il me met un message indiquant qu'il ne peut pas lire les données #NOM? dans la table de destination

Parade .

Pour éviter cela, j'ai utilisé le code suivant qui surfe sur toute la sélection :
Il a pour effet de supprimer le caractère fonction = devant le texte...
Selection.Replace What:="=", Replacement:="", LookAt:=xlPart

'remplacement par rien alors seul le texte subsiste


Cependant vu les milliers de lignes ce surf dans la/les colonnes prend du temps machine et allonge la procédure

Question :
- est-il possible et plus rapide, si oui , alors comment ?
--- de réaliser l'élimination du "=" directement dans le fichier CSV
en bouclant par exemple sur tous les fichiers csv du répertoire

plutôt que de réaliser cela après dans XLS au milieu de nombreuses et autres procédures...



Merci pour votre aide

CAPRI_456
 

phlaurent55

XLDnaute Barbatruc
Re : CSV vers XLS provoque une erreur vba #NOM? dans champs qui débutent par =

Bonjour Capri,

2 instructions trop souvent oubliées dans les début de procédures et qui diminuent souvent le temps d'exécution

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual


et ceci à la fin de proc.

Application.ScreenUpdating = True
Application.Calculation =xlCalculationAutomatic




à+
Philippe
 

MJ13

XLDnaute Barbatruc
Re : CSV vers XLS provoque une erreur vba #NOM? dans champs qui débutent par =

Bonjour Capri, Philippe

- est-il possible et plus rapide, si oui , alors comment ?
--- de réaliser l'élimination du "=" directement dans le fichier CSV
C'est vai que c'est le genre de problème un peu pénible.

J'essaierai dans un premier temps si en utilisant l'instruction Open, tu peux lire un fichier de type texte avec un like le caractère "=" et le remplacer avec replace. Normalement c'est ultra rapide.

Bie penser à faire close au début pour fermer tout fichier csv qui serait encore ouvert.

De plus avec la fonction Dir, cela doit être faisable de boucler sur l'ensemble de tes fichiers.
 

phlaurent55

XLDnaute Barbatruc
Re : CSV vers XLS provoque une erreur vba #NOM? dans champs qui débutent par =

Re,
Selection.Replace What:="=", Replacement:="", LookAt:=xlPart
à voir cette ligne, tu sélectionnes chaque cellule dans la boucle

le temps peut être réduit en bouclant:

For Each cellule in Range(..............
cellule.Replace What:="=", Replacement:="", LookAt:=xlPart
Next cellule

à+

Philippe
 

CAPRI_456

XLDnaute Occasionnel
Re : CSV vers XLS provoque une erreur vba #NOM? dans champs qui débutent par =

Bonsoir le Forum,

Merci phlaurent55, MJ13 pour ces propositions que je vais m'empresser de tester au niveau de la rapidité

et je reviens à vous

CAPRI_456
 

MJ13

XLDnaute Barbatruc
Re : CSV vers XLS provoque une erreur vba #NOM? dans champs qui débutent par =

Re

Tu peux tester un code de ce type:

Code:
Sub Extrait_txt_Egal()
Close

NomFAO = "C:\Users\Nom\Desktop\CsvAvecEgal.txt"
NomFAE = "C:\Users\Nom\Desktop\CsvAvecEgal2.txt"

Open NomFAO For Input As #1
Open NomFAE For Output As #2

While Not (EOF(1))
Input #1, a$
If a$ Like "*=*" Then b$ = Replace(a$, "=", ""): Print #2, b$: GoTo Suite
'Stop
Print #2, a$
Suite:
Wend

Close
End Sub
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas