| |
Membre enregistré 17 messages |
|
Posté le 06 novembre 2015 - 09:23 |
Bonjour à tous,
Avec les commandes OLE vers Excel, depuis mon programme j'arrive facilement : - à définir la valeur d'une cellule : Excel>>Range("A1")>>Value = "Test 1" - à définir une même valeur pour un ensemble de cellules : Excel>>Range("A1:A10")>>Value = "Test 1"
(Excel est est un objet Automation dynamique)
Mais, je ne trouve pas comment définir en un seul coup différentes valeurs pour un ensemble de cellules. Par exemple je possède un tableau avec Tab[1] = "Test 1" Tab[2] = "test 2" je voudrai définir un ensemble de cellules avec une fonction du type : Excel>>Range("A1:A2")>>Value = Tab ou Excel>>Range("A1:A2")>>Value = ensemble des valeurs formatées
Existe-t'il une solution qui me permettrait de transférer un ensemble de valeurs vers une plage de cellules ? Ceci afin de diminuer le temps de traitement actuel qui se fait cellule par cellule.
Merci de votre aide.
Frank SACCO |
| |
| |
| | | |
|
| | |
| |
Posté le 06 novembre 2015 - 14:27 |
Personnellement je passe souvent par une séquence de ce type : - Ecriture dans un fichier Texte - Ouverture de ce fichier Texte via Excel. - Copier/coller ou Copier CollageSpécial de ce fichier vers mon fichier destination. - Fermeture du fichier Texte.
J'imagine que je pourrais copier/coller directement via la fonction VersPressePapier(), sans passer par le fichier Texte |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 17 messages |
|
Posté le 06 novembre 2015 - 15:10 |
Bonjour,
Merci pour cette réponse, mais je ne peux pas procéder de cette façon, je place des données dans un document Excel déjà formaté, qui contient des formules, des macros ... Je dois juste mettre à jour une zone particulière.
En tous cas, merci pour l'idée.
Frank |
| |
| |
| | | |
|
| | |
| |
Posté le 06 novembre 2015 - 15:24 |
Bonjour Frank.
Moi j'utiliserais une boucle.
POUR i = 1 A 2 Excel>>Range("A"+i)>>Value = "Test "+i FIN
Bonne journée
Michel |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 17 messages |
|
Posté le 06 novembre 2015 - 16:07 |
Bonjour Michel,
Oui, en gros, c'est ce que je fais actuellement, mais avec certains documents c'est très long. C'est pour cette raison que je cherche un moyen d'envoyer en une seule opération tout le contenu d'une zone, ce qui devrait être normalement plus rapide.
Bonne fin de journée.
Frank |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 962 messages |
|
Posté le 07 novembre 2015 - 01:18 |
hello, on peut passer par un tableau de variants à deux dimensions. Voici un exemple qui remplit la plage A1 à B5 (soit 10 cellules) dans une feuille excel en une seule fois :
objXLApp est un objet automation dynamique MaFeuille est un objet automation dynamique MaPlage est un objet automation dynamique MonTableauAutomation est un tableau de 5 par 2 Variant
SI ObjetActif("Excel.Application") <> Null ALORS
objXLApp = ObjetActif("Excel.Application") SINON
objXLApp = allouer un objet automation "Excel.Application" FIN SI objXLApp = Null ALORS Erreur("Impossible de lancer Excel.") RETOUR FIN objXLApp>>Visible = True objXLApp>>workbooks>>Open("F:\temp\monclasseur.xlsx") MaFeuille = objXLApp>>Worksheets("Feuil1") POUR i = 1 A 5 MonTableauAutomation[i,1]="Donnée_A_" + i MonTableauAutomation[i,2]="Donnée_B_" + i FIN MaPlage = MaFeuille>>Range("A1:B5") MaPlage>>Value = MonTableauAutomation
-- Ami calmant, J.P |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 17 messages |
|
Posté le 07 novembre 2015 - 11:21 |
Bonjour,
Merci pour cette solution, je teste au plus vite. Bon weekend.
Frank |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 17 messages |
|
Posté le 09 novembre 2015 - 11:10 |
Bonjour,
Cette solution fonctionne bien, merci et bravo.
J'avais testé la même fonctionnalité, mais, mon tableau était à une seule dimension pour remplir une seule colonne : Tab[1] = "Ligne1" Tab[2] = "Ligne 2"
Ce code ne fonctionne pas, il faut faire : Tab[1][1] = "Ligne1" Tab[2][1] = "Ligne2"
Merci, j'ai trouvé la solution grâce à votre exemple. Bonne journée.
Frank |
| |
| |
| | | |
|
| | |
| |
Posté le 15 avril 2019 - 11:14 |
Monsieur, je cherche comment tracer un graphe en Excel à partir un tableau WinDev |
| |
| |
| | | |
|
| | |