Programmer un timer complexe
Résolu/Fermé
chrisnapoli
Messages postés
134
Date d'inscription
vendredi 8 mai 2015
Statut
Membre
Dernière intervention
5 avril 2018
-
16 mars 2018 à 08:54
chrisnapoli - 24 avril 2018 à 10:40
chrisnapoli - 24 avril 2018 à 10:40
A voir également:
- Programmer un timer complexe
- Programmer un sms - Guide
- Programmer un mail gmail - Guide
- Programmer un mail outlook - Guide
- Shutdown timer - Télécharger - Personnalisation
- Fichier ouvert dans un autre programme - Guide
57 réponses
excuse je n ai pas encore mes lunettes.....effectivement c'est ce que je veux faire c'est a dire ce que tu as marque dans ce message.. et de plus une fois que mes 2 plages vont marcher je veux que toutes les formules plus bas changent également en
EX AN3 et AO3 vont changé mais aussi en suivant AN20et AO20 jusqu "en bas avec un pas de 17 jusque à AN666 et AO666
mais la ou ça se complique c'est que la même opération doit être appliqué au cellule suivante AT et AU , AZ et BA , BG et BH , BM et BN , BS et BT et dans le même pas (17) voila je t 'ai tout dit
la je peux pas du tout t'aider
est-ce que le code fait bien tout ce qu'il faut avec I11 et AN3? est-ce que cela remplace correctement l'ancienne formule en AN3: =NB.SI(AL4:AL18;">="&$i$11)?
si oui, donne-moi une autre formule (et dis-moi d'où elle vient, peut-être de AO3), je vais adapter le code pour te permettre de comprendre.
peut-être veux-tu faire la même chose en AO3 qu'en AN3, mais en utilisant J11 au lieu de I11?
j'essaie de deviner, comme tu es assez flou.
EX AN3 et AO3 vont changé mais aussi en suivant AN20et AO20 jusqu "en bas avec un pas de 17 jusque à AN666 et AO666
mais la ou ça se complique c'est que la même opération doit être appliqué au cellule suivante AT et AU , AZ et BA , BG et BH , BM et BN , BS et BT et dans le même pas (17) voila je t 'ai tout dit
la je peux pas du tout t'aider
est-ce que le code fait bien tout ce qu'il faut avec I11 et AN3? est-ce que cela remplace correctement l'ancienne formule en AN3: =NB.SI(AL4:AL18;">="&$i$11)?
si oui, donne-moi une autre formule (et dis-moi d'où elle vient, peut-être de AO3), je vais adapter le code pour te permettre de comprendre.
peut-être veux-tu faire la même chose en AO3 qu'en AN3, mais en utilisant J11 au lieu de I11?
j'essaie de deviner, comme tu es assez flou.
le probleme est que ces macros font monter ou descendre d'un pas de 43 lignes donc il faut que je trouve une macro qui fasse descendre de 43 mais une seule fois; et après je me servirai de la macro de la macro Sub ligne 12 pour le retour
comment faire une autre macro qui n ai qu 'une seule action de descente et qui change CJ11 et DK11.
je conserverais les autres quand je veux descendre plus bas dans le classeur
Sub plus43()
r = Selection.Row + 43
Cells(r, 1).Activate
ActiveWindow.ScrollRow = ActiveCell.Row
End Sub
Sub ligne12()
Cells(12, 1).Activate
ActiveWindow.ScrollRow = ActiveCell.Row
End Sub
Sub moins43()
r = Selection.Row - 43
If r < 12 Then r = 12
Cells(r, 1).Activate
ActiveWindow.ScrollRow = ActiveCell.Row
End Sub
comment faire une autre macro qui n ai qu 'une seule action de descente et qui change CJ11 et DK11.
je conserverais les autres quand je veux descendre plus bas dans le classeur
Sub plus43()
r = Selection.Row + 43
Cells(r, 1).Activate
ActiveWindow.ScrollRow = ActiveCell.Row
End Sub
Sub ligne12()
Cells(12, 1).Activate
ActiveWindow.ScrollRow = ActiveCell.Row
End Sub
Sub moins43()
r = Selection.Row - 43
If r < 12 Then r = 12
Cells(r, 1).Activate
ActiveWindow.ScrollRow = ActiveCell.Row
End Sub
yg_be
Messages postés
22724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 avril 2024
1 476
17 avril 2018 à 08:19
17 avril 2018 à 08:19
suggestion:
je ne comprends pas le problème dont tu parles ni pourquoi tu veux faire une autre macro.
Option Explicit Sub plus43() Dim r As Long r = Selection.Row + 43 Cells(r, 1).Activate ActiveWindow.ScrollRow = ActiveCell.Row cjdk11 (r) End Sub Sub ligne12() Cells(12, 1).Activate ActiveWindow.ScrollRow = ActiveCell.Row cjdk11 (12) End Sub Sub moins43() Dim r As Long r = Selection.Row - 43 If r < 12 Then r = 12 Cells(r, 1).Activate ActiveWindow.ScrollRow = ActiveCell.Row cjdk11 (r) End Sub Private Sub cjdk11(ligne As Long) 'si la ligne 56 se trouve en dessous de la ligne11 alors inscrivez moi en cellule CJ11 PB/CLV et en Cellule DK11 PH/CLV 'si la ligne 12 est en dessous de la ligne11 alors inscrivez moi en cellule CJ11 PB/PR et en Cellule DK11 PH/PR Select Case ligne Case 12 Range("cj11") = "PB/PR" Range("dk11") = "PH/PR" Case 55 Range("cj11") = "PB/CLV" Range("dk11") = "PH/CLV" Case Else Range("cj11") = "" Range("dk11") = "" End Select End Sub
je ne comprends pas le problème dont tu parles ni pourquoi tu veux faire une autre macro.
Bonjour
donc je remplace ma macro par celle ci au meme endroit..... je pensais pas que tu puisses arriver a faire ca..
.
pour mes graphes avec les echelles qui changent a mesure que les cotations évoluent j ai trouve la solution
maintenant pour appliquer un code a ce que j ai trouvé ,il faut que tu me dises .
si tu inscrits par exemple dans ton code "si la cellule A1 =("") (rien) est ce que le code VBA considère cellule sans formule ,ou bien cellule sans chiffre à l intérieur????
je veux pas t"envoyer des fleurs mais je pense sincèrement que tu es un ton en dessus de tous les autres ,sans toi je n 'en serais pas ou nous en sommes actuellement ;Grand merci je vais avoir un outil très efficace
ya juste un petit soucis sur le timer avec les 4 marches (4 f'euilles)ce matin j ai ouvert et je n ai que sur ma feuille 4 que les cotations s(inscrivent j ai sans doute fait encore une erreur dans la trancription du nom des feuilles je suppose
est ce que l enregistrement automatique de windows ne perturbe pas le Timer si il tombe en même temps que les cotations se collent???? ya t il alors une possibilte d annuler cet enregistrement automatique???
donc je remplace ma macro par celle ci au meme endroit..... je pensais pas que tu puisses arriver a faire ca..
.
pour mes graphes avec les echelles qui changent a mesure que les cotations évoluent j ai trouve la solution
maintenant pour appliquer un code a ce que j ai trouvé ,il faut que tu me dises .
si tu inscrits par exemple dans ton code "si la cellule A1 =("") (rien) est ce que le code VBA considère cellule sans formule ,ou bien cellule sans chiffre à l intérieur????
je veux pas t"envoyer des fleurs mais je pense sincèrement que tu es un ton en dessus de tous les autres ,sans toi je n 'en serais pas ou nous en sommes actuellement ;Grand merci je vais avoir un outil très efficace
ya juste un petit soucis sur le timer avec les 4 marches (4 f'euilles)ce matin j ai ouvert et je n ai que sur ma feuille 4 que les cotations s(inscrivent j ai sans doute fait encore une erreur dans la trancription du nom des feuilles je suppose
est ce que l enregistrement automatique de windows ne perturbe pas le Timer si il tombe en même temps que les cotations se collent???? ya t il alors une possibilte d annuler cet enregistrement automatique???
yg_be
Messages postés
22724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 avril 2024
1 476
17 avril 2018 à 14:36
17 avril 2018 à 14:36
merci pour les fleurs, :-)
on peut tester par VBA soit la formule, soit le contenu d'une cellule. si on teste simplement sans rien préciser, on teste le contenu.
je ne me souviens pas d'avoir vu le code de la fonction RecupCotation adaptée pour plusieurs feuilles. cela avait fonctionné les jours précédents?
tu peux désactiver l'enregistrement automatique, la procédure exacte dépend de la version de Excel que tu utilises. je ne pense pas que cela puisse perturber le Timer ainsi de la même façon toutes les minutes.
on peut tester par VBA soit la formule, soit le contenu d'une cellule. si on teste simplement sans rien préciser, on teste le contenu.
je ne me souviens pas d'avoir vu le code de la fonction RecupCotation adaptée pour plusieurs feuilles. cela avait fonctionné les jours précédents?
tu peux désactiver l'enregistrement automatique, la procédure exacte dépend de la version de Excel que tu utilises. je ne pense pas que cela puisse perturber le Timer ainsi de la même façon toutes les minutes.
Ok alors c'est parfait je vais pouvoir arriver a mes fins
ton code est parfait je l ai mis en place ca fonctionne parfaitement la je me pose juste quelques heures parce que j ai la tete qui bouillonne ;et je fait des erreurs en essayant de mettre en pratique ce fameux graphe avec les echelles de % qui bougent en temps réel
il faut que tu comprennes que ce n 'est pas du tout mon job, ca me passionne de faire ça; mais entre sculpter la pierre et essayer de créer une solution en VBA c'est comme un chinois et un africain ;y a une sacré différence ,donc patiente parce que j arrive toujours a immaginer des solutions ,mais le langage pour le mettre sur VBA c'est tout autre chose Heureusement que tu es la Juste une dernière question est ce que tu connais le langage C++ parce que j ai appris que c’était le plus rapide pour le traitement des données financières et comme une fois que j aurais fini mon truc je vais me faire un site web et bien si je peux je transformerais le VBA en c++ des que j ai fini la construction de mon graphe je te dirais avec exactitude le code que je veux inscrire
grosso modo ca va ressembler a ceci
j 'ai 5 barres
ex une qui va de la cellule AO98:BW98 ; SI(OU(une des cellules BV98 ,BW98 est différente de(""");remplacer la plage DB11:DJ51 a la place de BO98:BW138
je refait la meme operation en dessous pour ma deuxieme barre en BO141;BW141; si(OU(une des cellules BV141,BW141 est différente de(""");remplacer la plage DB11:DJ51 a la place de BO141:BW181 je refait la meme operation sur 5 barres au total...
toutes les cellules dans les plages r tournent en streaming sauf les barres ou sont inscrit les echelles de reperes en ligne 98 puis 141 puis 184 puis 227 puis 270
ton code est parfait je l ai mis en place ca fonctionne parfaitement la je me pose juste quelques heures parce que j ai la tete qui bouillonne ;et je fait des erreurs en essayant de mettre en pratique ce fameux graphe avec les echelles de % qui bougent en temps réel
il faut que tu comprennes que ce n 'est pas du tout mon job, ca me passionne de faire ça; mais entre sculpter la pierre et essayer de créer une solution en VBA c'est comme un chinois et un africain ;y a une sacré différence ,donc patiente parce que j arrive toujours a immaginer des solutions ,mais le langage pour le mettre sur VBA c'est tout autre chose Heureusement que tu es la Juste une dernière question est ce que tu connais le langage C++ parce que j ai appris que c’était le plus rapide pour le traitement des données financières et comme une fois que j aurais fini mon truc je vais me faire un site web et bien si je peux je transformerais le VBA en c++ des que j ai fini la construction de mon graphe je te dirais avec exactitude le code que je veux inscrire
grosso modo ca va ressembler a ceci
j 'ai 5 barres
ex une qui va de la cellule AO98:BW98 ; SI(OU(une des cellules BV98 ,BW98 est différente de(""");remplacer la plage DB11:DJ51 a la place de BO98:BW138
je refait la meme operation en dessous pour ma deuxieme barre en BO141;BW141; si(OU(une des cellules BV141,BW141 est différente de(""");remplacer la plage DB11:DJ51 a la place de BO141:BW181 je refait la meme operation sur 5 barres au total...
toutes les cellules dans les plages r tournent en streaming sauf les barres ou sont inscrit les echelles de reperes en ligne 98 puis 141 puis 184 puis 227 puis 270
yg_be
Messages postés
22724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 avril 2024
1 476
>
chrisnapoli
17 avril 2018 à 16:15
17 avril 2018 à 16:15
je ne pourrais pas t'aider en c++ ni pour mettre ton site web en route.
c 'est pas grave, je vais y arriver la dernière ligne droite c'est de m'occuper de ce code pour mes barres a échelles différentes je suis presque arriver a le faire des que j ai solutionné le problème je te dits quel code il me faut
après je m 'attaquerais a quelque chose d’extrêmement complexe "comment modifier mon fichier si je veux allonger le nombre de séances et le nombre de minutes j ai déjà trouver pour le nombre de minutes mais quand j allonge ou raccourcis le timer il faut que je trouve un code qui dise insérer moi une colonne a partir de ou supprimer moi une colonne a partir de apres il faut que je trouve une combine pour ajouter les formules dans les lignes que j aurais rajoute et pareil pour les colonnes
Penses tu que c'est réalisable..
moi je pense que oui, mais ça va être un vraie casse tete chinois il va falloir que je trouve le ratio exact entre l allongement des journées ou des minutes et le nombre de ligne vers le bas ou de colonnes a insérer ou supprimer (selon) a rajouter , cette partie me parait techniquement faisable
je pense que pour toi un code qui dirait si dans la cellule un tel il y a le numero 1 ou 2 ou 3 ...etc insérer moi une ligne ou une colonne a partir de , est dans ta competence
est il possible aussi de modifier le code dans VBA par un autre code qui remplace par exemple un chiffre ou des lettres toujours pareil ces lettres ou ses chiffres seraient pris dans une liste déroulante et permettraient au moment ou on le souhaite de changer la structure du fichier très rapidement
ce n 'est qu une idée peut être complètement loufoque et irréalisable???
Mais si ca venait a se faire j aurais toutes les possibilités de comparaisons pour mes analyses, et cela serait extraordinairement efficace
après si j 'arrive a faire cela ce sera le final parce-que le graphe que je t'ai envoyé ca y est j ai trouvé la solution il fonctionne a nouveau je vais en faire un de plus opérationnel
demain j 'essaye a nouveau le Timer , je me suis aperçu qu en nommant les feuilles j "'ai laissé des espaces sans m en apercevoir et c'est pour cela que çà ne marchait exclusivement que sur la feuille qui avait été bien nommé(ah ces lunettes ......) donne moi ton impression sur ce que j envisage de faire concernant la transformation d'un nouveau fichier en temps et en heures avant que je lance tout mes neurones dans la bataille(peut être inutilement si ce n 'est pas faisable)
après je te montrerais tout autre chose comme ça, ça changera un peu de l informatique on parlera tomates et légumes et je te montrerais ce que j avais inventé quand j étais en Afrique ;j ai vécu 10 ans la bas je suis revenu en France depuis seulement 1 an
tu verras que la passion peut faire des fois des choses surprenantes
Bonne soirée on a très bien progressé depuis le début , c'est même impressionnant
après je m 'attaquerais a quelque chose d’extrêmement complexe "comment modifier mon fichier si je veux allonger le nombre de séances et le nombre de minutes j ai déjà trouver pour le nombre de minutes mais quand j allonge ou raccourcis le timer il faut que je trouve un code qui dise insérer moi une colonne a partir de ou supprimer moi une colonne a partir de apres il faut que je trouve une combine pour ajouter les formules dans les lignes que j aurais rajoute et pareil pour les colonnes
Penses tu que c'est réalisable..
moi je pense que oui, mais ça va être un vraie casse tete chinois il va falloir que je trouve le ratio exact entre l allongement des journées ou des minutes et le nombre de ligne vers le bas ou de colonnes a insérer ou supprimer (selon) a rajouter , cette partie me parait techniquement faisable
je pense que pour toi un code qui dirait si dans la cellule un tel il y a le numero 1 ou 2 ou 3 ...etc insérer moi une ligne ou une colonne a partir de , est dans ta competence
est il possible aussi de modifier le code dans VBA par un autre code qui remplace par exemple un chiffre ou des lettres toujours pareil ces lettres ou ses chiffres seraient pris dans une liste déroulante et permettraient au moment ou on le souhaite de changer la structure du fichier très rapidement
ce n 'est qu une idée peut être complètement loufoque et irréalisable???
Mais si ca venait a se faire j aurais toutes les possibilités de comparaisons pour mes analyses, et cela serait extraordinairement efficace
après si j 'arrive a faire cela ce sera le final parce-que le graphe que je t'ai envoyé ca y est j ai trouvé la solution il fonctionne a nouveau je vais en faire un de plus opérationnel
demain j 'essaye a nouveau le Timer , je me suis aperçu qu en nommant les feuilles j "'ai laissé des espaces sans m en apercevoir et c'est pour cela que çà ne marchait exclusivement que sur la feuille qui avait été bien nommé(ah ces lunettes ......) donne moi ton impression sur ce que j envisage de faire concernant la transformation d'un nouveau fichier en temps et en heures avant que je lance tout mes neurones dans la bataille(peut être inutilement si ce n 'est pas faisable)
après je te montrerais tout autre chose comme ça, ça changera un peu de l informatique on parlera tomates et légumes et je te montrerais ce que j avais inventé quand j étais en Afrique ;j ai vécu 10 ans la bas je suis revenu en France depuis seulement 1 an
tu verras que la passion peut faire des fois des choses surprenantes
Bonne soirée on a très bien progressé depuis le début , c'est même impressionnant
yg_be
Messages postés
22724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 avril 2024
1 476
>
chrisnapoli
17 avril 2018 à 21:50
17 avril 2018 à 21:50
je n'ai pas vraiment compris ce que tu demandes.
https://mon-partage.fr/f/B7Wlm77Y/
tiens déjà regarde comment je m y prend pour le problème des barres des que j ai fini je te demande pour le code après le reste est beaucoup plus compliqué
en gros c'est pouvoir changer la durée des temps enregistrement du timer et aussi la durée des journées prise en compte pour mes analyses statistiques
modifier le fichier avec quelques codes
mais c 'est pour plus tard
tiens déjà regarde comment je m y prend pour le problème des barres des que j ai fini je te demande pour le code après le reste est beaucoup plus compliqué
en gros c'est pouvoir changer la durée des temps enregistrement du timer et aussi la durée des journées prise en compte pour mes analyses statistiques
modifier le fichier avec quelques codes
mais c 'est pour plus tard
yg_be
Messages postés
22724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 avril 2024
1 476
>
chrisnapoli
18 avril 2018 à 17:08
18 avril 2018 à 17:08
je ne me souviens pas d'avoir vu le code de la fonction RecupCotation adaptée pour plusieurs feuilles. cela avait fonctionné les jours précédents?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
de plus il y a un autre problème c'est que si le timer s(arrete pour panne Electricité ou autre quand tu ouvres a nouveau le fichier il se remet en route instantanément et continue nouveau a coller
c'est incompréhensible et il a effacé les cotations alors il faut faire une macro avec un bouton de façon que les cotations ne soient effaces que si on le demande
de toute façon même si elles sont pas effaces le timer colle la prochaine seance dessus
c'est incompréhensible et il a effacé les cotations alors il faut faire une macro avec un bouton de façon que les cotations ne soient effaces que si on le demande
de toute façon même si elles sont pas effaces le timer colle la prochaine seance dessus
yg_be
Messages postés
22724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 avril 2024
1 476
18 avril 2018 à 17:12
18 avril 2018 à 17:12
donc peut-être pas utile d'effacer les données au démarrage du timer?
et peut-être que le timer devrait choisir la colonne à remplir en fonction de l'heure, au lieu de faire chaque fois la colonne suivante en commençant par le début.
et peut-être que le timer devrait choisir la colonne à remplir en fonction de l'heure, au lieu de faire chaque fois la colonne suivante en commençant par le début.
oui je pense que c'est comme ca qu il faudra faire si le timer demarre a 09:01;00 c'est normal puique aucun cours d'ouverture n est fixé des la premiere seconde
apres si le timer s'arrete pour une raison de panne electrique ou autre il faudrait qu il reprenne dans la bonne minute mais ca je sais pas si c'est réalisable
il faut faire une macro avec un bouton qui m 'efface quand je veux les cotations
et il faut adapter l ensemble des feuilles parcequ il y en a seulement une qui colle la feuille 7 comme dans l 'ancien fichier les autres ne sont pas pris en compte c'est pour cela que hier je pensais que ca venait d'une mauvaise inscription de ma part mais si j avais effectivement fait des erreurs ce n 'est pas pour cela que ca ne colle pas sur les 3 autres feuilles
il faut semble til adapter ton code et aussi voir pourquoi en fin de dernière colonne quand il arrete de coller a 17:45:00 il ya la fenêtre de debogage qui s'ouvre
apres si le timer s'arrete pour une raison de panne electrique ou autre il faudrait qu il reprenne dans la bonne minute mais ca je sais pas si c'est réalisable
il faut faire une macro avec un bouton qui m 'efface quand je veux les cotations
et il faut adapter l ensemble des feuilles parcequ il y en a seulement une qui colle la feuille 7 comme dans l 'ancien fichier les autres ne sont pas pris en compte c'est pour cela que hier je pensais que ca venait d'une mauvaise inscription de ma part mais si j avais effectivement fait des erreurs ce n 'est pas pour cela que ca ne colle pas sur les 3 autres feuilles
il faut semble til adapter ton code et aussi voir pourquoi en fin de dernière colonne quand il arrete de coller a 17:45:00 il ya la fenêtre de debogage qui s'ouvre
yg_be
Messages postés
22724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 avril 2024
1 476
>
chrisnapoli
18 avril 2018 à 19:40
18 avril 2018 à 19:40
une chose à la fois: par quoi veux-tu commencer?
Bonjour
deja il faut que les quatres marches fonctionnent des 09:01:00
après on supprime le clear content sur les 4 marchés et on le remplacera par une simple macro a chaque feuille qui effacera toutes les cotations avec un bouton (comme ca si y a une panne je conserverais mes cotations jusqu 'au moment de la panne )
apres si tu as une combine de refaire partir le timer apres l 'éventuelle panne dans exactement la colonne minute de redémarrage.........?
"" ce serait la cerise sur le GATEAU"" on peut faire les essais au fur et a mesure
deja il faut que les quatres marches fonctionnent des 09:01:00
après on supprime le clear content sur les 4 marchés et on le remplacera par une simple macro a chaque feuille qui effacera toutes les cotations avec un bouton (comme ca si y a une panne je conserverais mes cotations jusqu 'au moment de la panne )
apres si tu as une combine de refaire partir le timer apres l 'éventuelle panne dans exactement la colonne minute de redémarrage.........?
"" ce serait la cerise sur le GATEAU"" on peut faire les essais au fur et a mesure
yg_be
Messages postés
22724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 avril 2024
1 476
>
chrisnapoli
19 avril 2018 à 19:50
19 avril 2018 à 19:50
commençons par essayer que les quatre marchés fonctionnent dès 09:01:00
peux-tu partager le code de RecupCotation?
peux-tu partager le code de RecupCotation?
Bon
ce matin ça vient tout juste de démarrer
même problème qu hier aucun retard sur cotations s mais seulement collage sur une seule des 4 feuilles
est ce que tu peux me dire comment faire cette formule dans Excel jy arrive pas
=SI(une des cellules de la plage ;BC12:BC51 est >0.0175;(">1,75%"),"")
je viens de constater à l instant également que si je passe d'une feuille a l autre pour contrôler le collage par exemple et bien le timer ne colle plus les cotations le temps que je suis sur l 'autre feuille
par contre si je reviens sur la feuille il se remet a coller a la bonne colonne et sans aucun retard ça , çà devrait te donner des indications
ce matin ça vient tout juste de démarrer
même problème qu hier aucun retard sur cotations s mais seulement collage sur une seule des 4 feuilles
est ce que tu peux me dire comment faire cette formule dans Excel jy arrive pas
=SI(une des cellules de la plage ;BC12:BC51 est >0.0175;(">1,75%"),"")
je viens de constater à l instant également que si je passe d'une feuille a l autre pour contrôler le collage par exemple et bien le timer ne colle plus les cotations le temps que je suis sur l 'autre feuille
par contre si je reviens sur la feuille il se remet a coller a la bonne colonne et sans aucun retard ça , çà devrait te donner des indications
En fait il faudrait que le timer démarre a 09::00 au lieu de 09:01:00 et quil mette les cotations des que le cours ouverture est fixé dans la colonne minute correspondante a chaque valeur
exemple si une cotation a son cours fixe avant 09:01:00 elle s'affichera dans la colonne 09:00:00 si son cours est fixée a 09:02:00 et bien cela s'affichera pour elle dans la colonne 09:02:00 puis de la ça devient plus compliqué parceqe il faut que les chiffres suivant s'affiche dans la minute d'apres donc celle qui aura eu son cours de fixe avant 09:01:00 aura ses cellules pleines jusque au bout de la journée de minutes en minutes et celle qui aura son cours d'ouverture fixé 09;02:00 aura 2 cellules vides de moins en fait il faudrait arriver exactement a ça
exemple si une cotation a son cours fixe avant 09:01:00 elle s'affichera dans la colonne 09:00:00 si son cours est fixée a 09:02:00 et bien cela s'affichera pour elle dans la colonne 09:02:00 puis de la ça devient plus compliqué parceqe il faut que les chiffres suivant s'affiche dans la minute d'apres donc celle qui aura eu son cours de fixe avant 09:01:00 aura ses cellules pleines jusque au bout de la journée de minutes en minutes et celle qui aura son cours d'ouverture fixé 09;02:00 aura 2 cellules vides de moins en fait il faudrait arriver exactement a ça
Bonsoir
celui la tu veux dire ou celui que tu as faits pour les 4 feuilles
Option Explicit
Private Sub Workbook_Open()
Sheets("statist").Select
c = 383
Application.OnTime TimeValue("09:01:00"), Procedure:="RecupCotation" '"09:01:00"
Range("NR12:AHW131").ClearContents
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
copy_dh
End Sub
Private Sub copy_dh()
Dim sh As Worksheet
Set sh = Sheets("statist")
sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value
sh.Range("C12:C51").ClearContents
sh.Range("C11") = Now
End Sub
ou celui ci
Option Explicit
Private Sub Workbook_Open()
Call clearc("CAC40")
Call clearc("AEX")
Call clearc("BEL20")
Call clearc("PSI20")
c = 383
Application.OnTime TimeValue("09:01:00"), Procedure:="RecupCotation" '"09:01:00"
End Sub
Private Sub clearc(fl As String)
Dim sh As Worksheet
Set sh = Sheets(fl)
sh.Range("NR12:AHW131").ClearContents
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call copy_dh("CAC40")
Call copy_dh("AEX")
Call copy_dh("BEL20")
Call copy_dh("PSI20")
End Sub
Private Sub copy_dh(fl As String)
Dim sh As Worksheet
Set sh = Sheets(fl)
sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value
sh.Range("C12:C51").ClearContents
sh.Range("C11") = Now
End Sub
celui la tu veux dire ou celui que tu as faits pour les 4 feuilles
Option Explicit
Private Sub Workbook_Open()
Sheets("statist").Select
c = 383
Application.OnTime TimeValue("09:01:00"), Procedure:="RecupCotation" '"09:01:00"
Range("NR12:AHW131").ClearContents
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
copy_dh
End Sub
Private Sub copy_dh()
Dim sh As Worksheet
Set sh = Sheets("statist")
sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value
sh.Range("C12:C51").ClearContents
sh.Range("C11") = Now
End Sub
ou celui ci
Option Explicit
Private Sub Workbook_Open()
Call clearc("CAC40")
Call clearc("AEX")
Call clearc("BEL20")
Call clearc("PSI20")
c = 383
Application.OnTime TimeValue("09:01:00"), Procedure:="RecupCotation" '"09:01:00"
End Sub
Private Sub clearc(fl As String)
Dim sh As Worksheet
Set sh = Sheets(fl)
sh.Range("NR12:AHW131").ClearContents
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call copy_dh("CAC40")
Call copy_dh("AEX")
Call copy_dh("BEL20")
Call copy_dh("PSI20")
End Sub
Private Sub copy_dh(fl As String)
Dim sh As Worksheet
Set sh = Sheets(fl)
sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value
sh.Range("C12:C51").ClearContents
sh.Range("C11") = Now
End Sub
yg_be
Messages postés
22724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 avril 2024
1 476
19 avril 2018 à 21:24
19 avril 2018 à 21:24
celui que tu utilises et dont tu décris le comportement incorrect.
c est le deuxieme que j utilise c'est le dernier que tu as faits et que j ai insccrit dans Timer seul
Private Sub Workbook_Open()
Call clearc("CAC40")
Call clearc("AEX")
Call clearc("BEL20")
Call clearc("PSI20")
c = 383
Application.OnTime TimeValue("09:01:00"), Procedure:="RecupCotation" '"09:01:00"
End Sub
Private Sub clearc(fl As String)
Dim sh As Worksheet
Set sh = Sheets(fl)
sh.Range("NR12:AHW131").ClearContents
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call copy_dh("CAC40")
Call copy_dh("AEX")
Call copy_dh("BEL20")
Call copy_dh("PSI20")
End Sub
Private Sub copy_dh(fl As String)
Dim sh As Worksheet
Set sh = Sheets(fl)
sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value
sh.Range("C12:C51").ClearContents
sh.Range("C11") = Now
End Sub
Private Sub Workbook_Open()
Call clearc("CAC40")
Call clearc("AEX")
Call clearc("BEL20")
Call clearc("PSI20")
c = 383
Application.OnTime TimeValue("09:01:00"), Procedure:="RecupCotation" '"09:01:00"
End Sub
Private Sub clearc(fl As String)
Dim sh As Worksheet
Set sh = Sheets(fl)
sh.Range("NR12:AHW131").ClearContents
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call copy_dh("CAC40")
Call copy_dh("AEX")
Call copy_dh("BEL20")
Call copy_dh("PSI20")
End Sub
Private Sub copy_dh(fl As String)
Dim sh As Worksheet
Set sh = Sheets(fl)
sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value
sh.Range("C12:C51").ClearContents
sh.Range("C11") = Now
End Sub
yg_be
Messages postés
22724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 avril 2024
1 476
>
chrisnapoli
19 avril 2018 à 21:42
19 avril 2018 à 21:42
veux-tu dire que tu utilises encore deux fichiers?
tu ne me montres pas le code de RecupCotation.
tu ne me montres pas le code de RecupCotation.
oui j utilise 2 fichiers maintenant le timer tourne seula part comme ca je peux travailler sur l autre fichier l mais je pige pas le code recuo c'est pas cette partie
Private Sub Workbook_Open()
Call clearc("CAC40")
Call clearc("AEX")
Call clearc("BEL20")
Call clearc("PSI20")
c = 383
Application.OnTime TimeValue("09:01:00"), Procedure:="RecupCotation" '"09:01:00"
End Sub
Private Sub Workbook_Open()
Call clearc("CAC40")
Call clearc("AEX")
Call clearc("BEL20")
Call clearc("PSI20")
c = 383
Application.OnTime TimeValue("09:01:00"), Procedure:="RecupCotation" '"09:01:00"
End Sub
alors c'est peut etre ca
Public Durée As Date
Public c
Sub RecupCotation()
Durée = Now + TimeValue("00:01:00") ' A remplacer par "00:01:00"
Application.OnTime Durée, "RecupCotation"
Range(Cells(12, c), Cells(91, c)) = Range("A12:A91").Value
c = c + 1
If c >= 906 Then ArretCotation 'N° de la dernière colonne
End Sub
Sub ArretCotation()
On Error Resume Next
Application.OnTime Durée, "RecupCotation", , False
End Sub
Public Durée As Date
Public c
Sub RecupCotation()
Durée = Now + TimeValue("00:01:00") ' A remplacer par "00:01:00"
Application.OnTime Durée, "RecupCotation"
Range(Cells(12, c), Cells(91, c)) = Range("A12:A91").Value
c = c + 1
If c >= 906 Then ArretCotation 'N° de la dernière colonne
End Sub
Sub ArretCotation()
On Error Resume Next
Application.OnTime Durée, "RecupCotation", , False
End Sub
tu veux dire celui la que j ai inscrit en module 1
Public Durée As Date
Public c
Sub RecupCotation()
Durée = Now + TimeValue("00:01:00") ' A remplacer par "00:01:00"
Application.OnTime Durée, "RecupCotation"
Range(Cells(12, c), Cells(131, c)) = Range("A12:A131").Value
c = c + 1
If c >= 908 Then ArretCotation 'N° de la dernière colonne
End Sub
Sub ArretCotation()
On Error Resume Next
Application.OnTime Durée, "RecupCotation", , False
End Sub
Public Durée1 As Date
Public c As Long
Public TempsInitial1 As Date
Public TempsInitial1Num As Double
Public T1
Public Tempo1
Sub RecupCotation1()
If T1 >= 60 Then T1 = 0 '60
Durée1 = Format(TempsInitial1Num + (T1 * Tempo1), "hh:mm:ss")
Application.OnTime Durée1, "RecupCotation1"
Range(Cells(12, c), Cells(131, c)) = Range("A12:A131").Value
Dim l As Long
For l = 12 To 51
If Cells(l, "C").Value <> "ok" Then
If Cells(l, "D").Value <> Cells(l, "AS").Value _
Or Cells(l, "E").Value <> Cells(l, "AT").Value _
Or Cells(l, "F").Value <> Cells(l, "AU").Value _
Or Cells(l, "G").Value <> Cells(l, "AV").Value _
Or Cells(l, "H").Value <> Cells(l, "AW").Value Then
Cells(l, "C").Value = "ok"
Else
Cells(l, c).ClearContents
Cells(l + 40, c).ClearContents
Cells(l + 80, c).ClearContents
End If
End If
Next l
Application.Wait Now + TimeValue("00:00:01")
TempsInitial1Num = TempsInitial1Num + Tempo1
If c >= 908 Then ArretCotation1 'N° de la dernière colonne des cotations à la minute
c = c + 1
End Sub
Sub ArretCotation1()
On Error Resume Next
Application.OnTime Durée1, "RecupCotation1", , False
End Sub
Public Durée As Date
Public c
Sub RecupCotation()
Durée = Now + TimeValue("00:01:00") ' A remplacer par "00:01:00"
Application.OnTime Durée, "RecupCotation"
Range(Cells(12, c), Cells(131, c)) = Range("A12:A131").Value
c = c + 1
If c >= 908 Then ArretCotation 'N° de la dernière colonne
End Sub
Sub ArretCotation()
On Error Resume Next
Application.OnTime Durée, "RecupCotation", , False
End Sub
Public Durée1 As Date
Public c As Long
Public TempsInitial1 As Date
Public TempsInitial1Num As Double
Public T1
Public Tempo1
Sub RecupCotation1()
If T1 >= 60 Then T1 = 0 '60
Durée1 = Format(TempsInitial1Num + (T1 * Tempo1), "hh:mm:ss")
Application.OnTime Durée1, "RecupCotation1"
Range(Cells(12, c), Cells(131, c)) = Range("A12:A131").Value
Dim l As Long
For l = 12 To 51
If Cells(l, "C").Value <> "ok" Then
If Cells(l, "D").Value <> Cells(l, "AS").Value _
Or Cells(l, "E").Value <> Cells(l, "AT").Value _
Or Cells(l, "F").Value <> Cells(l, "AU").Value _
Or Cells(l, "G").Value <> Cells(l, "AV").Value _
Or Cells(l, "H").Value <> Cells(l, "AW").Value Then
Cells(l, "C").Value = "ok"
Else
Cells(l, c).ClearContents
Cells(l + 40, c).ClearContents
Cells(l + 80, c).ClearContents
End If
End If
Next l
Application.Wait Now + TimeValue("00:00:01")
TempsInitial1Num = TempsInitial1Num + Tempo1
If c >= 908 Then ArretCotation1 'N° de la dernière colonne des cotations à la minute
c = c + 1
End Sub
Sub ArretCotation1()
On Error Resume Next
Application.OnTime Durée1, "RecupCotation1", , False
End Sub
voila moi j ai ces 2 codes dans mon timer seul dans le workbook j ai
Option Explicit
Private Sub Workbook_Open()
Call clearc("CAC40")
Call clearc("AEX")
Call clearc("BEL20")
Call clearc("PSI20")
c = 383
Application.OnTime TimeValue("09:01:00"), Procedure:="RecupCotation" '"09:01:00"
End Sub
Private Sub clearc(fl As String)
Dim sh As Worksheet
Set sh = Sheets(fl)
sh.Range("NR12:AHW131").ClearContents
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call copy_dh("CAC40")
Call copy_dh("AEX")
Call copy_dh("BEL20")
Call copy_dh("PSI20")
End Sub
Private Sub copy_dh(fl As String)
Dim sh As Worksheet
Set sh = Sheets(fl)
sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value
sh.Range("C12:C51").ClearContents
sh.Range("C11") = Now
End Sub
dans le module 1 j 'ai
Public Durée As Date
Public c
Sub RecupCotation()
Durée = Now + TimeValue("00:01:00") ' A remplacer par "00:01:00"
Application.OnTime Durée, "RecupCotation"
Range(Cells(12, c), Cells(131, c)) = Range("A12:A131").Value
c = c + 1
If c >= 908 Then ArretCotation 'N° de la dernière colonne
End Sub
Sub ArretCotation()
On Error Resume Next
Application.OnTime Durée, "RecupCotation", , False
End Sub
Public Durée1 As Date
Public c As Long
Public TempsInitial1 As Date
Public TempsInitial1Num As Double
Public T1
Public Tempo1
Sub RecupCotation1()
If T1 >= 60 Then T1 = 0 '60
Durée1 = Format(TempsInitial1Num + (T1 * Tempo1), "hh:mm:ss")
Application.OnTime Durée1, "RecupCotation1"
Range(Cells(12, c), Cells(131, c)) = Range("A12:A131").Value
Dim l As Long
For l = 12 To 51
If Cells(l, "C").Value <> "ok" Then
If Cells(l, "D").Value <> Cells(l, "AS").Value _
Or Cells(l, "E").Value <> Cells(l, "AT").Value _
Or Cells(l, "F").Value <> Cells(l, "AU").Value _
Or Cells(l, "G").Value <> Cells(l, "AV").Value _
Or Cells(l, "H").Value <> Cells(l, "AW").Value Then
Cells(l, "C").Value = "ok"
Else
Cells(l, c).ClearContents
Cells(l + 40, c).ClearContents
Cells(l + 80, c).ClearContents
End If
End If
Next l
Application.Wait Now + TimeValue("00:00:01")
TempsInitial1Num = TempsInitial1Num + Tempo1
If c >= 908 Then ArretCotation1 'N° de la dernière colonne des cotations à la minute
c = c + 1
End Sub
Sub ArretCotation1()
On Error Resume Next
Application.OnTime Durée1, "RecupCotation1", , False
End Sub
donc tu veux que j ai ceci a la place dans le workbook
Sub RecupCotation()
Dim cl As Workbook
Set cl = Workbooks("TIMER SEUL")
Durée = Now + TimeValue("00:01:00") ' A remplacer par "00:01:00"
Application.OnTime Durée, "RecupCotation"
'CAC40, AEX, BEL20, PSI20
Call copycr(cl, "CAC40")
Call copycr(cl, "AEX")
Call copycr(cl, "BEL20")
Call copycr(cl, "PSI20")
c = c + 1
If c >= 908 Then ArretCotation 'N° de la dernière colonne
End Sub
Private Sub copycr(cl As Workbook, fl As String)
Dim sh As Worksheet
Set sh = cl.Sheets(fl)
sh.Range(sh.Cells(12, c), sh.Cells(91, c)) = sh.Range("A12:A131").Value
End Sub
Option Explicit
Private Sub Workbook_Open()
Call clearc("CAC40")
Call clearc("AEX")
Call clearc("BEL20")
Call clearc("PSI20")
c = 383
Application.OnTime TimeValue("09:01:00"), Procedure:="RecupCotation" '"09:01:00"
End Sub
Private Sub clearc(fl As String)
Dim sh As Worksheet
Set sh = Sheets(fl)
sh.Range("NR12:AHW131").ClearContents
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call copy_dh("CAC40")
Call copy_dh("AEX")
Call copy_dh("BEL20")
Call copy_dh("PSI20")
End Sub
Private Sub copy_dh(fl As String)
Dim sh As Worksheet
Set sh = Sheets(fl)
sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value
sh.Range("C12:C51").ClearContents
sh.Range("C11") = Now
End Sub
dans le module 1 j 'ai
Public Durée As Date
Public c
Sub RecupCotation()
Durée = Now + TimeValue("00:01:00") ' A remplacer par "00:01:00"
Application.OnTime Durée, "RecupCotation"
Range(Cells(12, c), Cells(131, c)) = Range("A12:A131").Value
c = c + 1
If c >= 908 Then ArretCotation 'N° de la dernière colonne
End Sub
Sub ArretCotation()
On Error Resume Next
Application.OnTime Durée, "RecupCotation", , False
End Sub
Public Durée1 As Date
Public c As Long
Public TempsInitial1 As Date
Public TempsInitial1Num As Double
Public T1
Public Tempo1
Sub RecupCotation1()
If T1 >= 60 Then T1 = 0 '60
Durée1 = Format(TempsInitial1Num + (T1 * Tempo1), "hh:mm:ss")
Application.OnTime Durée1, "RecupCotation1"
Range(Cells(12, c), Cells(131, c)) = Range("A12:A131").Value
Dim l As Long
For l = 12 To 51
If Cells(l, "C").Value <> "ok" Then
If Cells(l, "D").Value <> Cells(l, "AS").Value _
Or Cells(l, "E").Value <> Cells(l, "AT").Value _
Or Cells(l, "F").Value <> Cells(l, "AU").Value _
Or Cells(l, "G").Value <> Cells(l, "AV").Value _
Or Cells(l, "H").Value <> Cells(l, "AW").Value Then
Cells(l, "C").Value = "ok"
Else
Cells(l, c).ClearContents
Cells(l + 40, c).ClearContents
Cells(l + 80, c).ClearContents
End If
End If
Next l
Application.Wait Now + TimeValue("00:00:01")
TempsInitial1Num = TempsInitial1Num + Tempo1
If c >= 908 Then ArretCotation1 'N° de la dernière colonne des cotations à la minute
c = c + 1
End Sub
Sub ArretCotation1()
On Error Resume Next
Application.OnTime Durée1, "RecupCotation1", , False
End Sub
donc tu veux que j ai ceci a la place dans le workbook
Sub RecupCotation()
Dim cl As Workbook
Set cl = Workbooks("TIMER SEUL")
Durée = Now + TimeValue("00:01:00") ' A remplacer par "00:01:00"
Application.OnTime Durée, "RecupCotation"
'CAC40, AEX, BEL20, PSI20
Call copycr(cl, "CAC40")
Call copycr(cl, "AEX")
Call copycr(cl, "BEL20")
Call copycr(cl, "PSI20")
c = c + 1
If c >= 908 Then ArretCotation 'N° de la dernière colonne
End Sub
Private Sub copycr(cl As Workbook, fl As String)
Dim sh As Worksheet
Set sh = cl.Sheets(fl)
sh.Range(sh.Cells(12, c), sh.Cells(91, c)) = sh.Range("A12:A131").Value
End Sub
je ne mets plus alors option explicit et je met tout ca dans le workbook directement????
yg_be
Messages postés
22724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 avril 2024
1 476
19 avril 2018 à 23:54
19 avril 2018 à 23:54
il faut toujours mettre
tu as deux classeurs, nous communiquerions plus efficacement si tu en donnais les noms à chaque fois que tu partages du contenu.
le code que je t'ai envoyé en #190 doit remplacer tout le code qui commence par
option expliciten début de chaque module.
tu as deux classeurs, nous communiquerions plus efficacement si tu en donnais les noms à chaque fois que tu partages du contenu.
le code que je t'ai envoyé en #190 doit remplacer tout le code qui commence par
Sub RecupCotation()jusqu'au
End Subqui suit
comme ca dans module 1 et comme ca dans workbook..??????
Option Explicit
Public Durée As Date
Public c
Sub RecupCotation()
Durée = Now + TimeValue("00:01:00") ' A remplacer par "00:01:00"
Application.OnTime Durée, "RecupCotation"
Range(Cells(12, c), Cells(131, c)) = Range("A12:A131").Value
c = c + 1
If c >= 908 Then ArretCotation 'N° de la dernière colonne
End Sub
Sub ArretCotation()
On Error Resume Next
Application.OnTime Durée, "RecupCotation", , False
End Sub
Public Durée1 As Date
Public c As Long
Public TempsInitial1 As Date
Public TempsInitial1Num As Double
Public T1
Public Tempo1
Sub RecupCotation1()
If T1 >= 60 Then T1 = 0 '60
Durée1 = Format(TempsInitial1Num + (T1 * Tempo1), "hh:mm:ss")
Application.OnTime Durée1, "RecupCotation1"
Range(Cells(12, c), Cells(131, c)) = Range("A12:A131").Value
Dim l As Long
For l = 12 To 51
If Cells(l, "C").Value <> "ok" Then
If Cells(l, "D").Value <> Cells(l, "AS").Value _
Or Cells(l, "E").Value <> Cells(l, "AT").Value _
Or Cells(l, "F").Value <> Cells(l, "AU").Value _
Or Cells(l, "G").Value <> Cells(l, "AV").Value _
Or Cells(l, "H").Value <> Cells(l, "AW").Value Then
Cells(l, "C").Value = "ok"
Else
Cells(l, c).ClearContents
Cells(l + 40, c).ClearContents
Cells(l + 80, c).ClearContents
End If
End If
Next l
Application.Wait Now + TimeValue("00:00:01")
TempsInitial1Num = TempsInitial1Num + Tempo1
If c >= 908 Then ArretCotation1 'N° de la dernière colonne des cotations à la minute
c = c + 1
End Sub
Sub ArretCotation1()
On Error Resume Next
Application.OnTime Durée1, "RecupCotation1", , False
End Sub
comme ca dans workbook?????
Option Explicit
Sub RecupCotation()
Dim cl As Workbook
Set cl = Workbooks("TIMER SEUL")
Durée = Now + TimeValue("00:01:00") ' A remplacer par "00:01:00"
Application.OnTime Durée, "RecupCotation"
'CAC40, AEX, BEL20, PSI20
Call copycr(cl, "CAC40")
Call copycr(cl, "AEX")
Call copycr(cl, "BEL20")
Call copycr(cl, "PSI20")
c = c + 1
If c >= 908 Then ArretCotation 'N° de la dernière colonne
End Sub
Private Sub copycr(cl As Workbook, fl As String)
Dim sh As Worksheet
Set sh = cl.Sheets(fl)
sh.Range(sh.Cells(12, c), sh.Cells(131, c)) = sh.Range("A12:A131").Value
End Sub
Option Explicit
Public Durée As Date
Public c
Sub RecupCotation()
Durée = Now + TimeValue("00:01:00") ' A remplacer par "00:01:00"
Application.OnTime Durée, "RecupCotation"
Range(Cells(12, c), Cells(131, c)) = Range("A12:A131").Value
c = c + 1
If c >= 908 Then ArretCotation 'N° de la dernière colonne
End Sub
Sub ArretCotation()
On Error Resume Next
Application.OnTime Durée, "RecupCotation", , False
End Sub
Public Durée1 As Date
Public c As Long
Public TempsInitial1 As Date
Public TempsInitial1Num As Double
Public T1
Public Tempo1
Sub RecupCotation1()
If T1 >= 60 Then T1 = 0 '60
Durée1 = Format(TempsInitial1Num + (T1 * Tempo1), "hh:mm:ss")
Application.OnTime Durée1, "RecupCotation1"
Range(Cells(12, c), Cells(131, c)) = Range("A12:A131").Value
Dim l As Long
For l = 12 To 51
If Cells(l, "C").Value <> "ok" Then
If Cells(l, "D").Value <> Cells(l, "AS").Value _
Or Cells(l, "E").Value <> Cells(l, "AT").Value _
Or Cells(l, "F").Value <> Cells(l, "AU").Value _
Or Cells(l, "G").Value <> Cells(l, "AV").Value _
Or Cells(l, "H").Value <> Cells(l, "AW").Value Then
Cells(l, "C").Value = "ok"
Else
Cells(l, c).ClearContents
Cells(l + 40, c).ClearContents
Cells(l + 80, c).ClearContents
End If
End If
Next l
Application.Wait Now + TimeValue("00:00:01")
TempsInitial1Num = TempsInitial1Num + Tempo1
If c >= 908 Then ArretCotation1 'N° de la dernière colonne des cotations à la minute
c = c + 1
End Sub
Sub ArretCotation1()
On Error Resume Next
Application.OnTime Durée1, "RecupCotation1", , False
End Sub
comme ca dans workbook?????
Option Explicit
Sub RecupCotation()
Dim cl As Workbook
Set cl = Workbooks("TIMER SEUL")
Durée = Now + TimeValue("00:01:00") ' A remplacer par "00:01:00"
Application.OnTime Durée, "RecupCotation"
'CAC40, AEX, BEL20, PSI20
Call copycr(cl, "CAC40")
Call copycr(cl, "AEX")
Call copycr(cl, "BEL20")
Call copycr(cl, "PSI20")
c = c + 1
If c >= 908 Then ArretCotation 'N° de la dernière colonne
End Sub
Private Sub copycr(cl As Workbook, fl As String)
Dim sh As Worksheet
Set sh = cl.Sheets(fl)
sh.Range(sh.Cells(12, c), sh.Cells(131, c)) = sh.Range("A12:A131").Value
End Sub
yg_be
Messages postés
22724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 avril 2024
1 476
20 avril 2018 à 11:46
20 avril 2018 à 11:46
si je vois bien, il y a a deux fonctions RecupCotation(), plus une RecupCotation1() .
cela en fait deux de trop.
comme tu as deux classeurs, précise le nom du classeur à chaque fois que tu partages du contenu.
cela en fait deux de trop.
comme tu as deux classeurs, précise le nom du classeur à chaque fois que tu partages du contenu.
Bonjour
ce matin j ai fait l 'essai et il n ya aucune cotation qui se colle sur aucune des 4 feuilles???? je sais pas ou j ai fait une erreur
ce matin j ai fait l 'essai et il n ya aucune cotation qui se colle sur aucune des 4 feuilles???? je sais pas ou j ai fait une erreur
bonjour
Je comprend pas ce que tu veux me dire
alors je te mets les codes que j ai dans timer seul et dans l autre fichier
dans TIMER SEUL j ai:
workbook
Option Explicit
Sub RecupCotation()
Dim cl As Workbook
Set cl = Workbooks("TIMER SEUL")
Durée = Now + TimeValue("00:01:00") ' A remplacer par "00:01:00"
Application.OnTime Durée, "RecupCotation"
'CAC40, AEX, BEL20, PSI20
Call copycr(cl, "CAC40")
Call copycr(cl, "AEX")
Call copycr(cl, "BEL20")
Call copycr(cl, "PSI20")
c = c + 1
If c >= 908 Then ArretCotation 'N° de la dernière colonne
End Sub
Private Sub copycr(cl As Workbook, fl As String)
Dim sh As Worksheet
Set sh = cl.Sheets(fl)
sh.Range(sh.Cells(12, c), sh.Cells(131, c)) = sh.Range("A12:A131").Value
End Sub
puis dans module 1
Option Explicit
Public Durée As Date
Public c
Sub RecupCotation()
Durée = Now + TimeValue("00:01:00") ' A remplacer par "00:01:00"
Application.OnTime Durée, "RecupCotation"
Range(Cells(12, c), Cells(131, c)) = Range("A12:A131").Value
c = c + 1
If c >= 908 Then ArretCotation 'N° de la dernière colonne
End Sub
Sub ArretCotation()
On Error Resume Next
Application.OnTime Durée, "RecupCotation", , False
End Sub
Public Durée1 As Date
Public c As Long
Public TempsInitial1 As Date
Public TempsInitial1Num As Double
Public T1
Public Tempo1
Sub RecupCotation1()
If T1 >= 60 Then T1 = 0 '60
Durée1 = Format(TempsInitial1Num + (T1 * Tempo1), "hh:mm:ss")
Application.OnTime Durée1, "RecupCotation1"
Range(Cells(12, c), Cells(131, c)) = Range("A12:A131").Value
Dim l As Long
For l = 12 To 51
If Cells(l, "C").Value <> "ok" Then
If Cells(l, "D").Value <> Cells(l, "AS").Value _
Or Cells(l, "E").Value <> Cells(l, "AT").Value _
Or Cells(l, "F").Value <> Cells(l, "AU").Value _
Or Cells(l, "G").Value <> Cells(l, "AV").Value _
Or Cells(l, "H").Value <> Cells(l, "AW").Value Then
Cells(l, "C").Value = "ok"
Else
Cells(l, c).ClearContents
Cells(l + 40, c).ClearContents
Cells(l + 80, c).ClearContents
End If
End If
Next l
Application.Wait Now + TimeValue("00:00:01")
TempsInitial1Num = TempsInitial1Num + Tempo1
If c >= 908 Then ArretCotation1 'N° de la dernière colonne des cotations à la minute
c = c + 1
End Sub
Sub ArretCotation1()
On Error Resume Next
Application.OnTime Durée1, "RecupCotation1", , False
End Sub
dans CAC 40 19 Avril et AEX 19 Avril et BEL20 19 Avril et PSI20 19 Avril
20 j'ai:
Workbook
Option Explicit
Private Sub Workbook_Open()
Sheets("statist").Select
c = 383
Application.OnTime TimeValue("09:01:00"), Procedure:="RecupCotation" '"09:01:00"
Range("NR12:AHW131").ClearContents
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
copy_dh
End Sub
Private Sub copy_dh()
Dim sh As Worksheet
Set sh = Sheets("statist")
sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value
sh.Range("C12:C51").ClearContents
sh.Range("C11") = Now
End Sub
puis module 1
Option Explicit
Public Durée As Date
Public c
Sub RecupCotation()
Durée = Now + TimeValue("00:01:00") ' A remplacer par "00:01:00"
Application.OnTime Durée, "RecupCotation"
Range(Cells(12, c), Cells(131, c)) = Range("A12:A131").Value
c = c + 1
If c >= 908 Then ArretCotation 'N° de la dernière colonne
End Sub
Sub ArretCotation()
On Error Resume Next
Application.OnTime Durée, "RecupCotation", , False
End Sub
Public Durée1 As Date
Public c As Long
Public TempsInitial1 As Date
Public TempsInitial1Num As Double
Public T1
Public Tempo1
Sub RecupCotation1()
If T1 >= 60 Then T1 = 0 '60
Durée1 = Format(TempsInitial1Num + (T1 * Tempo1), "hh:mm:ss")
Application.OnTime Durée1, "RecupCotation1"
Range(Cells(12, c), Cells(131, c)) = Range("A12:A131").Value
Dim l As Long
For l = 12 To 51
If Cells(l, "C").Value <> "ok" Then
If Cells(l, "D").Value <> Cells(l, "AS").Value _
Or Cells(l, "E").Value <> Cells(l, "AT").Value _
Or Cells(l, "F").Value <> Cells(l, "AU").Value _
Or Cells(l, "G").Value <> Cells(l, "AV").Value _
Or Cells(l, "H").Value <> Cells(l, "AW").Value Then
Cells(l, "C").Value = "ok"
Else
Cells(l, c).ClearContents
Cells(l + 40, c).ClearContents
Cells(l + 80, c).ClearContents
End If
End If
Next l
Application.Wait Now + TimeValue("00:00:01")
TempsInitial1Num = TempsInitial1Num + Tempo1
If c >= 908 Then ArretCotation1 'N° de la dernière colonne des cotations à la minute
c = c + 1
End Sub
Sub ArretCotation1()
On Error Resume Next
Application.OnTime Durée1, "RecupCotation1", , False
End Sub
je sais plus ou j en suis ca veut dire quoi option explicit faut il le mettre a toutes les macros du fichier????
Je comprend pas ce que tu veux me dire
alors je te mets les codes que j ai dans timer seul et dans l autre fichier
dans TIMER SEUL j ai:
workbook
Option Explicit
Sub RecupCotation()
Dim cl As Workbook
Set cl = Workbooks("TIMER SEUL")
Durée = Now + TimeValue("00:01:00") ' A remplacer par "00:01:00"
Application.OnTime Durée, "RecupCotation"
'CAC40, AEX, BEL20, PSI20
Call copycr(cl, "CAC40")
Call copycr(cl, "AEX")
Call copycr(cl, "BEL20")
Call copycr(cl, "PSI20")
c = c + 1
If c >= 908 Then ArretCotation 'N° de la dernière colonne
End Sub
Private Sub copycr(cl As Workbook, fl As String)
Dim sh As Worksheet
Set sh = cl.Sheets(fl)
sh.Range(sh.Cells(12, c), sh.Cells(131, c)) = sh.Range("A12:A131").Value
End Sub
puis dans module 1
Option Explicit
Public Durée As Date
Public c
Sub RecupCotation()
Durée = Now + TimeValue("00:01:00") ' A remplacer par "00:01:00"
Application.OnTime Durée, "RecupCotation"
Range(Cells(12, c), Cells(131, c)) = Range("A12:A131").Value
c = c + 1
If c >= 908 Then ArretCotation 'N° de la dernière colonne
End Sub
Sub ArretCotation()
On Error Resume Next
Application.OnTime Durée, "RecupCotation", , False
End Sub
Public Durée1 As Date
Public c As Long
Public TempsInitial1 As Date
Public TempsInitial1Num As Double
Public T1
Public Tempo1
Sub RecupCotation1()
If T1 >= 60 Then T1 = 0 '60
Durée1 = Format(TempsInitial1Num + (T1 * Tempo1), "hh:mm:ss")
Application.OnTime Durée1, "RecupCotation1"
Range(Cells(12, c), Cells(131, c)) = Range("A12:A131").Value
Dim l As Long
For l = 12 To 51
If Cells(l, "C").Value <> "ok" Then
If Cells(l, "D").Value <> Cells(l, "AS").Value _
Or Cells(l, "E").Value <> Cells(l, "AT").Value _
Or Cells(l, "F").Value <> Cells(l, "AU").Value _
Or Cells(l, "G").Value <> Cells(l, "AV").Value _
Or Cells(l, "H").Value <> Cells(l, "AW").Value Then
Cells(l, "C").Value = "ok"
Else
Cells(l, c).ClearContents
Cells(l + 40, c).ClearContents
Cells(l + 80, c).ClearContents
End If
End If
Next l
Application.Wait Now + TimeValue("00:00:01")
TempsInitial1Num = TempsInitial1Num + Tempo1
If c >= 908 Then ArretCotation1 'N° de la dernière colonne des cotations à la minute
c = c + 1
End Sub
Sub ArretCotation1()
On Error Resume Next
Application.OnTime Durée1, "RecupCotation1", , False
End Sub
dans CAC 40 19 Avril et AEX 19 Avril et BEL20 19 Avril et PSI20 19 Avril
20 j'ai:
Workbook
Option Explicit
Private Sub Workbook_Open()
Sheets("statist").Select
c = 383
Application.OnTime TimeValue("09:01:00"), Procedure:="RecupCotation" '"09:01:00"
Range("NR12:AHW131").ClearContents
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
copy_dh
End Sub
Private Sub copy_dh()
Dim sh As Worksheet
Set sh = Sheets("statist")
sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value
sh.Range("C12:C51").ClearContents
sh.Range("C11") = Now
End Sub
puis module 1
Option Explicit
Public Durée As Date
Public c
Sub RecupCotation()
Durée = Now + TimeValue("00:01:00") ' A remplacer par "00:01:00"
Application.OnTime Durée, "RecupCotation"
Range(Cells(12, c), Cells(131, c)) = Range("A12:A131").Value
c = c + 1
If c >= 908 Then ArretCotation 'N° de la dernière colonne
End Sub
Sub ArretCotation()
On Error Resume Next
Application.OnTime Durée, "RecupCotation", , False
End Sub
Public Durée1 As Date
Public c As Long
Public TempsInitial1 As Date
Public TempsInitial1Num As Double
Public T1
Public Tempo1
Sub RecupCotation1()
If T1 >= 60 Then T1 = 0 '60
Durée1 = Format(TempsInitial1Num + (T1 * Tempo1), "hh:mm:ss")
Application.OnTime Durée1, "RecupCotation1"
Range(Cells(12, c), Cells(131, c)) = Range("A12:A131").Value
Dim l As Long
For l = 12 To 51
If Cells(l, "C").Value <> "ok" Then
If Cells(l, "D").Value <> Cells(l, "AS").Value _
Or Cells(l, "E").Value <> Cells(l, "AT").Value _
Or Cells(l, "F").Value <> Cells(l, "AU").Value _
Or Cells(l, "G").Value <> Cells(l, "AV").Value _
Or Cells(l, "H").Value <> Cells(l, "AW").Value Then
Cells(l, "C").Value = "ok"
Else
Cells(l, c).ClearContents
Cells(l + 40, c).ClearContents
Cells(l + 80, c).ClearContents
End If
End If
Next l
Application.Wait Now + TimeValue("00:00:01")
TempsInitial1Num = TempsInitial1Num + Tempo1
If c >= 908 Then ArretCotation1 'N° de la dernière colonne des cotations à la minute
c = c + 1
End Sub
Sub ArretCotation1()
On Error Resume Next
Application.OnTime Durée1, "RecupCotation1", , False
End Sub
je sais plus ou j en suis ca veut dire quoi option explicit faut il le mettre a toutes les macros du fichier????
yg_be
Messages postés
22724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 avril 2024
1 476
20 avril 2018 à 17:18
20 avril 2018 à 17:18
il faut toujours mettre
option expliciten début de chaque module.
yg_be
Messages postés
22724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 avril 2024
1 476
20 avril 2018 à 18:01
20 avril 2018 à 18:01
eh bien, cela fait une belle soupe, heureusement que tu n'es pas cuisinier!
tu as un timer dans chacun de tes fichiers. je préfère ne pas essayer d'imaginer ce que cela donne si les deux travaillent ensemble.
comment utilises-tu ces deux fichiers? les deux sont-ils ouverts en permanence?
vois-tu encore parfois des "OK"? il me semble que toute cette logique n'est plus utilisée.
tu as un timer dans chacun de tes fichiers. je préfère ne pas essayer d'imaginer ce que cela donne si les deux travaillent ensemble.
comment utilises-tu ces deux fichiers? les deux sont-ils ouverts en permanence?
vois-tu encore parfois des "OK"? il me semble que toute cette logique n'est plus utilisée.
le Timer seul me sert lorsque je veux enregistre les cotations et que je travaille sur l autre fichier l les quatres autres fichiers peuvent travailler si h je veux avec le timer comme cetait prevu au depart tout ca parceque si je monte mon site web je vais faire tourner sur un ordi le timer seul
le soir je collerais le résultat en mode valeur sur chacun des autres fichiers et je pourrais également me servir des autres fichiers si je veux sans timer la journée ou avec Timer selon mes désirs(je vais voir par la suite si avec un ordi puissant et beaucoup de ram je peux faire fonctionner sans avoir de retard le timer et mes graphes temps réel pour le moment j ai trouve cette solution et c'est impeccable ,il suffit que tu me remettes tout en ordre
en fait il faut que tu comprennes que j ai dissocié les fichiers parce que il y a des journées ou je ne peux pas travailler sur les fichiers si le timer tourne sinon en fin d journée j ai un décalage énorme
depuis que tu m 'as fait le code pour les quatres feuilles dans le meme fichier Timer SEUL je n 'ai aucun soucis de retard parcequ il n y a pas dans Timer seul les graphes qui tournent en même temps en temps réel
maintenant comme tu dits je pense qu il ya du menage a faire
mon problème est que je sais structurer les choses l mais je ne connais pas le langage alors des fois ça me pose de gros problèmes parceque je comprends pas ce que tu écrits en code je ne fait qu e deviner par déduction tu me dits âr exemp^le de mettre option explicit avant toutes mes macros mais je ne sais même pas pourquoi je le mets..... en fait pour le moment je tourne avec plusieurs fichiers mais c'est évident que si je pouvais avoir tout sur le même ce serait bien mais je n y crois pas trop pour l instant je n ai pas de machines assez puissantes j ai un core I5 avec 8 gigas
le soir je collerais le résultat en mode valeur sur chacun des autres fichiers et je pourrais également me servir des autres fichiers si je veux sans timer la journée ou avec Timer selon mes désirs(je vais voir par la suite si avec un ordi puissant et beaucoup de ram je peux faire fonctionner sans avoir de retard le timer et mes graphes temps réel pour le moment j ai trouve cette solution et c'est impeccable ,il suffit que tu me remettes tout en ordre
en fait il faut que tu comprennes que j ai dissocié les fichiers parce que il y a des journées ou je ne peux pas travailler sur les fichiers si le timer tourne sinon en fin d journée j ai un décalage énorme
depuis que tu m 'as fait le code pour les quatres feuilles dans le meme fichier Timer SEUL je n 'ai aucun soucis de retard parcequ il n y a pas dans Timer seul les graphes qui tournent en même temps en temps réel
maintenant comme tu dits je pense qu il ya du menage a faire
mon problème est que je sais structurer les choses l mais je ne connais pas le langage alors des fois ça me pose de gros problèmes parceque je comprends pas ce que tu écrits en code je ne fait qu e deviner par déduction tu me dits âr exemp^le de mettre option explicit avant toutes mes macros mais je ne sais même pas pourquoi je le mets..... en fait pour le moment je tourne avec plusieurs fichiers mais c'est évident que si je pouvais avoir tout sur le même ce serait bien mais je n y crois pas trop pour l instant je n ai pas de machines assez puissantes j ai un core I5 avec 8 gigas
yg_be
Messages postés
22724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 avril 2024
1 476
>
chrisnapoli
20 avril 2018 à 19:46
20 avril 2018 à 19:46
je pense que ce n'est pas un problème de puissance de l'ordi.
je sais pas
mais ce qui est sur c'est que a mesure qu on a charge excel les temps de réponse n ont plus ete les mêmes
moi j aimerais bien pouvoir tout mettre sur le même fichier mais j ai lu quelque part que excel avait des limites de mémoire surtout en version 32 bits et je suis sur une version 32
tu crois que ca vient d'ou alors???;;; si tu veux je remets tout comme au depart je conserve tout de meme mon Timer seul en cas de probleme et je remets tout dun bloc avec mes graphes qui tournent en temps reel
je vais avoir au total 4 graphes qui vont tourner sur ce même fichier si je mets tout comme au départ
je ferais comme tu me dits
mais ce qui est sur c'est que a mesure qu on a charge excel les temps de réponse n ont plus ete les mêmes
moi j aimerais bien pouvoir tout mettre sur le même fichier mais j ai lu quelque part que excel avait des limites de mémoire surtout en version 32 bits et je suis sur une version 32
tu crois que ca vient d'ou alors???;;; si tu veux je remets tout comme au depart je conserve tout de meme mon Timer seul en cas de probleme et je remets tout dun bloc avec mes graphes qui tournent en temps reel
je vais avoir au total 4 graphes qui vont tourner sur ce même fichier si je mets tout comme au départ
je ferais comme tu me dits
je sais que je suis casse pied mais si tu me trouvais un code qui me change la formule dans mes graphes je gagnerais un temps de fou ;et je pourrais me passer de la macro que tu m 'as faites l autre jour (qui a servi à passer de PH:PR à PH:CLV mon graphe ne bougerait pas de place et j e n 'aurais pas a construire un deuxieme Ex je passerais de BC BC13 B14...etc a
BC55 BC56 BC
de BG12 BG13..;..à BG55 BG56...etc
de BH12BH13BH14... à BH55 BH56 BH57..etc
je sais que tu sais faire
ca avec un simple bouton sur le bas du graphe et un retour
BC55 BC56 BC
de BG12 BG13..;..à BG55 BG56...etc
de BH12BH13BH14... à BH55 BH56 BH57..etc
je sais que tu sais faire
ca avec un simple bouton sur le bas du graphe et un retour
yg_be
Messages postés
22724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 avril 2024
1 476
20 avril 2018 à 22:34
20 avril 2018 à 22:34
ouvre une nouvelle question dans le forum pour chaque point précis que tu demandes.
tu as sans doute raison mais je n ai pas assez d’expérience pour me rendre compte de mes erreurs je crois que le Timer seul que tu as faits doit marcher cela ne vient peut être pas du code
je t'explique
ce matin je me suis apercu que le logiciekl DDE de cette boite ne prenait pas plus de 50 dde en compte dans un fichier donc tu es oblige de faire une liste supplémentaire pour avoir plusieurs marchés et encore tu ne peux pas les faire fonctionner ensemble il te faut passer dune fenetre a l 'autre
cela je ne le savais pas
je m en suis aperçu parceque la procédure de collage que tu faits de D12:H51 ne se faisait plus
t j ai compris apres que elle ne pouvait pas se faire parce que les liens dde n etaient pas activées sur la feuille quij s’était ouverte au démarrage
si le soir j ai fermé sur la quatrième feuille et que le matin j ouvre mon DDE en allant sur la feuille cac 40 le dde lui va aller sur la feuille qui a été enregistre la dernière le soir
tu te retrouves donc avec la procedure de collage sur la 4 eme feuille et quand le marche demarre la procedure des ok ne peut pas se faire puisqu il n y a pas eu de collage
non seulement ca mais tu crois etre sur la bonne fenetre alors que tes dde sont activées b sur la 4 e me feuille donc quand tu comprends c'est trop tard le marche a démarré tu es oblige de réactiver la bonne liste que tu veux voir marcher mais ton système lui n 'a pas pu démarrer
si j avais une api a la place de ce logiciel je suis sur que l on aurait pas tous ces problemes la preuve c'est que ca fonctionnait avant quand on avait qu un seul marché donc il faut peut être se concentrer sur le cac 40 pour le moment en attendant que je trouve un logiciel qui n'est pas limité de toute facon si tu es sur de tes codes ,il y a bien une explication parce que moi j ai tout remis dans l ordre que tu m 'as decrits
je t'explique
ce matin je me suis apercu que le logiciekl DDE de cette boite ne prenait pas plus de 50 dde en compte dans un fichier donc tu es oblige de faire une liste supplémentaire pour avoir plusieurs marchés et encore tu ne peux pas les faire fonctionner ensemble il te faut passer dune fenetre a l 'autre
cela je ne le savais pas
je m en suis aperçu parceque la procédure de collage que tu faits de D12:H51 ne se faisait plus
t j ai compris apres que elle ne pouvait pas se faire parce que les liens dde n etaient pas activées sur la feuille quij s’était ouverte au démarrage
si le soir j ai fermé sur la quatrième feuille et que le matin j ouvre mon DDE en allant sur la feuille cac 40 le dde lui va aller sur la feuille qui a été enregistre la dernière le soir
tu te retrouves donc avec la procedure de collage sur la 4 eme feuille et quand le marche demarre la procedure des ok ne peut pas se faire puisqu il n y a pas eu de collage
non seulement ca mais tu crois etre sur la bonne fenetre alors que tes dde sont activées b sur la 4 e me feuille donc quand tu comprends c'est trop tard le marche a démarré tu es oblige de réactiver la bonne liste que tu veux voir marcher mais ton système lui n 'a pas pu démarrer
si j avais une api a la place de ce logiciel je suis sur que l on aurait pas tous ces problemes la preuve c'est que ca fonctionnait avant quand on avait qu un seul marché donc il faut peut être se concentrer sur le cac 40 pour le moment en attendant que je trouve un logiciel qui n'est pas limité de toute facon si tu es sur de tes codes ,il y a bien une explication parce que moi j ai tout remis dans l ordre que tu m 'as decrits
Voila j ai trouvé l explication il suffit que tu me dises comment inscrire les trois autres feuilles a la suite
a cela s ajoutait le problème des dde(il faut que je prenne un autre logiciel
c'est pour cela que un seul marché collait la procédure était impossible a faire marcher
Private Sub Workbook_BeforeClose(Cancel As Boolean)
copy_dh
End Sub
Private Sub copy_dh()
Dim sh As Worksheet
Set sh = Sheets("CAC40") "comment mettre les 3 feuilles manquantes"
sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value
sh.Range("C12:C51").ClearContents
sh.Range("C11") = Now
End Sub
a cela s ajoutait le problème des dde(il faut que je prenne un autre logiciel
c'est pour cela que un seul marché collait la procédure était impossible a faire marcher
Private Sub Workbook_BeforeClose(Cancel As Boolean)
copy_dh
End Sub
Private Sub copy_dh()
Dim sh As Worksheet
Set sh = Sheets("CAC40") "comment mettre les 3 feuilles manquantes"
sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value
sh.Range("C12:C51").ClearContents
sh.Range("C11") = Now
End Sub
yg_be
Messages postés
22724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 avril 2024
1 476
>
chrisnapoli
21 avril 2018 à 10:03
21 avril 2018 à 10:03
ouvre une nouvelle question dans le forum pour chaque point précis que tu demandes.
je ne peux pas t'aider si on discute de tout en même temps.
je ne peux pas t'aider si on discute de tout en même temps.
yg_be
Messages postés
22724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 avril 2024
1 476
24 avril 2018 à 10:16
24 avril 2018 à 10:16
A la réflexion, je pense qu'il serait bien d'avoir un fichier qui fait tout ce qui est automatique, et un autre dans lequel tu travailles.
Le fichier "automatique" inclurait:
- le timer
- un onglet DDE par marché
- un onglet sans DDE par marché
Le fichier de travail aurait tout le reste, y inclus:
- un onglet par marché, qui irait récupérer des données (via liens ou via code VBA) dans les onglets non DDE de l'autre fichier
Je pense que cela évitera que le timer et tes activités rentrent en conflit.
(A Suivre, peut-être, dans d'autres messages)
Le fichier "automatique" inclurait:
- le timer
- un onglet DDE par marché
- un onglet sans DDE par marché
Le fichier de travail aurait tout le reste, y inclus:
- un onglet par marché, qui irait récupérer des données (via liens ou via code VBA) dans les onglets non DDE de l'autre fichier
Je pense que cela évitera que le timer et tes activités rentrent en conflit.
(A Suivre, peut-être, dans d'autres messages)
Bonjour
En fait ce que tu me dits est exactement ce que je suis entrain de faire depuis un moment (mais je ne t en ai pas parlé parce que j avais peur que tu me dises que c’était stupide)
je te rappelle que ce n 'est pas mon metier , je ne fait que découvrir les choses a mesure que tu me les montre
le timer ne fonctionnera qu'avec les dde ,et toute ma logique de statistique et tout le reste est a part sans dde
lorsque je ferais le site web ,le timer tournera seul avec les quatres feuilles hors Web et ne sera consacré que uniquement aux collages des cotations
En fin de journée le relevé des cotations du timer sera reporte en mode valeur sur le même fichier que le timer mais avec toute mes feuilles de statistiques en plus;'ces feuilles la n 'ont, n'ont pas besoin de dde
lorsque j aurais tout rapporte sur ce fichier sans DDE alors j enverrai la partie statistique en mode valeur sur le Web
je suis entrain de faire actuellement un fichier pour le WEb avec quatre graphes sur le Model du Timer mais sans Timer de cette manière personne ne pourra me cracker ma solution finale
c'est assez difficile a comprendre mais je suis certain que tu as déjà compris
En fait ce que tu me dits est exactement ce que je suis entrain de faire depuis un moment (mais je ne t en ai pas parlé parce que j avais peur que tu me dises que c’était stupide)
je te rappelle que ce n 'est pas mon metier , je ne fait que découvrir les choses a mesure que tu me les montre
le timer ne fonctionnera qu'avec les dde ,et toute ma logique de statistique et tout le reste est a part sans dde
lorsque je ferais le site web ,le timer tournera seul avec les quatres feuilles hors Web et ne sera consacré que uniquement aux collages des cotations
En fin de journée le relevé des cotations du timer sera reporte en mode valeur sur le même fichier que le timer mais avec toute mes feuilles de statistiques en plus;'ces feuilles la n 'ont, n'ont pas besoin de dde
lorsque j aurais tout rapporte sur ce fichier sans DDE alors j enverrai la partie statistique en mode valeur sur le Web
je suis entrain de faire actuellement un fichier pour le WEb avec quatre graphes sur le Model du Timer mais sans Timer de cette manière personne ne pourra me cracker ma solution finale
c'est assez difficile a comprendre mais je suis certain que tu as déjà compris
6 avril 2018 à 12:07
et en AO3 =NB.SI(AL4:AL18;">=0,006")
en AN20 =NB.SI(AL21:AL35;">=0,006") en AO20 =NB.SI(AL21:AL35;">=0,012") etc
EN AT3 =NB.SI(AR4:AR18;">=0,006") en AU3 =NB.SI(AR4:AR18;">=0,012")
en AZ3 =NB.SI(AX4:AX18;">=0,006") en BA3 =NB.SI(AX4:AX18;">=0,012")
en BG3 =NB.SI(BE4:BE18;">=0,006") en BH3 =NB.SI(BE4:BE18;">=0,012")
en BM3 =NB.SI(BK4:BK18;">=0,006") en BN3 =NB.SI(BK4:BK18;">=0,012")
en BS3 =NB.SI(BQ4:BQ18;">=0,006") en BT3
=NB.SI(BQ4:BQ18;">=0,012")
et tout est pareil les formules descendent en cascade jusqu'a la ligne 666
EX en BS666 =NB.SI(BQ667:BQ681;">=0,006") en BT666
=NB.SI(BQ667:BQ681;">=0,012")
Voila ce coup ci tu as tous les éléments
excuse moi de te faire perdre du temps
6 avril 2018 à 12:36
posons-nous maintenant la question suivante: est-ce préférable que le code calcule les valeurs, ou est-ce préférable que le code crée des formules? si le code calcule les valeurs, ces valeurs changeront uniquement quand les valeurs en I11 et J11 changent. si le code crée des formules, le résultat changera aussi quand les cellules (exemple AL4:AL18) sont modifiées.
7 avril 2018 à 21:10
j ai repris du service et du cassement de tète alors comme le code ne marche pas je suis revenu a une solution formule en attendant que tu me trouves d 'ou vient le problème alors j ai remis ce code pour que mes 2 plages fonctionnent
Sub Worksheet_selectionChange(ByVal Target As Range)
Dim Lig As Byte, Col As Byte
If Not Application.Intersect(Target, Range("CV12:CV51,CX12:CX51")) Is Nothing Then
Range("DP2") = Target
End If
If Not Application.Intersect(Target, Range("I12:I51 ")) Is Nothing Then
Range("I11") = Target
Lig = Target.Row
End If
If Not Application.Intersect(Target, Range("J12:J51 ")) Is Nothing Then
Range("J11") = Target
Lig = Target.Row
End If
End Sub
ca marche parfaitement j ai les deux cellules I11 et J11 qui affichent correctement quand je clique dans les plages
j ai fait un essai avec 2 formules en attendant que tu me trouves la solution j ai inscrit en AN4 et AO4
=NB.SI(AL4:AL18;">="&statist!$I$11) et =NB.SI(AL4:AL18;">="&statist!$J$11)
aujourd’hui j ai également regarder le graphe que je t'ai envoyé
les DDE marchent dessus mais depuis le temps je ne me souviens plus trop bien de son fonctionnement
je me souviens que les barres se collaient selon que l on programmait le timer sur la page téléchargement
alors j ai essaye et seulement les cours s affichent en temps réel mais pas les barres
je pense que le modèle en arrière a été effacé je ne sais plus comment y accéder en lisant le programme tu vas toi sans doute comprendre
a la fin de la journée chaque graphe était copié a un emplacement et je pouvais consulté les 15 séances
les onglets en bas ouvre un graphe différent il y en a 40
ce graphe était dune efficacité redoutable et je compte bien m 'en resservir parce que cela n 'a rien a voir avec les graphes actuels la tu vois en direct en pourcentage sur l 'échelle a gauche ta véritable progression depuis le début de la séance
je compte le remettre en route et l 'améliorer parce que j ai plein d'idees
la premiere des choses est de lui appliquer ce que tu as faits pour l 'autre graphe c 'est a dire que les barres ne s'affichent que seulement quand le cours d'ouverture a ete fixe
c'est la que je me souviens qu il y avait un problème
Bonne soirée et bon week end
11 avril 2018 à 13:42
est ce que tu as eu le temps de regarder mon Graphe je pense que c'est une mauvaise manipulation de ma part je pense que c'est le modèle qui a été effacé
Pour le Timer il faut que tu m'expliques certaines choses j ai programmé le départ a 09:01:00
alors le matin aucune cotation dans la première colonne cela commence dans la deuxième pour le moment je pense que toute les cotations ont changé avant 09:01:;00 parce que je n ai pas vu de procédure d'effacement par les OK je voudrais savoir si le timer efface toutes les valeurs en même temps des que une seule change dans la plage AS12:AW51 ou efface t'il uniquement celles qui n'ont pas encore changé
autrement dit une valeur qui serait a la traîne et dont le cour n 'aurait pas été fixé ne sera pas colle tant qu il n y aura pas un changement pour elle
Apres j ai un autre soucis les premières cotations se collent à la seconde prés ;mais plus on avance dans la journée et plus le collage prend du retard
au bout de 4 h on a par exemple plus de 1 minute de retard sur le vraie horaire peut on palier a ce problème??
cela vient il du timer ou du processeur qui a trop de choses a gérer je ne pige pas parce que le temps réel sur mes liens DDE est constant toute la journée Bonne journée
11 avril 2018 à 18:13
je n'ai pas eu le temps de regarder les graphes.
le timer devrait effacer uniquement les valeurs pour lesquelles le OK n'est pas encore arrivé.
à propos du retard: comment vois-tu qu'il y a du retard?