PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2024 → TableVersExcel
TableVersExcel
Iniciado por Jean-Michel, 24,oct. 2020 19:14 - 10 respuestas
Miembro registrado
834 mensajes
Popularité : +13 (13 votes)
Publicado el 24,octubre 2020 - 19:14
Bonjour,

le TableVersExcel, tout le monde connait.
Ma table est ecrite par default dans la premiere feuille.

Comment, dans le meme fichier, ecrire une table dans la 2eme feuille ?

Pour instant, j'ouvre le fichier cree et je recopie les lignes de la 2eme table dans la feuille No 2.
Pas genial.

Merci,

--
Synchronize Systems International LTD
Développement d'outils de gestion

Environnements AS400 – Windows
Langages GAP III – CL – Visual Basic - Visual Adélia - Adélia - Windev

Bangkok / Pattaya
Miembro registrado
3.845 mensajes
Popularité : +227 (347 votes)
Publicado el 24,octubre 2020 - 19:46
Bonjour,
As tu tenté l'option taFusion ?
1-1° export (dest: MonCLasseur.xls)
2-Insertion d'une feuille dans MonClasseur.Xls
3-2°Export dans MonClasseur avec taFusion

--
Il y a peut être plus simple, mais, ça tourne
Miembro registrado
3.845 mensajes
Popularité : +227 (347 votes)
Publicado el 24,octubre 2020 - 19:49
Il y a quand même une manip à faire, mais on gagne une copie de données.

--
Il y a peut être plus simple, mais, ça tourne
Miembro registrado
834 mensajes
Popularité : +13 (13 votes)
Publicado el 25,octubre 2020 - 05:51
Salut Voroltinquo,

Bonne idée, mais ca ne fonctionne pas et c'est rageant !

1er cas de figure
--------------------
sFic = sRépertoire + "\" + sFic + ".xls"

// Je copie mon tableau A dans Excel
// ----------------------------------------
TableVersExcel(TABLE_Vte,sFic,taTitreColonnes)

// Creation de la 2eme feuille
// ---------------------------
MonDocumentXLS est un xlsDocument
MonDocumentXLS = xlsOuvre(sFic)
SI xlsNbFeuille(MonDocumentXLS) = 1 ALORS
xlsAjouteFeuille(MonDocumentXLS, "B")
FIN
xlsSauve(MonDocumentXLS)
xlsFerme(MonDocumentXLS)

// Je copie mon tableau B dans Excel
//-----------------------------------------
TableVersExcel(TABLE_Mode,sFic,taFusion)


Les 5 premières lignes doivent etre dans la feuille B
Normal qu'il soit dans le 1ere feuille A puisqu'on a pas la possibilité de lui indiquer la feuille de destination.




Maintenant, je rajoute l'onglet en précisant de le mettre en 1ere feuille et le tour sera joue.
Je modifie la ligne en question :
xlsAjouteFeuille(MonDocumentXLS, "B",1)


J'ai bien mes données deplacees en feuille A qui est en position 2




Mais il n'a rien copie en feuille B aui est en 1ere position !!!!





Et oui, rageant !!

Merci a toi !

--
Synchronize Systems International LTD
Développement d'outils de gestion

Environnements AS400 – Windows
Langages GAP III – CL – Visual Basic - Visual Adélia - Adélia - Windev

Bangkok / Pattaya
Miembro registrado
44 mensajes
Popularité : +3 (5 votes)
Publicado el 25,octubre 2020 - 11:35
Bonjour Jean_Michel,

La dernière feuille ajoutée devient la feuille en cours.

As tu essayé sans le xlsferme(MonDocumentXLS) après le xlssauve(MonDocumentXLS) ?

Bonne journée

--
Une tête ne sert pas seulement à porter un chapeau !
Miembro registrado
834 mensajes
Popularité : +13 (13 votes)
Publicado el 25,octubre 2020 - 12:06
Salut Nikos,
Non, j'ai essaye mais il plante.

A fatal error occurred on the element of 'xlsDocument' type and prevents from using it.
This error occurred at line 19 of the 'Procédure locale ExportExcel' process.
Unable to open C:\Users\Owner\Desktop\Synthesis by reference2020-10-25.xls file.

