XL 2016 Importer fichier CSV et traitement données

Hanjen

XLDnaute Nouveau
Bonsoir à tous!

J'ai besoin d'import un fichier cvs dans un ficher à l'aide d'un bouton dans la feuille nommée "data". J'ai récupérer une macro mais elle ne fonctionne pas tout à fait comme je le souhaite. Elle me colle tout dans la cellule A1. Je souhaite exactement comme le fichier CSV. C'est la première étape :)

Par la suite je souhaite alimenter les cellules de la feuille nommée "saisie des mesures" avec les infos qui sont dans la feuille "data". Par exemple c8 dans b28. C9 dans B42

Pouvez-vous m'apporter une aide?

Merci
 

Pièces jointes

  • Macro.xlsm
    28.4 KB · Affichages: 11

Hanjen

XLDnaute Nouveau
Bonsoir à tous!

J'ai besoin d'import un fichier cvs dans un ficher à l'aide d'un bouton dans la feuille nommée "data". J'ai récupérer une macro mais elle ne fonctionne pas tout à fait comme je le souhaite. Elle me colle tout dans la cellule A1. Je souhaite exactement comme le fichier CSV. C'est la première étape :)

Par la suite je souhaite alimenter les cellules de la feuille nommée "saisie des mesures" avec les infos qui sont dans la feuille "data". Par exemple c8 dans b28. C9 dans B42

Pouvez-vous m'apporter une aide?

Merci
 

job75

XLDnaute Barbatruc
Bonsoir Hanjen,

Pour l'importation du fichier CSV essayez ce code :
VB:
Sub ImportCVS()
Dim NomFichier As Variant, a(), x%, texte$, n&
ChDir ThisWorkbook.Path
NomFichier = Application.GetOpenFilename("Fichiers .csv (*.csv), *.csv")
If NomFichier = False Then Exit Sub
ReDim a(1 To Rows.Count, 1 To 1)
x = FreeFile
Open NomFichier For Input As #x
While Not EOF(x) 'EndOfFile : fin du fichier
    Line Input #x, texte 'récupère la ligne
    n = n + 1
    a(n, 1) = Replace(texte, """", "") 'supprime les guillemets
Wend
Close #x
'---restitution---
Application.ScreenUpdating = False
Cells.ClearContents 'RAZ
With [A1].Resize(n)
    .Value = a
    .TextToColumns .Cells(1), xlDelimited, Semicolon:=True 'commande Convertir
End With
Cells.Replace ".", ".", xlPart 'convertit les textes en nombres
End Sub
Bonne nuit.
 
Dernière édition:

Hanjen

XLDnaute Nouveau
Bonsoir Hanjen,

Pour l'importation du fichier CSV essayez ce code :
VB:
Sub ImportCVS()
Dim NomFichier As Variant, a(), x%, texte$, n&
ChDir ThisWorkbook.Path
NomFichier = Application.GetOpenFilename("Fichiers .csv (*.csv), *.csv")
If NomFichier = False Then Exit Sub
ReDim a(1 To Rows.Count, 1 To 1)
x = FreeFile
Open NomFichier For Input As #x
While Not EOF(x) 'EndOfFile : fin du fichier
    Line Input #x, texte 'récupère la ligne
    n = n + 1
    a(n, 1) = Replace(texte, """", "") 'supprime les guillemets
Wend
Close #x
'---restitution---
Application.ScreenUpdating = False
Cells.ClearContents 'RAZ
With [A1].Resize(n)
    .Value = a
    .TextToColumns .Cells(1), xlDelimited, Semicolon:=True 'commande Convertir
End With
Cells.Replace ".", ".", xlPart 'convertit les textes en nombres
End Sub
Bonne nuit.
Merci job75, cela fonctionne parfaitement!
Je vais essayé de comprendre ligne par ligne :)
 

Discussions similaires

Statistiques des forums

Discussions
312 095
Messages
2 085 250
Membres
102 837
dernier inscrit
CRETE