importer données matricielles+DDE dans excel
Dernière réponse : dans Programmation
Bonsoir,
J'aimerais si cela était possible un petit coup de main. Au moins avoir quelques pistes de formules.
Je débute en VBA (excel, ça va encore....)
J'utilise un logiciel de bourse, Tradexpert.
Il est possible de façon conjointe (mais uniquement après ouverture de ce logiciel) d'importer les cours de bourse en temps réel dans excel en mettant la formule matricielle suivante sur une plage de cellules:
{=TDXDDE|FLUX!Info2?FR0003500008025}
J'ai alors dans excel différentes informations concernant cette valeur (FR0003500008) : dernier cours, heure de la dernière transaction...
Je sais qu'il est possible de n'importer que certains éléments de la matrice : {=INDEX(TDXDDE|FLUX!Info2?FR0003500008025025;2)}
Mon souhait : archiver l'un derrière l'autre le dernier cours et l'heure d'affichage au fur et a mesure de leur changement(toutes les 30 secondes)
ex : time cours
09:30:00 4600
09:30:30 4601
09:31:00 4610
est-ce possible ? Merci de m'indiquer quelques pistes de recherches.
Merci pour votre comprehension.
jc
J'aimerais si cela était possible un petit coup de main. Au moins avoir quelques pistes de formules.
Je débute en VBA (excel, ça va encore....)
J'utilise un logiciel de bourse, Tradexpert.
Il est possible de façon conjointe (mais uniquement après ouverture de ce logiciel) d'importer les cours de bourse en temps réel dans excel en mettant la formule matricielle suivante sur une plage de cellules:
{=TDXDDE|FLUX!Info2?FR0003500008025}
J'ai alors dans excel différentes informations concernant cette valeur (FR0003500008) : dernier cours, heure de la dernière transaction...
Je sais qu'il est possible de n'importer que certains éléments de la matrice : {=INDEX(TDXDDE|FLUX!Info2?FR0003500008025025;2)}
Mon souhait : archiver l'un derrière l'autre le dernier cours et l'heure d'affichage au fur et a mesure de leur changement(toutes les 30 secondes)
ex : time cours
09:30:00 4600
09:30:30 4601
09:31:00 4610
est-ce possible ? Merci de m'indiquer quelques pistes de recherches.
Merci pour votre comprehension.
jc
Autres pages sur : importer donnees matricielles dde excel
Lassé par la pub ? Créez un compte
Bonsoir,
Je ne suis pas allé chercher du coté de "Application.Ontime" puisque les cours apparaissent en permanence à intervalle régulier de 30 secondes et que l'heure s'affiche grace à la liaison DDE
Dans feuil1 j'importe les liaisons DDE.
Dans feuil2 j'importe "horaire" et "cours" depuis la feuil1 et je mets d'office les horaires rencontrés dans la journée (toujours les mêmes)
Le code détecte tous les changements de valeur de "horaire", copie le cours, retrouve la valeur correspondante de l'heure et colle dans la cellule a coté le cours. Simple.
Bon, il reste beaucoup de chose à paufiner.
En particulier j'aimerais que ce code fonctionne en sous main et que je puisse tripoter d'autre feuilles excel pendant ce temps...
et qu'il ne se déclenche que lorsque certaines valeur de cellule change...
Et que je vire l'activation de la cellule dans laquelle est copié "le cours" car la souris est alors occupée.... Allez, j'y retourne
Merci
jc
Je ne suis pas allé chercher du coté de "Application.Ontime" puisque les cours apparaissent en permanence à intervalle régulier de 30 secondes et que l'heure s'affiche grace à la liaison DDE
Dans feuil1 j'importe les liaisons DDE.
Dans feuil2 j'importe "horaire" et "cours" depuis la feuil1 et je mets d'office les horaires rencontrés dans la journée (toujours les mêmes)
Le code détecte tous les changements de valeur de "horaire", copie le cours, retrouve la valeur correspondante de l'heure et colle dans la cellule a coté le cours. Simple.
Private Sub Worksheet_Calculate() cherche_valeur End Sub Sub cherche_valeur() Dim horaire As Range Dim cours As Range Set horaire = Cells(1, 2) Set cours = Cells(2, 2) For Each c In [D1:D1082] If c Like horaire Then c.Select ActiveCell.Offset(0, 1).Select ActiveCell.Formula = cours Exit Sub End If Next MsgBox "Pas de " & horaire & " dans la plage testée!" End Sub
Bon, il reste beaucoup de chose à paufiner.
En particulier j'aimerais que ce code fonctionne en sous main et que je puisse tripoter d'autre feuilles excel pendant ce temps...
et qu'il ne se déclenche que lorsque certaines valeur de cellule change...
Et que je vire l'activation de la cellule dans laquelle est copié "le cours" car la souris est alors occupée.... Allez, j'y retourne
Merci
jc
Alors OnTime, c'est pour créer un timer, pour que ta feuille ne *travaille* que de temps en temps. Si ça ne t'intéresse pas... tant pis. Je n'ai pas compris comment tu fais pour actionner ton code ?
Au lieu de faire :
Je te propose de faire directement
Comme ça, Excel ne te prend pas la main
Au lieu de faire :
c.Select ActiveCell.Offset(0, 1).Select ActiveCell.Formula = cours
Je te propose de faire directement
c.Offset(0, 1).Select c.Formula = cours
Comme ça, Excel ne te prend pas la main
Bonsoir,
Merci pour ta réponse.
Arghhhhhhhh ! C'est ce que j'étais entrain de chercher puisque dans l'aide VBA il était noté : "Remarque: Vous ne pouvez travailler avec la cellule active que si la feuille de calcul qui la contient est la feuille active.........."
J'avais trouvé le code ci-dessus après moult recherches et bidouillages. Pffff! Dur dur l'aprentissage !
Le déclenchement se fait sur le changement de valeur de la cellule dans laquelle j'ai placé le lien DDE matriciel qui donne l'heure d'arrivée du dernier cours.
Elle est en format standard : 09:30:00 par exemple.
Quand A1 de la feuil1 change, il ne se passe rien.
Par contre avec Worksheet_Calculate() le changement de valeur de La cellule A1 dans feuil2 est reconnu :
feuil1 : A1 ={=INDEX(TDXDDE|FLUX!Info2?FR0003500008025025;2)}
feuil2 : A1=feuil1!A1
M'enfin c'est la conclusion a laquelle je suis arrivé en ce moment vu mes connaissances très limites en VBA. Il y a certainement des choses plus propres.
Le 'Ontime' me paraissait plus difficile a paramétrer qu'observer le changement de valeur des cellules étant donné que je connais par avance les heures/minutes/secondes de changement (09:30:00 à 17:59:30 incrémenté par pas de 00:00:30). Mes explications n'étaient pas très claires.
Merci encore. J'y retourne !
jc
Merci pour ta réponse.
Arghhhhhhhh ! C'est ce que j'étais entrain de chercher puisque dans l'aide VBA il était noté : "Remarque: Vous ne pouvez travailler avec la cellule active que si la feuille de calcul qui la contient est la feuille active.........."
J'avais trouvé le code ci-dessus après moult recherches et bidouillages. Pffff! Dur dur l'aprentissage !
Le déclenchement se fait sur le changement de valeur de la cellule dans laquelle j'ai placé le lien DDE matriciel qui donne l'heure d'arrivée du dernier cours.
Elle est en format standard : 09:30:00 par exemple.
Quand A1 de la feuil1 change, il ne se passe rien.
Par contre avec Worksheet_Calculate() le changement de valeur de La cellule A1 dans feuil2 est reconnu :
feuil1 : A1 ={=INDEX(TDXDDE|FLUX!Info2?FR0003500008025025;2)}
feuil2 : A1=feuil1!A1
M'enfin c'est la conclusion a laquelle je suis arrivé en ce moment vu mes connaissances très limites en VBA. Il y a certainement des choses plus propres.
Le 'Ontime' me paraissait plus difficile a paramétrer qu'observer le changement de valeur des cellules étant donné que je connais par avance les heures/minutes/secondes de changement (09:30:00 à 17:59:30 incrémenté par pas de 00:00:30). Mes explications n'étaient pas très claires.
Merci encore. J'y retourne !
jc
Bonsoir,
J'ai essayé le bout de code proposé hier :
mais au lieu de décaler à droite comme dans le code initial, elle écrit dans la même cellule...??? Et je ne peux quand même pas ouvrir une autre feuille excel sans qu'il me fasse un caca nerveux et ne trouve plus la cellule c "horaire" ???
Merci par avance
jc
J'ai essayé le bout de code proposé hier :
c.Offset(0, 1).Select c.Formula = cours
mais au lieu de décaler à droite comme dans le code initial, elle écrit dans la même cellule...??? Et je ne peux quand même pas ouvrir une autre feuille excel sans qu'il me fasse un caca nerveux et ne trouve plus la cellule c "horaire" ???
Merci par avance
jc
Lassé par la pub ? Créez un compte
- Contenus similaires :
- ForumImportation da base de données impossible a traver phpmyadmin
- ForumMacro excel copier/coller deux listes de données variables dans feuille3
- ForumMacro excel 2007 d'extraction ou recopieur des données sous condition
- ForumTransfert donnees userform vers feuille excel
- ForumClasser les données sur Excel
- ForumRéstitution de Données dans classseurs excel dans userform
- ForumMacro Excel : mise en forme d'un tableau de données
- ForumImporter des fichiers cvs dans un fichier excel
- ForumVBA importer une cellule Excel dans Access
- Voir plus