From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Ouverture et écriture dans une feuille excel avec labview

Bonjour, (vu la question posée inutile de préciser que je suis un véritable débutant sous Labview).

Je sais qu'il y a plein de topics où ce sujet est abordé, le seul problème c'est que je trouve l'approche assez compliquée.

 

Je voulais savoir si cela était possible avec une approche plus basique '' ouvrir un fichier, écrire dans un tableur (avec le nom du fichier grâce à un "compsoer chemin") et ensuite un fermer fichier".

 

Bien évidemment j'ai essayé de le faire, mais je pense que je ne note pas de la bonne manière le chemin du fichier que je veux créer car à chaque fois j'ai une erreur lorsque je lance le programme (error 7 ou error 8).

 

Je vous remercie d'avance de votre patience 🙂

0 Compliments
Message 1 sur 28
4 814 Visites

Montre nous ce que tu as fait, ce sera déjà une bonne "base".

Peu importe que tu sois débutant ou pas. (C'est quoi un débutant ?)  Personnellement, LabVIEW est tellement vaste, que je suis un perpétuel débutant (j'oublie 20% des choses au fur et à mesure que je les apprends ... c'est bien trop vaste, il faudrait être une encyclopédie vivante pour tout retenir ... et surtout, il faudrait coder régulièrement en utilisant tout ... impossible)

Message 2 sur 28
4 795 Visites

Hello Lablasc,

 

Une petite question supplémentaire en attendant de voir ce que tu as fait : souhaites tu avoir un fichier Excel pur (.xls, .xlsx) ou bien un fichier tableur, quelque que soit son format ?

CLAMaxime -- Kudos are a great way to say thank you
Message 3 sur 28
4 785 Visites

Cette communauté est vraiment géniale, c'est fou de voir autant de bienveillance et d'entraide. J'espère qu'un jour le monde ressemblera à la communauté NI ! ...

Bref, revenons-en à nos moutons.

 

Voilà ce que j'ai fait: la partie mesure fonctionne bien mais c'est la partie excel qui n'est pas top !

Je vous explique un peu ce que j'ai voulu faire: la boucle for construit un tableau de mesure toutes les secondes (j'ai pu me rendre compte que le timing n'était pas des plus précis), et lorsque l'on termine la boucle, je voudrai ouvrir une page excel, mettre toutes les données mesurées dans un tableau afin de les "sauvegarder". Ce qui serait top ce serait de faire un tableau 2D afin d'avoir les mesures en fonction du temps mais ça je vais essayer de le faire dans un premier temps tout seul :).

 

Merci de votre aide, vous êtes au top !

Ce sera triple ration de kudos du coup ! Smiley très heureux

0 Compliments
Message 4 sur 28
4 779 Visites

Hello Maxime !

 

Le but serait d'ouvrir une page excel. Celui que j'ai sur mon poste est un excel 2016 et j'ai pu voir que le format correspondant était du xlsx.

 

 

0 Compliments
Message 5 sur 28
4 778 Visites

Cette fois-ci le message d'erreur est : error 1

Apparement, ce serait dû à un paramètre invalide. 

Mais je ne comprends pas car c'est bien le chemin où je veux enregistrer mon fichier.

 

Rémi 1 - 7 LabVIEW 😄

 

0 Compliments
Message 6 sur 28
4 770 Visites

Écrire dans un fichier tableur est simple (fonction native), ,ouvrir et jouer avec Excel est un peu plus compliqué. Cela peut vite ressembler à ça : https://forums.ni.com/t5/LabVIEW/labview-excel-with-activex/m-p/3770599#M1062470. Maintenant si tu as vraiment besoin d'ouvrir Excel, ça se fait 🙂

 

Par rapport à ton code :

  1. Pourquoi ne pas utiliser directement l'indexation en sortie des boucles For plutôt que de remplir un tableau ? https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000PAghSAG
  2. Plutôt que d'utiliser des Composer Un Chemin en cascade, tu peux directement écrire un chemin du type This PC:\Desktop\stage remi\test.xlsx et construire ton chemin en une fois. Ou carrément mettre une constante chemin. Ceci dit on préfère utiliser une méthode comme celle-ci http://zone.ni.com/reference/en-XX/help/371361H-01/lvhowto/creating_relative_paths/. Ceci permet de référencer le chemin du fichier par rapport au chemin du VI et donc de ne pas perdre ses petits quand on change de PC.
  3. Tu n'as pas besoin d'ouvrir et fermer un fichier tableur. C'est le VI de lecture ou écriture qui s'en charge pour toi. Pour d'autres fichiers c'est en général utile et obligatoire.
  4. Normal que la fonction d'attente ne soit pas des plus précises, c'est juste comme ça que fonctionne Windows (histoire de priorités et de planification des tâches) 🙂 Tu n'es pas sur un OS temps-réel, ce serait un peu utopiste d'espérer avoir un délai constant entre deux mesures (à quelque pouillèmes près). Il y a des démos intéressantes là dessus, mais je ne le retrouve pas...

 

N'hésite pas si tu as des questions !

CLAMaxime -- Kudos are a great way to say thank you
Message 7 sur 28
4 759 Visites

Justement c'était le code qui me faisait peur ! C'est pourquoi je voulais avoir quelque chose de plus "simple" où j'arrive à comprendre facilement les étapes.

A la base, le tableau servait juste à montrer à l'utilisateur les valeurs collectées. C'était une étape transitoire on va dire, car avec un enregistrement des données sous Excel, l'affichage des valeurs dans un tableau n'a plus vraiment d'intérêt.

Quand à l'auto indexation, je ne suis pas sur de tout avoir compris. L'auto indexation peut, selon l'explication de NI annuler la nécessité d'un terminal de comptage... Sur mon code c'est le regirstre à décalage qui me permet de faire ça, donc avec de l'auto indexation, plus besoin de registre à décalage ?

Pour le chemin je vais essayer de rectifier tout ça et merci pour l'explication du timing de la boucle for 😉

 

0 Compliments
Message 8 sur 28
4 750 Visites

Pour te rassurer de suite, je suis sûr qu'il doit exister sur ce forum des VI qui permettent d'interfacer Excel rapidement. Faut juste qu'on trouve 🙂

 

Pour l'auto-indexation, deux cas se présentent pour ta boucle For :

  1. Tu as un tableau en entrée de ta boucle. Dans ce cas, la boucle va lire chaque "ligne" de ton tableau, une par itération. La boucle s'arrêtera après avoir fini de lire ton tableau. Dans ce cas tu n'as pas besoin de câbler le terminal de décompte (le N en haut à gauche) Ex : si tu as un tableau contenant [0 ; 2 ; 5 ; 12] et que tu l'auto-indexe en entrée, tu récupèreras la valeur 0 à la première itération, 2 à la deuxième, 5 à la troisième, etc. C'est utile dans le cas où tu veux traiter chaque valeur dans une boucle. NB : si tu as plusieurs tableaux en entrée, c'est le plus petit qui détermine le nombre d'itérations.
  2. Tu veux créer un tableau en sortie. Dans ce cas, tu envoies ton flux vers l'extérieur et la boucle va stocker chaque élément itération après itération pour créer un tableau.

 

Je te fais un petit VI de démo et je reviens vers toi 🙂

CLAMaxime -- Kudos are a great way to say thank you
Message 9 sur 28
4 742 Visites

Et voilà 😉

CLAMaxime -- Kudos are a great way to say thank you
Message 10 sur 28
4 733 Visites