Problème pour récupérer la 65537° ligne d'un fichier csv
Résolu/Fermé
Stcoeur
Messages postés
4
Date d'inscription
lundi 10 juin 2013
Statut
Membre
Dernière intervention
13 juin 2013
-
10 juin 2013 à 12:08
Stcoeur Messages postés 4 Date d'inscription lundi 10 juin 2013 Statut Membre Dernière intervention 13 juin 2013 - 13 juin 2013 à 11:18
Stcoeur Messages postés 4 Date d'inscription lundi 10 juin 2013 Statut Membre Dernière intervention 13 juin 2013 - 13 juin 2013 à 11:18
A voir également:
- Problème pour récupérer la 65537° ligne d'un fichier csv
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment récupérer un compte facebook piraté - Guide
- Fichier host - Guide
- Comment recuperer un message supprimé sur whatsapp - Guide
3 réponses
eriiic
Messages postés
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 mars 2024
7 209
Modifié par eriiic le 10/06/2013 à 13:03
Modifié par eriiic le 10/06/2013 à 13:03
Bonjour,
à tester :
Changer la constante du début, actuellement 3 lignes d'importées.
Ainsi que chemin et nom du fichier (si il varie beaucoup on pourra ajouter une boite de sélection)
Tenir compte des lignes de titres pour les lignes à passer.
Ne connaissant pas tes datas tout est importé en colonne A, il te reste à faire 'Convertir...' pour les répartir.
https://www.cjoint.com/?CFkm7hTec6e
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
à tester :
Sub importCSV() Const nblig As Long = 3 Dim lig1 As Long, chemin As String, fichier As String, numfich As Long Dim lig As Long, i As Long, j As Long, tmp As String Dim datas() chemin = "d:\tmp\" fichier = "datas.csv" lig1 = Application.InputBox("1ère ligne à importer ?", , 1, , , , , 1) numfich = FreeFile Open chemin & fichier For Input Lock Read Write As #numfich ' lecture lignes à passer Do While Not EOF(numfich) And i < lig1 - 1 i = i + 1 Input #numfich, tmp Loop i = 0 ' lecture lignes à importer While Not EOF(numfich) And i < nblig i = i + 1 ReDim Preserve datas(1 To i) Input #numfich, tmp datas(i) = tmp Wend Close #numfich [A:A].ClearContents [A1].Resize(i) = datas End Sub
Changer la constante du début, actuellement 3 lignes d'importées.
Ainsi que chemin et nom du fichier (si il varie beaucoup on pourra ajouter une boite de sélection)
Tenir compte des lignes de titres pour les lignes à passer.
Ne connaissant pas tes datas tout est importé en colonne A, il te reste à faire 'Convertir...' pour les répartir.
https://www.cjoint.com/?CFkm7hTec6e
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
Stcoeur
Messages postés
4
Date d'inscription
lundi 10 juin 2013
Statut
Membre
Dernière intervention
13 juin 2013
10 juin 2013 à 13:58
10 juin 2013 à 13:58
Ok merci beaucoup, je teste tout de suite
Stcoeur
Messages postés
4
Date d'inscription
lundi 10 juin 2013
Statut
Membre
Dernière intervention
13 juin 2013
10 juin 2013 à 15:00
10 juin 2013 à 15:00
Hmm, j'ai testé et en fait il semblerait que
1. il n'y ai pas de changement lorsque la cellule est recopiée. En gros lorsque l'on recopie dans la colonne A, c'est toujours la même valeur qui ressort.
2. Ensuite quand je sélectionne une valeur dans la message box, ça ne me recopie pas les valeurs à partir de la k° ligne, mais de la k° colonne.
Je n'arrive pas à régler ces problèmes dans ton code
1. il n'y ai pas de changement lorsque la cellule est recopiée. En gros lorsque l'on recopie dans la colonne A, c'est toujours la même valeur qui ressort.
2. Ensuite quand je sélectionne une valeur dans la message box, ça ne me recopie pas les valeurs à partir de la k° ligne, mais de la k° colonne.
Je n'arrive pas à régler ces problèmes dans ton code
eriiic
Messages postés
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 mars 2024
7 209
10 juin 2013 à 15:58
10 juin 2013 à 15:58
Un petit oubli, j'aurais dû regarder de plus près le résultat.
Remplace la dernière ligne par :
[A1].Resize(i) = Application.Transpose(datas)
et regarde si c'est mieux.
eric
Remplace la dernière ligne par :
[A1].Resize(i) = Application.Transpose(datas)
et regarde si c'est mieux.
eric
eriiic
Messages postés
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 mars 2024
7 209
13 juin 2013 à 01:17
13 juin 2013 à 01:17
Si tu peux mettre en résolu...
eric
eric
Stcoeur
Messages postés
4
Date d'inscription
lundi 10 juin 2013
Statut
Membre
Dernière intervention
13 juin 2013
13 juin 2013 à 11:18
13 juin 2013 à 11:18
voilà désolé pour l'attente et encore merci Eric