Macro pour importer fichier CSV sous Excel + Formatage de la carte SD

Bonjour tout le monde,

Je viens ici car j'ai un problème, je cherche à importer automatique des données enregistrées sur un Module/Shield Arduino qui me donne un fichier .CSV en fichier Excel ou du moins le traité automatique par macro ?

Le séparateur est une virgule et je vais vous joindre un fichier exemple. C'est pas encore tout à fait au point, je reviens Lundi ou Dimanche pour pour donner un meilleur fichier exemple.

Dans un deuxième temps, le but serait de tracer automatique une courbe avec les valeurs obtenus

Et enfin mais la c'est bonus bonus. Quelqu'un sait si on peut facilement demander par l'intermédiaire d'un bouton ou autre à formaté la carte SD ? Ce n'est pas obligatoire du tout

Car le but de ce projet c'est que le technicien vient pour récupèrer des données sur une carte SD. Une macro pour les traiter puis en cliquant sur un bouton on peut proposer de formater la carte SD (qui ferait ouvrir par exemple le programme de formatage windows de lecteur).

C'est pour un projet en BTS. Je ne suis pas obligé d'allé jusque la mais j'aime apprendre et ce forum regorge de femme et d'homme vraiment talentueux sous Excel.

Je vous souhaite un bon Week-End et j'espère que quelqu'un serait prêt à m'aider.

Merci d'avance à tout ceux qui pourraient m'aider.

107mesure52.zip (4.88 Ko)

Salut NeddToKnow et

Tu trouveras ci-joint le fichier avec le code pour importer ton fichier CSV

En ce qui concerne le formatage de la carte SD, personnellement, je pense que c'est trop dangereux pour le faire par code

En effet le lecteur de carte SD n'a pas forcément la même lettre, comment être certain que la lettre sera la bonne

A+

Bonjour, Enorme merci,

Je vais essayer tout de suite

Par contre, pour que ça fonctionne :

1 Je dois importer le fichier puis après le tracé du graphique va s'oppérer sur la deuxième page ?

2 - Est-ce que tu as réussi pour tracer automatiquent un graphique avec les données ?

2 - Pour la carte SD, tu penses qu'il n'y a aucune solution, on ne pourrait pas lui donner le chemin de la carte SD ou de la lettre ?

En tout cas c'est pas trop grave, mais je me demandais si c'était quand même possible

En tout cas merci merci !!!

Toujours aussi extra ce forum

Salut NeedToKnow

Bonjour, Enorme merci,

Mais de rien

Je vais essayer tout de suite

Par contre, pour que ça fonctionne :

1 Je dois importer le fichier puis après le tracé du graphique va s'oppérer sur la deuxième page ?

Oui, tu as juste à importer le fichier .CSV

Je vais essayer tout de suite2 - Est-ce que tu as réussi pour tracer automatiquent un graphique avec les données ?

Je ne me suis absolument pas occupé de cette partie, les graphiques ce n'est pas ma tasse de thé, à toi de gérer

2 - Pour la carte SD, tu penses qu'il n'y a aucune solution, on ne pourrait pas lui donner le chemin de la carte SD ou de la lettre ?

Evidemment qu'il y a des solutions, sauf que je me refuse à la mettre en place, trop dangereux, il suffit que la lettre définit soit utilisée par un lecteur réseau par exemple.

En tout cas c'est pas trop grave, mais je me demandais si c'était quand même possible

Tant mieux si ce n'est pas grave

A+

Bonjour à tous,

Juste pour info : il est possible de lister tous les supports (disque dur, Sd-Card, clé usb, réseau, ...) d'un PC.

Le code suivant liste ces supports en indiquant :

* le type : code 1 pour Sd-card, clé Usb, ... ou 2 pour disque dur (interne ou externe), ou 3 pour réseau

* le nom du volume

* la lettre (C, D, E, ...)

* l'espace total

Sub Lister_Supports()
Dim FSO As Object, Drv As Object

    Set FSO = CreateObject("Scripting.FileSystemObject")

    For Each Drv In FSO.Drives
        Debug.Print Drv.DriveType & " | " & Drv.VolumeName & " | " & Drv.DriveLetter
        Debug.Print "Espace de " & Drv.DriveLetter & " = " & FSO.getdrive(Drv.DriveLetter).totalsize
    Next

    Set FSO = Nothing
    Set Drv = Nothing
End Sub