Call stack:
Procédure locale ExportExcel (FEN_stat_Reference.PROCEDURE.ExportExcel), line 20
Clic sur BTN_Excel (FEN_stat_Reference.BTN_Excel), line 1
Clic sur BTN_voir_conso_article2 (FEN_stat.BTN_voir_conso_article2), line 1
Clic sur BTN_balance (FEN_main.BTN_balance), line 14
Sortie de SAI_pw (FEN_deb.SAI_pw), line 97

Effectivement puisque je ne ferme pas, il ne peut plus l'ouvrir.

Je vais faire une requête a PCSoft...............
Merci Nokos......

--
Synchronize Systems International LTD
Développement d'outils de gestion

Environnements AS400 – Windows
Langages GAP III – CL – Visual Basic - Visual Adélia - Adélia - Windev

Bangkok / Pattaya
Miembro registrado
165 mensajes
Popularité : +12 (12 votes)
Publicado el 25,octubre 2020 - 17:04
Bonjour;

En utilisant l'extension de fichier "XLSX" et en utilisant :

xlsAjouteFeuille(MonDocumentXLS, "B",1)

Bon Dev.
Miembro registrado
3.845 mensajes
Popularité : +227 (347 votes)
Publicado el 25,octubre 2020 - 18:49
Sauf correction récente, TableVersExcel ne fonctionne pas avec un XLSX..

--
Il y a peut être plus simple, mais, ça tourne
Miembro registrado
44 mensajes
Popularité : +3 (5 votes)
Publicado el 25,octubre 2020 - 20:58
Bonsoir Voroltinquo,


Je n'ai pas testé mais dans l'aide PCSoft pour la fonction TableVersExcel, il est indiqué que pour dépasser la limite de 65536 lignes, il est possible d'utiliser l'extension .xlsx

A tester donc !

Remarques
Conditions d'utilisation

La fonction TableVersExcel peut être utilisée indifféremment sur :
un champ fichier ou mémoire.
un champ monosélection ou multisélection.
Divers

Les fichiers Excel sont limités à 65536 lignes et 256 colonnes si l'extension utilisée est ".xls". Cette limite peut être dépassée en utilisant l'extension ".xlsx" afin de créer des fichiers au format Excel 2007. Attention : dans ce cas, les anciennes versions de Excel devront être équipée du "Pack de compatibilité Office 2007", téléchargeable gratuitement sur le site de Microsoft afin de pouvoir ouvrir les documents générés.


--
Une tête ne sert pas seulement à porter un chapeau !
Miembro registrado
165 mensajes
Popularité : +12 (12 votes)
Publicado el 25,octubre 2020 - 21:31
Re,

Office 2007;

Code utilisé pour le test se trouvant au message N° 4 :
sFic est une chaîne = "TEST.XLSX"

// Je copie mon tableau A dans Excel
// ----------------------------------------
TableVersExcel(TABLE_REQ_Filiere_Liste, sFic, taTitreColonnes)

// Creation de la 2eme feuille
// ---------------------------
MonDocumentXLS est un xlsDocument
MonDocumentXLS = xlsOuvre(sFic)
SI xlsNbFeuille(MonDocumentXLS) = 1 ALORS
xlsAjouteFeuille(MonDocumentXLS, "B", 1)
FIN
xlsSauve(MonDocumentXLS)
xlsFerme(MonDocumentXLS)

// Je copie mon tableau B dans Excel
//-----------------------------------------
TableVersExcel(TABLE_REQ_Corps_Par_Filiere_Liste, sFic, taFusion)


Résultat obtenu :
Feuille A :





Feuille B :





Bon Dev
Miembro registrado
834 mensajes
Popularité : +13 (13 votes)
Publicado el 27,octubre 2020 - 14:24
Evidement !!!!!!!!!!!

MERCI Fouedusa.
Mon erreur etait donc de mettre l'extention xls au lieu de xlsx !

Bravo et encore Merci !!
:thank you:

--
Synchronize Systems International LTD
Développement d'outils de gestion

Environnements AS400 – Windows
Langages GAP III – CL – Visual Basic - Visual Adélia - Adélia - Windev

Bangkok / Pattaya