Discussions au sujet de NI LabVIEW

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

Excel zone d'impression

Bonjour

 

J'ai un petit souci avec le dialogue entre labview et Excel

Lorsque que dans une page excel je défini une zone d'impression plus petite que mes données quand je l'ouvre avec labview , le fichier Excel me fait une erreur et affiche une fenêtre me disant que la zone d'impression à été modifié. Pour continuer je dois rentré un nom pour pouvoir ouvrir ce fichier et la zone d'impression prendre en compte toutes les données .

Est ce quelqu'un a déjà rencontré ce problème 

Merci d'avance pour votre aide

 

Ps:Je joindrai au plus vite des capture d'écran 

0 Compliments
Message 1 sur 11
5 030 Visites

bonjour j'ai déjà eu le problème.

Tu as une version Française d'Excel?

Si oui, selon moi, le problème provient de ta version Excel en Français, par rapport au pilotage ActiveX sur la zone d'impression qui est en Anglais. Pour moi c'est un bug d'Excel, car il ne gére pas la formule "définir une zone d'impression" sur un Excel "localisé". 

Je m'explique tu as un Excel Français, et tu as une zone d'impression, qui est définit via la formule "ZoneImpression" (je crois, je ne suis pas sûr du nom). En Anglais, la fonction est "PrintArea". Lorsque tu définis une zone d'impression, l'onglet du classeur Excel a une fonction "ZoneImpression". Lorsque tu l'ouvres via le pilotage ActiveX (si tu utilises le report generation toolkit de LabVIEW), la formule devient "PrintArea". Elle n'est plus utilisable dans le classeur Excel ouvert par Excel.

J'ai déjà tenté plusieurs tests pour contourner le problème. Mais cela n'est pas évident. Si je pars du principe que le serveur ActiveX d'Excel va définir la fonction "Zone d'Impression" en "PrintArea" aussi bien dans un Excel Français qu'Anglais, cela veut dire que tu ne peux pas contourner le problème sous LabVIEW.

Quelques pistes, il faut

  1. soit supprimer les zones d'impressions,
  2. soit les refaire programmatiquement via une macro VBA. Il n'y a pas le problème sous VBA, car il ne passe pas par ActiveX.
  3. soit travailler dans un autre classeur "B" avec LabVIEW (sans zone d'impression), puis utiliser une macro VBA pour importer depuis ton classeur "A" (le final avec la présentation) le classeur B dans A.

A suivre...

A+ Luc

 

 

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

0 Compliments
Message 2 sur 11
5 026 Visites

Quel est le numéro de l'erreur?

 

Ben64

0 Compliments
Message 3 sur 11
5 001 Visites

Bonjour Luc ,

Merci pour tat réponse.

 

Oui j'ai une version française . Mais je ne passe pas par les ActiveX ,j'utilise "Microsoft office report module"

 

j'ai juste défini une zone d'impression plus petite que les données affichées sur la feuille (ci-joint).

 

de plus pour information pour Ben64 , je n'ai pas de code d'erreur dans LABView . j'ai juste une erreur à l'ouverture d'Excel , une fenêtre s'ouvre ( voir PJ 2)

merci pour tes conseils, j'ai essayé en déplaçant les données sur une autre feuille. ca fonctionne , plus de fenêtre mais pour des raisons d'affichage j'ai vraiment besoin d'avoir une zone d'impression plus petite.

 

Est ce qu'il est possible de n'avoir pas une zone d'impression avec le redimensionnement automatique?

le problème aussi est que j'ouvre plusieurs fois le fichier Excel , je ne vois pas comment avec la macro VBA  on peux résoudre  ce problème car la prochaine ouverture j'aurai a nouveau la fenêtre de "Print aera" .

 

si tu as d'autre idées , elles sont les bien venues

et merci encore pour ton aide

 

Jérôme

 

  

Tout télécharger
0 Compliments
Message 4 sur 11
4 981 Visites

Salut Jerome,

peut-être qu'en supprimant la zone d'impression à la fermeture du fichier Excel et en la recréant à l'ouverture, tu pourrais éviter le soucis (c'est juste une piste).
Créer donc dans le fichier Excel deux Macro VBA, une qui s'exécute à l'ouverture (création de la zone d'impression), une qui s'exécute à la fermeture (suppression de la zone d'impression), de cette manière, au moment de l'ouverture du fichier par LV, aucune zone d'impression ne sera définie, la définition sera décalée.
Mais bon, pas sûr que ça marche, c'est juste une idée.


Sub crée_zone()
    Range("A2:I13").Select
    ActiveSheet.PageSetup.PrintArea = "$A$2:$I$13"  (Zone à définir)
End Sub
Sub supprime_zone()
    ActiveSheet.PageSetup.PrintArea = ""
End Sub

0 Compliments
Message 5 sur 11
4 974 Visites

salut à tous,

Tu utilises "Microsoft office report module'". Tu parles du module de National Instruments ? (Report Generation Toolkit for MS Office).

 

Si oui, le toolkit pilote Excel via ActiveX. Tu peux regarder le code.

Et j'ai le sentiment en regardant ton image, que c'est bien le problème de localisation Français VS Anglais de la fonction Zone_Impression vers Print_Area.

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

0 Compliments
Message 6 sur 11
4 961 Visites

J'ai une version anglaise de LV et une version française d'Excel ou j'ai défini une zone d'impression. Lorsque LabVIEW ouvre Excel je constate que "Zone_d_impression" a été changé pour "Print_Area". Si j'utilise le nom Zone_d_impression pour imprimer le classeur Excel me retourne une erreur mais si j'utilise le nom Print_Area seulement la zone d'impression définie est imprimée et il n'y a pas d'erreur. As-tu essayé d'utiliser le nom Print_Area dans ton code?

 

Ben64

0 Compliments
Message 7 sur 11
4 951 Visites

normalement si tu ouvres le classeur directement depuis Excel Français, il voudra la formule "Zone_Impression".

Alors que si tu l'ouvres depuis LabVIEW via l'ActiveX,il voudra la formule Anglaise "Print_Area".

 

La formule Print_Area ouvert directement depuis Excel Français ne devrait pas fonctionner.

 

A valider....

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

0 Compliments
Message 8 sur 11
4 949 Visites

les solutions que j'ai trouvé est :

  1. de déplacer tous les éléments que je ne veux pas qu'ils soient imprimé dans une autre feuille sans zone d'impression
  2. de ne pas faire de zone d'impression sous Excel   mais de la faire dans LABView sans sauvegarder avec le VI suivant

mais les deux solutions ne sont que la moitié de la reponse

j'aurai aimer avoir une solutions qui ne soit pas une bidouille !!!

 

si quelqu'un a une autre solution je suis prenneur

0 Compliments
Message 9 sur 11
4 929 Visites

J’ai une autre idée. Le problème vient de l’ouverture d’excel par l’activex. Il ne faut donc pas. Mais Il est possible d’écrire directement dans un fichier Excel, sans utiliser le report generation toolkit. Si tu regardes le vi express pour écrire dans Excel, il y a le code pour écrire directement dans un classeur sans passer par l’ActiveX. Sinon il y a des toolkits sur le VIPM. Dans ton cas c’est le plus simple. Sinon tu écris dans un fichier alternatif et tu fais un code VBA pour importer le fichier dans Excel. Sinon tu utilises le report pour écrire dans un fichier B, et dans le fichier À tu fais des liens externes, cela permet de ne pas le corrompre. À suivre...

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

0 Compliments
Message 10 sur 11
4 927 Visites