De cette façon, quelque soit l'emplacement du support, on peut cibler par exemple une Sd-Card de 2Go :

Sub Cibler_SdCard2Go()
Dim FSO As Object, Drv As Object

    Set FSO = CreateObject("Scripting.FileSystemObject")

    For Each Drv In FSO.Drives
        If Drv.DriveType = 1 And Round(FSO.getdrive(Drv.DriveLetter).totalsize / (2 ^ 30), 1) < 2 Then
            Debug.Print Drv.DriveLetter & "=" & Round(FSO.getdrive(Drv.DriveLetter).totalsize / (2 ^ 30), 1)
        End If
    Next

    Set FSO = Nothing
    Set Drv = Nothing
End Sub

On pourra également ajouter un test sur le nom du volume if Drv.VolumeName="Ma clé" then ... pour être encore plus sélectif.

Reste ensuite à ajouter le code qui va bien pour intervenir sur le bon support dont on connait maintenant la bonne lettre Drv.DriveLetter.

Ceci étant, plutôt d'accord avec Bruno : prudence s'il s'agit de formater!

Pierre

Je vais analyser cela, en tout cas merci à beaucoup à vous deux.

Je vais essayer de faire automatiquement des graphiques avec les données mais si vous pouvez me donnez des ressources pour réussir à le faire je veux bien aussi ? Ce serait pour tracer automatiquement un graphique dans une deuxième feuille de calcul avec les données ?

Je peux laisser le sujet encore un peu ?

Merci beaucoup à vous deux la carte SD c'est du bonus.

Voici du code pour importer ton csv (alternative à celui de Bruno) et en plus faire 2 graphiques

Je pensais : pour vider ta Sd-Card, il me semble qu'en choisissant le fichier à importer, en gardant son nom en mémoire, on peut à la fin du traitement proposer la suppression de ce fichier. C'est optionnel, on peut répondre non à la demande de suppression.

Pierre

124classeur1.xlsm (31.84 Ko)

Je te remercie, j'ai hâte d'essayer demain

Je te tiens au courant et l'idée et super super super SUPER génial et carrément moins dangereux que formaté !

Tu es un génie Pierre !!! (Je vous ai TOUS mis un coeur à vos contributions, jamais vu un site aussi génial accompagné de membre expert)

Needtoknow (Je m'appel Pierre aussi mais je n'ai pas ton géni )

PS: Je suis allé sur ton blog aussi, et je le trouve super cool . Tu proposes de super fichiers.

Encore merci à tous de votre aide

Bonjour Tout le monde la solution de pierrep56 est juste parfaite.

Mais j'aurais aimé savoir si vous auriez pu m'aidez à l'adapter sur ce fichier CSV ci joint MESURE43

Je reçois une erreur.

Mais je n'arrive pas à débugger.

Mes salutations

84mesure53.csv (772.00 Octets)

Cet autre csv n'est pas structuré de la même façon, il suffit donc d'adapter la lecture pour ces colonnes.

Pierre

103classeur2.xlsm (49.69 Ko)

C'est super cool,

Vraiment encore merci, je sais que je me répète mais des gens comme toi qui peuvent apporter une telle aide avec tes connaissances vraiment merci !!!!

Est-ce que si je dois rajouté une colone je pourrais te demander ? (C'est la température)

Sinon vraiment extra !!!!!!!!!!

Pas de soucis, balance ton fichier avec la température

Pierre

Hé bien :

Voici le fichier joint,

Il y a une dernière colonne Température

Enfin je voulais te demander pour que la date et l'heure s'affiche en diagonale, il faut plus de mesure ? Car ce n'est pas systématique. Mais c'est super ça à la rigueur, je m'en fiche.

C'est tellement bien déjà !

Je ne le dirais jamais assez mais sincère merci

16mesure54.csv (773.00 Octets)

Pour l'échelle d'heures en diagonale, c'est Excel qui gère tout seul en automatique. En diminuant la largeur des graphiques (ici à 550) ça se met en diagonale.

(paramètre Sh.Width = 550 dans la procédure 'Courbes')

Après il faut voir si c'est lisible avec beaucoup de valeurs. Mais on pourrait aussi fixer cette largeur en fonction du nb de mesures, donc en fonction de UBound(T, 1)

Pierre

28lire-mesure54.xlsm (54.61 Ko)
Rechercher des sujets similaires à "macro importer fichier csv formatage carte"