PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → TableVersExcel
TableVersExcel
Started by Jean-Michel, Oct., 24 2020 7:14 PM - 10 replies
Registered member
834 messages
Popularité : +13 (13 votes)
Posted on October, 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
Registered member
3,845 messages
Popularité : +227 (347 votes)
Posted on October, 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
Registered member
3,845 messages
Popularité : +227 (347 votes)
Posted on October, 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
Registered member
834 messages
Popularité : +13 (13 votes)
Posted on October, 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
Registered member
44 messages
Popularité : +3 (5 votes)
Posted on October, 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 !
Registered member
834 messages
Popularité : +13 (13 votes)
Posted on October, 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
Registered member
165 messages
Popularité : +12 (12 votes)
Posted on October, 25 2020 - 5:04 PM
Bonjour;

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

xlsAjouteFeuille(MonDocumentXLS, "B",1)

Bon Dev.
Registered member
3,845 messages
Popularité : +227 (347 votes)
Posted on October, 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
Registered member
44 messages
Popularité : +3 (5 votes)
Posted on October, 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 !
Registered member
165 messages
Popularité : +12 (12 votes)
Posted on October, 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
Registered member
834 messages
Popularité : +13 (13 votes)
Posted on October, 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