OVH Cloud OVH Cloud

[WD 7.5] OLE Excel

5 réponses
Avatar
Bill
Bonjour tout le monde,

Petite question sur le pilotage d'Excel, car je ne m'en sors pas :

xl>>ActiveWorkBook>>Sheets>>Add() me créé bien une nouvelle feuille dans mon
classeur excel, mais ce que je voudrai c'est qu'elle soit créée après la
dernière feuille de ce classeur.

Je lis sur http://msdn.microsoft.com que Add() accepte des paramètres, à
savoir Add(Before, After, Count, Type)
Problème : je n'arrive pas à valoriser ces paramètres sous Windev !!

Tout ce que j'ai essayé ne fonctionne pas :
xl>>ActiveWorkBook>>Sheets>>Add("",NomDeMaDernièreFeuille)
xl>>ActiveWorkBook>>Sheets>>Add(0,NuméroDeMaDernièreFeuille)
xl>>ActiveWorkBook>>Sheets>>Add(After wNom)
xl>>ActiveWorkBook>>Sheets>>Add(After=wNom)
etc etc...

Si quelqu'un pouvait éclairer ma lanterne, ça me rendrait bien service !

5 réponses

Avatar
Fred
Salut,

A priori, et si mes souvenir sont bon, il suffit de tester le code sous VBA
excel et de faire un debug.print de la constante after pour en connaitre la
valeur numérique, il suffit ensuite de passer cette valeur numérique sous
windev et hop ça devrait marcher.

Fred


"Bill" a écrit dans le message de news:
bf354v$4gt$
Bonjour tout le monde,

Petite question sur le pilotage d'Excel, car je ne m'en sors pas :

xl>>ActiveWorkBook>>Sheets>>Add() me créé bien une nouvelle feuille dans


mon
classeur excel, mais ce que je voudrai c'est qu'elle soit créée après la
dernière feuille de ce classeur.

Je lis sur http://msdn.microsoft.com que Add() accepte des paramètres, à
savoir Add(Before, After, Count, Type)
Problème : je n'arrive pas à valoriser ces paramètres sous Windev !!

Tout ce que j'ai essayé ne fonctionne pas :
xl>>ActiveWorkBook>>Sheets>>Add("",NomDeMaDernièreFeuille)
xl>>ActiveWorkBook>>Sheets>>Add(0,NuméroDeMaDernièreFeuille)
xl>>ActiveWorkBook>>Sheets>>Add(After wNom)
xl>>ActiveWorkBook>>Sheets>>Add(After=wNom)
etc etc...

Si quelqu'un pouvait éclairer ma lanterne, ça me rendrait bien service !




Avatar
please-no-spam-jm.velo
"Bill" wrote in message news:<bf354v$4gt$...
Bonjour tout le monde,

Petite question sur le pilotage d'Excel, car je ne m'en sors pas :

xl>>ActiveWorkBook>>Sheets>>Add() me créé bien une nouvelle feuille dans mon
classeur excel, mais ce que je voudrai c'est qu'elle soit créée après la
dernière feuille de ce classeur.

Je lis sur http://msdn.microsoft.com que Add() accepte des paramètres, à
savoir Add(Before, After, Count, Type)
Problème : je n'arrive pas à valoriser ces paramètres sous Windev !!

Tout ce que j'ai essayé ne fonctionne pas :
xl>>ActiveWorkBook>>Sheets>>Add("",NomDeMaDernièreFeuille)
xl>>ActiveWorkBook>>Sheets>>Add(0,NuméroDeMaDernièreFeuille)



Bonjour,

Les deux premières syntaxes sont presque bonne, mais tu dois remplacer
"" ou 0 par * ou OLEIgnore.

Donc :
xl>>ActiveWorkBook>>Sheets>>Add(*,NomDeMaDernièreFeuille)
xl>>ActiveWorkBook>>Sheets>>Add(*,NuméroDeMaDernièreFeuille)
ou
xl>>ActiveWorkBook>>Sheets>>Add(OLEIgnore,NomDeMaDernièreFeuille)
xl>>ActiveWorkBook>>Sheets>>Add(OLEIgnore,NuméroDeMaDernièreFeuille)

devraient marcher mieux...
Avatar
Bill
RS a écrit :
xl>>Sheets>>Add(OleIgnore,xl>>Sheets(xl>>Sheets>>Count()))



Merci beaucoup, ça fonctionne parfaitement bien !

Merci aussi à tous ceux qui se sont penchés sur mon problème.
Avatar
Bill
Re

J'ai encore une petite question :

J'ai une variable de type chaîne qui contient diverses informations, par
exemple "AAA+tab+50+tab+BBB"
Je dois écrire ça dans une feuille excel (en passant par l'OLE). Chaque
information devant être dans une colonne différente (le séparateur est TAB).
Je peux le faire cellule par cellule, ça c'est bon, mais je me demandais
s'il n'y aurait pas une instruction + simple que j'aurais manquée, et qui
permettrait en une seule opération d'écrire toute ma ligne, en gérant le tab
comme séparateur de colonne ?

J'espère que je me fais bien comprendre. Si quelqu'un a une idée, c'est pas
bloquant mais j'aimerais savoir...
Avatar
Manu
un exemple est dans la LST52 je crois ou on a 2 possibilités d'échange avec
Excel, cellule par cellule ou par paquet.

Pour les paquet, on simule un copier coller...
"Bill" a écrit dans le message news:
bf6cf6$c0$
Re

J'ai encore une petite question :

J'ai une variable de type chaîne qui contient diverses informations, par
exemple "AAA+tab+50+tab+BBB"
Je dois écrire ça dans une feuille excel (en passant par l'OLE). Chaque
information devant être dans une colonne différente (le séparateur est


TAB).
Je peux le faire cellule par cellule, ça c'est bon, mais je me demandais
s'il n'y aurait pas une instruction + simple que j'aurais manquée, et qui
permettrait en une seule opération d'écrire toute ma ligne, en gérant le


tab
comme séparateur de colonne ?

J'espère que je me fais bien comprendre. Si quelqu'un a une idée, c'est


pas
bloquant mais j'aimerais savoir...