PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → TableVersExcel
TableVersExcel
Iniciado por Jean-Michel, out., 24 2020 7:14 PM - 10 respostas
Membro registado
834 mensagems
Popularité : +13 (13 votes)
Publicado em outubro, 24 2020 - 7:14 PM
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
Membro registado
3.845 mensagems
Popularité : +227 (347 votes)
Publicado em outubro, 24 2020 - 7:46 PM
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
Membro registado
3.845 mensagems
Popularité : +227 (347 votes)
Publicado em outubro, 24 2020 - 7:49 PM
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
Membro registado
834 mensagems
Popularité : +13 (13 votes)
Publicado em outubro, 25 2020 - 5:51 AM
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
Membro registado
44 mensagems
Popularité : +3 (5 votes)
Publicado em outubro, 25 2020 - 11:35 AM
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 !
Membro registado
834 mensagems
Popularité : +13 (13 votes)
Publicado em outubro, 25 2020 - 12:06 PM
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
Membro registado
165 mensagems
Popularité : +12 (12 votes)
Publicado em outubro, 25 2020 - 5:04 PM
Bonjour;

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

xlsAjouteFeuille(MonDocumentXLS, "B",1)

Bon Dev.
Membro registado
3.845 mensagems
Popularité : +227 (347 votes)
Publicado em outubro, 25 2020 - 6:49 PM
Sauf correction récente, TableVersExcel ne fonctionne pas avec un XLSX..

--
Il y a peut être plus simple, mais, ça tourne
Membro registado
44 mensagems
Popularité : +3 (5 votes)
Publicado em outubro, 25 2020 - 8:58 PM
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 !
Membro registado
165 mensagems
Popularité : +12 (12 votes)
Publicado em outubro, 25 2020 - 9:31 PM
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
Membro registado
834 mensagems
Popularité : +13 (13 votes)
Publicado em outubro, 27 2020 - 2:24 PM
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