autre petit problème la valeur NomFichier contient un retour chariot je croit... comment je pourrais le supprimer ?
Sinon je mets NomfichierEXCEL|NomOnglet|Ligne|Colonne|Valeur; et mis dans un tableau avec split | puis les valeurs sont mis dans des variables.
Re,
Sauvegarder le fichier et libérer les variables :
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Set objSheet1 = Nothing objWbk.Close True, "Chemin de Destination" Set objWbk = Nothing
Pour le savoir, tu peux tester avec instr
Pour enlever l'un et/ou l'autre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 If instr(NomFichier, vbcr) <> 0 Then msgbox "t'as un cr dans le nom (carriage return)" 'ou If instr(NomFichier, vblf) <> 0 Then msgbox "t'as un lf dans le nom"
Code : Sélectionner tout - Visualiser dans une fenêtre à part NomFichier = Replace(Replace(NomFichier, vblf, ""), vbcr, "")Ce n'était pas ma question. Comment lis-tu les lignes de ton csv ? Quelle méthode ? Fichier texte ou lecture feuille de calculs ?Envoyé par killysui
Pour répondre à ta question :
voici le code de lecture :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 Chemin = ThisWorkbook.Path NomFichCSV = "Test.csv" NomFichEXCEL = "" Dim F As Integer F = FreeFile '1er numéro libre Open Chemin & "\" & NomFichCSV For Input As #F 'ouvert en ajout 'Open Chemin & "\" & NomFichCSV For Input As #1 Do While Not EOF(F) Line Input #F, LigneCSV TableauLignesCSV = Split(LigneCSV, ";") For NoLigneCVS = 0 To UBound(TableauLignesCSV) TableauValeurLigne = Split(TableauLignesCSV(NoLigneCVS), "|") 'If Not TableauValeurLigne Is Nothing Then NomOnglet = TableauValeurLigne(1) NumLigne = Val(TableauValeurLigne(2)) NumColonne = Val(TableauValeurLigne(3)) Valeur = Val(TableauValeurLigne(4)) ...... Next Loop Close #F
RE,
Résolu, Non??
A+
J'aurai bien voulu... mais je n'ai pas encore fini...
Je boucle une fois de trop dans mon fichier
du coup j'ai une erreur... comment je peux la gérer?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 For NoLigneCVS = 0 To UBound(TableauLignesCSV) TableauValeurLigne = Split(TableauLignesCSV(NoLigneCVS), "|") 'If Not TableauValeurLigne Is Nothing Then NomOnglet = TableauValeurLigne(1)
Merci
RE,
Non??
Code : Sélectionner tout - Visualiser dans une fenêtre à part For NoLigneCVS = 0 To (UBound(TableauLignesCSV) - 1)
Oui moi aussi lorsque j'ai vu cela ca ma paru bizar ... mais à la deuxième ligne une retour chariot(le fichier .csv a du être mal fait..j'ai ). Avec le replace cela fonctionne mieux.
J'aurai une dernière question(du moin je l'espère)
la fermeturene fonctionne pas...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 objWbk1.close true, chemin & "\" & NomFichExcel set objWbk1 = nothing set app = nothing
Re,
Quelle est l'erreur?
A+
Désolé je me suis trompé.L'erreur ce produire lors de la fermeture du fichier
Ce qui est bizar c'est cette erreur (qui est vide)n'apparait que si je gère les erreurs avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part close #f
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 On Error Goto errrr errr: msgbox "erreur :" & err.description, vbcritical,"erreur import csv"
C'est à dire que si je décommente cette partie , l'erreur n'apparait pas.
Re,
Tu n'essayes pas de faire tout ça sur le même fichier??
Tu ne veux pas nous balancer le code au complet, ça sera plus facile pour la compréhension...
A+
le errr: et placé juste aprèsvoici en gros le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part #close
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 On Error GoTo Error_LFT Dim F As Integer F = FreeFile '1er numéro libre Open Chemin & "\" & NomFichCSV For Input As #F Do While Not EOF(F) Line Input #F, LigneCSV .... loop .... Close #F Error_LFT: Beep MsgBox "Rrreur : " & vbCrLf & Err.Description, vbCritical, "Erreur import .csv" Exit Sub
lors ajoute Exit sub
Tu n'iras sur Error_LFT:: que si tu as une erreur, sinon, tu passeras toujours par "là" après close (!)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Close #F Exit sub Error_LFT::
Tu fermes le csv, pas le fichier contenant la macro, alors elle continue, c'est normal...![]()
Sinon vous ne saurez pas comment ajouter la classe Scripting dans la bibliothèque ?
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dim objFSO As New Scripting.FileSystemObject
Partager