A voir également:
- Afficher des plages de cotations sous conditions
- Afficher mot de passe wifi android - Guide
- Afficher appdata - Guide
- Afficher mot de passe - Guide
- Afficher taille dossier windows - Guide
- Windows 11 afficher d'autres options - Guide
41 réponses
Bonjour
seul le code pour une feuille marche parfaitement celui de 4 feuilles ne marche pas du tout je ne sais pas pourquoi c'est trop compliqué pour moi
seul le code pour une feuille marche parfaitement celui de 4 feuilles ne marche pas du tout je ne sais pas pourquoi c'est trop compliqué pour moi
le probleme est que tu me parles comme si je connaissais la programmation
moi jai de la facilite a trouver des logiques et creer des applications mais je ne connais absolument rien au langage
alors j ai du mal d'autant que je pige pas que tu ai mis statist dans sheet alors que cela concerne seulement le premier code qui marche deja
moi c'est le deuxieme que je veux solutionner alors j ai un peu d mal a comprendre quand tu marque feuilles avec rien dedans je sais pas si il me faut mettre les quatres feuilles ou seulement la premiere
de plus ne connaissant pas les signes je vois pas très bien comment cela pourrait fonctionner il faut que tu me dises ou je faits mes erreurs
aussi tu me parles de baniere de code je ne sais même pas de quoi tu me parles
effectivement j ai vu un bouton qui pour toi est évident ,mais encore une fois pas pour moi je te mets les codes tels que je les ai ecrit
si tu veux me corriger tu le faits sinon tant pis j irai voir un devellopeur
<Option Explicit
Private Sub Workbook_Open()
Sheets("CAC40,AEX,BEL20,PSI20").Select
c = 383
Application.OnTime TimeValue("16:16:00"), Procedure:="RecupCotation" '"09:01:00"
'Range("NR12:AHW131").ClearContents
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Const ndf = "CAC40,AEX,BEL20,PSI20"
Dim marches, marche
Dim sh As Worksheet
marches = Split(ndf, ",")
For Each marche In marches
Set sh = Sheets(marche)
sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value
sh.Range("C12:C51").ClearContents
sh.Range("C11") = Now
Next marche
End Sub
moi jai de la facilite a trouver des logiques et creer des applications mais je ne connais absolument rien au langage
alors j ai du mal d'autant que je pige pas que tu ai mis statist dans sheet alors que cela concerne seulement le premier code qui marche deja
moi c'est le deuxieme que je veux solutionner alors j ai un peu d mal a comprendre quand tu marque feuilles avec rien dedans je sais pas si il me faut mettre les quatres feuilles ou seulement la premiere
de plus ne connaissant pas les signes je vois pas très bien comment cela pourrait fonctionner il faut que tu me dises ou je faits mes erreurs
aussi tu me parles de baniere de code je ne sais même pas de quoi tu me parles
effectivement j ai vu un bouton qui pour toi est évident ,mais encore une fois pas pour moi je te mets les codes tels que je les ai ecrit
si tu veux me corriger tu le faits sinon tant pis j irai voir un devellopeur
<Option Explicit
Private Sub Workbook_Open()
Sheets("CAC40,AEX,BEL20,PSI20").Select
c = 383
Application.OnTime TimeValue("16:16:00"), Procedure:="RecupCotation" '"09:01:00"
'Range("NR12:AHW131").ClearContents
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Const ndf = "CAC40,AEX,BEL20,PSI20"
Dim marches, marche
Dim sh As Worksheet
marches = Split(ndf, ",")
For Each marche In marches
Set sh = Sheets(marche)
sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value
sh.Range("C12:C51").ClearContents
sh.Range("C11") = Now
Next marche
End Sub
Option Explicit
Dim marches() As String
Sub init_marches()
ReDim marches(3)
marches(0) = "CAC40"
marches(1) = "AEX"
marches(2) = "BEL20"
marches(3) = "PSI20"
End Sub
Sub copy_dh1()
Dim sh As Worksheet
Set sh = Sheets(CAC40, AEX, BEL20, PSI20)
sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value
sh.Range("C12:C51").ClearContents
sh.Range("C11") = Now
End Sub
Sub copy_dh()
Dim marche As Variant
Dim fl As Worksheet
For Each marche In marches
Set fl = Sheets(marche)
Call copy_dhfl(fl)
Next marche
End Sub
Sub copy_dhfl(sh As Worksheet)
sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value
sh.Range("C12:C51").ClearContents
sh.Range("C11") = Now
End Sub
<code>Private Sub Workbook_BeforeClose(Cancel As Boolean)
copy_dh
End Sub
Private Sub copy_dh()
Dim sh As Worksheet
Set sh = Sheets(feuille)
sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value
sh.Range("C12:C51").ClearContents
sh.Range("C11") = Now
End Sub
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 711
19 juin 2018 à 18:37
19 juin 2018 à 18:37
Bonsoir,
Tu as réussi à utiliser le bouton une fois sur deux. ;-)
Quel est ton souci ? qu'est-ce qui ne fonctionne pas ?
Tu as réussi à utiliser le bouton une fois sur deux. ;-)
Quel est ton souci ? qu'est-ce qui ne fonctionne pas ?
de quel bouton????
je ne peux pas deviner c'est très mal explique j ai cliqué sur le bouton ou est inscrit code et ya ca qui se met >code
après je ne sais pas ou faut il le mettre et de quelle manière
pour les codes il n ya que le code du timer qui fonctionne l 'autre ne colle rien je ne sais pas si il est bien ecrit si il faut specifier les 4 feuilles la ou tu as mis sheets
c'est vraiement la devinette...?pour quelqu un qui ne connait pas c'est pourtant pas sorcier d'expliquer les choses clairement
je ne peux pas deviner c'est très mal explique j ai cliqué sur le bouton ou est inscrit code et ya ca qui se met >code
après je ne sais pas ou faut il le mettre et de quelle manière
pour les codes il n ya que le code du timer qui fonctionne l 'autre ne colle rien je ne sais pas si il est bien ecrit si il faut specifier les 4 feuilles la ou tu as mis sheets
c'est vraiement la devinette...?pour quelqu un qui ne connait pas c'est pourtant pas sorcier d'expliquer les choses clairement
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
1 556
20 juin 2018 à 09:18
20 juin 2018 à 09:18
il suffit de sélectionner le code, puis de cliquer sur le bouton et de choisir le langage (basic pour VBA).
chrisnapoli
>
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
20 juin 2018 à 10:23
20 juin 2018 à 10:23
Bonjour
comme ceci ????
profite en pour regarder ce qui ne fonctionne pas dans ce code j ai absolument rien qui se colle dans ce code
ne faudrait il pas corriger dans workbooksheet et mettre les 4 fauilles dans Sheets("CAC40,AEX,BEL20,PSI20")
dans
workbooksheet j ai
Option Explicit
Private Sub Workbook_Open()
Sheets("CAC40").Select
c = 383
Application.OnTime TimeValue("09:50:00"), Procedure:="RecupCotation" '"09:01:00"
'Range("NR12:AHW131").ClearContents
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Const ndf = "CAC40,AEX,BEL20,PSI20"
Dim marches, marche
Dim sh As Worksheet
marches = Split(ndf, ",")
For Each marche In marches
Set sh = Sheets(marche)
sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value
sh.Range("C12:C51").ClearContents
sh.Range("C11") = Now
Next marche
End Sub
dans module1
Option Explicit
Public Durée As Date
Public c As Long
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
dans module6
Private Sub Workbook_BeforeClose(Cancel As Boolean)
copy_dh
End Sub
Private Sub copy_dh()
Dim sh As Worksheet
Set sh = Sheets(feuille)
sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value
sh.Range("C12:C51").ClearContents
sh.Range("C11") = Now
End Sub
dans module8
Option Explicit
Dim marches() As String
Sub init_marches()
ReDim marches(3)
marches(0) = "CAC40"
marches(1) = "AEX"
marches(2) = "BEL20"
marches(3) = "PSI20"
End Sub
Sub copy_dh1()
Dim sh As Worksheet
Set sh = Sheets(CAC40, AEX, BEL20, PSI20)
sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value
sh.Range("C12:C51").ClearContents
sh.Range("C11") = Now
End Sub
Sub copy_dh()
Dim marche As Variant
Dim fl As Worksheet
For Each marche In marches
Set fl = Sheets(marche)
Call copy_dhfl(fl)
Next marche
End Sub
Sub copy_dhfl(sh As Worksheet)
sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value
sh.Range("C12:C51").ClearContents
sh.Range("C11") = Now
End Sub
comme ceci ????
profite en pour regarder ce qui ne fonctionne pas dans ce code j ai absolument rien qui se colle dans ce code
ne faudrait il pas corriger dans workbooksheet et mettre les 4 fauilles dans Sheets("CAC40,AEX,BEL20,PSI20")
dans
workbooksheet j ai
<code basic></code>
Option Explicit
Private Sub Workbook_Open()
Sheets("CAC40").Select
c = 383
Application.OnTime TimeValue("09:50:00"), Procedure:="RecupCotation" '"09:01:00"
'Range("NR12:AHW131").ClearContents
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Const ndf = "CAC40,AEX,BEL20,PSI20"
Dim marches, marche
Dim sh As Worksheet
marches = Split(ndf, ",")
For Each marche In marches
Set sh = Sheets(marche)
sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value
sh.Range("C12:C51").ClearContents
sh.Range("C11") = Now
Next marche
End Sub
dans module1
<code basic></code>
Option Explicit
Public Durée As Date
Public c As Long
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
dans module6
<code basic></code>
Private Sub Workbook_BeforeClose(Cancel As Boolean)
copy_dh
End Sub
Private Sub copy_dh()
Dim sh As Worksheet
Set sh = Sheets(feuille)
sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value
sh.Range("C12:C51").ClearContents
sh.Range("C11") = Now
End Sub
dans module8
<code basic></code>
Option Explicit
Dim marches() As String
Sub init_marches()
ReDim marches(3)
marches(0) = "CAC40"
marches(1) = "AEX"
marches(2) = "BEL20"
marches(3) = "PSI20"
End Sub
Sub copy_dh1()
Dim sh As Worksheet
Set sh = Sheets(CAC40, AEX, BEL20, PSI20)
sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value
sh.Range("C12:C51").ClearContents
sh.Range("C11") = Now
End Sub
Sub copy_dh()
Dim marche As Variant
Dim fl As Worksheet
For Each marche In marches
Set fl = Sheets(marche)
Call copy_dhfl(fl)
Next marche
End Sub
Sub copy_dhfl(sh As Worksheet)
sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value
sh.Range("C12:C51").ClearContents
sh.Range("C11") = Now
End Sub
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
Modifié le 20 juin 2018 à 10:22
Modifié le 20 juin 2018 à 10:22
@chrisnapoli: à droite du bouton code du forum, tu as une petite flèche qui pointe vers le bas et qui permet de sélectionner le langage correspondant au code posté. Clique dessus et choisis "basic" pour le langage VBA comme indiqué par yg_be.
En faisant cela, cela va insérer <code basic></code> dans la fenêtre d'édition du message sur CCM.
Le bouton à gauche de la flèche insère seulement <code></code> (sans préciser le langage), et ne fait que préserver l'indentation (c'est à dire les espaces dans le code) sans aucune coloration syntaxique.
Tu dois ensuite mettre ton code entre les deux balises de code. Comme cela.
<code basic>
ton code ici
</code>
Tu peux cliquer sur le bouton "Prévisualiser" avant de cliquer sur le bouton "Valider" pour vérifier que ton message se présente correctement.
Une autre façon de faire est (comme le dit yg_be aussi) de coller d'abord ton code dans la fenêtre d'édition du forum CCM, de le sélectionner avec la souris, et de cliquer comme indiqué ci-dessus. Cela aura pour effet d'entourer le texte sélectionné des balises de code choisies.
En fait yg_be avait tout dit en une ligne de façon concise ... je me suis contenté de développer :-D
Sur le reste, il y a des années que je n'ai pas fait de VBA, alors je ne me lancerai pas dedans pour tenter de t'aider sur le fond de ta/tes question(s). Cependant, vu vos nombreux échanges et les incompréhensions de part et d'autre, je partage l'avis de gbinforme que tu devrais poster ton classeur (par exemple sur https://cjoint.com/) et envoyer sur le forum le lien vers ton classeur en disant précisément ce qui selon toi ne marche pas, ce que cela fait et ce que tu voudrais que cela fasse.
Dal
En faisant cela, cela va insérer <code basic></code> dans la fenêtre d'édition du message sur CCM.
Le bouton à gauche de la flèche insère seulement <code></code> (sans préciser le langage), et ne fait que préserver l'indentation (c'est à dire les espaces dans le code) sans aucune coloration syntaxique.
Tu dois ensuite mettre ton code entre les deux balises de code. Comme cela.
<code basic>
ton code ici
</code>
Tu peux cliquer sur le bouton "Prévisualiser" avant de cliquer sur le bouton "Valider" pour vérifier que ton message se présente correctement.
Une autre façon de faire est (comme le dit yg_be aussi) de coller d'abord ton code dans la fenêtre d'édition du forum CCM, de le sélectionner avec la souris, et de cliquer comme indiqué ci-dessus. Cela aura pour effet d'entourer le texte sélectionné des balises de code choisies.
En fait yg_be avait tout dit en une ligne de façon concise ... je me suis contenté de développer :-D
Sur le reste, il y a des années que je n'ai pas fait de VBA, alors je ne me lancerai pas dedans pour tenter de t'aider sur le fond de ta/tes question(s). Cependant, vu vos nombreux échanges et les incompréhensions de part et d'autre, je partage l'avis de gbinforme que tu devrais poster ton classeur (par exemple sur https://cjoint.com/) et envoyer sur le forum le lien vers ton classeur en disant précisément ce qui selon toi ne marche pas, ce que cela fait et ce que tu voudrais que cela fasse.
Dal
chrisnapoli
>
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
20 juin 2018 à 12:02
20 juin 2018 à 12:02
Bonjour
Merci tu es le seul qui m 'a expliqué clairement comment cela fonctionne
c'est un peu tard mais ca va me servir a l avenir
c'est un peu folklo pour l 'amateur
il suffisait de mettre la même explication dans leurs bazars et on passerait pas du temps à se poser des questions
Bonne journée
Merci tu es le seul qui m 'a expliqué clairement comment cela fonctionne
c'est un peu tard mais ca va me servir a l avenir
c'est un peu folklo pour l 'amateur
il suffisait de mettre la même explication dans leurs bazars et on passerait pas du temps à se poser des questions
Bonne journée
chrisnapoli
>
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
20 juin 2018 à 12:11
20 juin 2018 à 12:11
un essai
Option Explicit Private Sub Workbook_Open() Sheets("CAC40").Select c = 383 Application.OnTime TimeValue("09:50:00"), Procedure:="RecupCotation" '"09:01:00" 'Range("NR12:AHW131").ClearContents End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) Const ndf = "CAC40,AEX,BEL20,PSI20" Dim marches, marche Dim sh As Worksheet marches = Split(ndf, ",") For Each marche In marches Set sh = Sheets(marche) sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value sh.Range("C12:C51").ClearContents sh.Range("C11") = Now Next marche End Sub
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 711
20 juin 2018 à 08:22
20 juin 2018 à 08:22
Bonjour,
y a ca qui se met >code après je ne sais pas ou faut il le mettre
Il me semble que tu veux faire un site internet ? sans avoir la moindre idée du code HTML ? étonnant non ?
l 'autre ne colle rien quel autre code ? celui qui fonctionnait vendredi ?
c'est vraiement la devinette...?
Là tu as parfaitement raison et comme ma boule de cristal est en panne je ne comprends pas du tout ce que tu veux...
Le plus simple serait que tu anonymises ton classeur et que tu le mettes sur un lien avec le code que tu as et que tu dises ce qui ne te donnes pas satisfaction.
y a ca qui se met >code après je ne sais pas ou faut il le mettre
Il me semble que tu veux faire un site internet ? sans avoir la moindre idée du code HTML ? étonnant non ?
l 'autre ne colle rien quel autre code ? celui qui fonctionnait vendredi ?
c'est vraiement la devinette...?
Là tu as parfaitement raison et comme ma boule de cristal est en panne je ne comprends pas du tout ce que tu veux...
Le plus simple serait que tu anonymises ton classeur et que tu le mettes sur un lien avec le code que tu as et que tu dises ce qui ne te donnes pas satisfaction.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour
le site est pratiquement finie malgré ce que tu peux penser
ce que je suis entrain de faire n 'est que de l amélioration parce que je cherche a faire un outil parfait
la connaissance du langage n 'est pas un très grand problème pour moi(la preuve) des que j ai tout fini je te donnerais la possibilité de voir mon travail fini
le plus important a été de trouver la logique et la structure de mon logiciel
je ne m inquiète pas du tout l autre jour tu m 'as envoyé un code qui ne marchait pas et apres avoir un peu pesté après moi tu m 'as trouvé la solution derrière....
pour la transcription il y a des gens compétents comme toi qui trouvent toujours les solutions pour transformer ma logique
la preuve en est c'est que le develloper qui me transforme mon VBA en java script connait tres peu le VBA mais avec un peu de patiente a su metter en pratique exactement ce que je voulais dans le WEB
moi a mon age c'est un peu complique de vouloir apprendre à coder c'est trop long et j ai pas de temps pour cela je préfère me consacrer à inventer des choses et les commercialiser
je t'envoie le fichier en question celui qui colle les cotations sur 4 feuilles j ai mis accessoirement les 4 mêmes liens dde sur chaque feuille tout simplement parce que je n ai pas encore d'API et je me sert d'un logiciel qui ne peut pas copier 4 listes de liens DDE dans le même temps
ça me permet tout de même de voir si le systeme copie les 4 marches en même temps
les horaires de marchés étant les mêmes ,plus tard il me suffira d adapter l API a chaque feuille
quand tu vas ouvrir le document tu vas avoir une fenêtre qui t interroge pour mettre a jouer les liaisons tu cliques sur rien tu vas sur la croix et tu fermes cette fenêtre
https://cjoint.com/c/HFujz35kbnt
le site est pratiquement finie malgré ce que tu peux penser
ce que je suis entrain de faire n 'est que de l amélioration parce que je cherche a faire un outil parfait
la connaissance du langage n 'est pas un très grand problème pour moi(la preuve) des que j ai tout fini je te donnerais la possibilité de voir mon travail fini
le plus important a été de trouver la logique et la structure de mon logiciel
je ne m inquiète pas du tout l autre jour tu m 'as envoyé un code qui ne marchait pas et apres avoir un peu pesté après moi tu m 'as trouvé la solution derrière....
pour la transcription il y a des gens compétents comme toi qui trouvent toujours les solutions pour transformer ma logique
la preuve en est c'est que le develloper qui me transforme mon VBA en java script connait tres peu le VBA mais avec un peu de patiente a su metter en pratique exactement ce que je voulais dans le WEB
moi a mon age c'est un peu complique de vouloir apprendre à coder c'est trop long et j ai pas de temps pour cela je préfère me consacrer à inventer des choses et les commercialiser
je t'envoie le fichier en question celui qui colle les cotations sur 4 feuilles j ai mis accessoirement les 4 mêmes liens dde sur chaque feuille tout simplement parce que je n ai pas encore d'API et je me sert d'un logiciel qui ne peut pas copier 4 listes de liens DDE dans le même temps
ça me permet tout de même de voir si le systeme copie les 4 marches en même temps
les horaires de marchés étant les mêmes ,plus tard il me suffira d adapter l API a chaque feuille
quand tu vas ouvrir le document tu vas avoir une fenêtre qui t interroge pour mettre a jouer les liaisons tu cliques sur rien tu vas sur la croix et tu fermes cette fenêtre
https://cjoint.com/c/HFujz35kbnt
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
1 556
>
Jeff
23 juin 2018 à 10:36
23 juin 2018 à 10:36
bonjour Jeff,
est-ce une question, ou un rappel à l'ordre?
je n'ai pas lu que chrisnapoli avait l'intention de commercialiser le code VBA discuté ici.
il me semble que de nombreuses questions dans les forums sont liées à des activités professionnelles, est-ce un soucis?
souhaites-tu mentionner un paragraphe précis de la charte?
est-ce une question, ou un rappel à l'ordre?
je n'ai pas lu que chrisnapoli avait l'intention de commercialiser le code VBA discuté ici.
il me semble que de nombreuses questions dans les forums sont liées à des activités professionnelles, est-ce un soucis?
souhaites-tu mentionner un paragraphe précis de la charte?
jordane45
Messages postés
38326
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 décembre 2024
4 711
>
Jeff
23 juin 2018 à 15:41
23 juin 2018 à 15:41
Bonjour,
Rien n’empêche de commercialiser le code obtenu sur le forum....
Si une personne ne souhaite pas que son code soit diffusé (et/ou) commercialisé... et bien... il ne le poste pas sur un forum publique.
Rien n’empêche de commercialiser le code obtenu sur le forum....
Si une personne ne souhaite pas que son code soit diffusé (et/ou) commercialisé... et bien... il ne le poste pas sur un forum publique.
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 711
20 juin 2018 à 18:40
20 juin 2018 à 18:40
Bonjour,
Bon j'ai ouvert le mastodonte de 101,6 Mo - là c'est du classeur ! ;-)
profite en pour regarder ce qui ne fonctionne pas dans ce code j ai absolument rien qui se colle dans ce code
J'en ai donc profité pour regarder et voir que tu n'avais pas mis la macro de copie sur passage à "ok" mais bon c'est toi le chef et donc tu fais ce que tu veux !
Ensuite j'ai fermé le classeur et j'ai constaté que "ce code qui ne fonctionne pas" était tout à fait opérationnel.
Bien sûr il faut ré-ouvrir le géant pour voir le résultat puisque tu fais tes copies à la fermeture et donc tu n'as pas le temps de le voir. Tu pourras alors constater que les copies ont été faites et que C11 sur les 4 feuilles indique ton heure de fermeture.
ce que je suis entrain de faire n 'est que de l amélioration parce que je cherche a faire un outil parfait
Si je suis la phrase de St-Ex ci-dessous je pense qu'il y a encore pas mal de choses à "retirer"...
Bon j'ai ouvert le mastodonte de 101,6 Mo - là c'est du classeur ! ;-)
profite en pour regarder ce qui ne fonctionne pas dans ce code j ai absolument rien qui se colle dans ce code
J'en ai donc profité pour regarder et voir que tu n'avais pas mis la macro de copie sur passage à "ok" mais bon c'est toi le chef et donc tu fais ce que tu veux !
Ensuite j'ai fermé le classeur et j'ai constaté que "ce code qui ne fonctionne pas" était tout à fait opérationnel.
Bien sûr il faut ré-ouvrir le géant pour voir le résultat puisque tu fais tes copies à la fermeture et donc tu n'as pas le temps de le voir. Tu pourras alors constater que les copies ont été faites et que C11 sur les 4 feuilles indique ton heure de fermeture.
ce que je suis entrain de faire n 'est que de l amélioration parce que je cherche a faire un outil parfait
Si je suis la phrase de St-Ex ci-dessous je pense qu'il y a encore pas mal de choses à "retirer"...
de quelle macro parles tu ?si je ne l ai pas mis c'est parceque je ne savais pas ou la mettre sans doute ou alors que je n ai pas compris de celle dont il sagit ( met moi le code pour que je sache précisément de quoi tu me parles...??
quand tu dits que ca marche ?? tu parles des cotations qui sont sur la colonne A12: A131 qui se collent en NS12:AHW131 moi je n ai aucune de ces cotations qui se collent
je ne sais pas de quelle macro dont tu me parles (celle qui recopie les cotations de AS 12::AW51)qui se copient quand le classeur se ferme celle la y est pourtant pour ce classeur tu me dits que c'est un gros classeur je comprends pas l autre qui vient derriere est beaucoup plus gros il ya 8000 colonnes de rempiies
au fait j ai quand même solutionne le problème d avant donc ya pas de raison qu on arrive pas a solutionner celui la
excuse moi parce que je suis oblige de faire 50 choses a la fois et il arrive que je me mélange les pinceaux
quand tu dits que ca marche ?? tu parles des cotations qui sont sur la colonne A12: A131 qui se collent en NS12:AHW131 moi je n ai aucune de ces cotations qui se collent
je ne sais pas de quelle macro dont tu me parles (celle qui recopie les cotations de AS 12::AW51)qui se copient quand le classeur se ferme celle la y est pourtant pour ce classeur tu me dits que c'est un gros classeur je comprends pas l autre qui vient derriere est beaucoup plus gros il ya 8000 colonnes de rempiies
au fait j ai quand même solutionne le problème d avant donc ya pas de raison qu on arrive pas a solutionner celui la
excuse moi parce que je suis oblige de faire 50 choses a la fois et il arrive que je me mélange les pinceaux
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 711
20 juin 2018 à 21:13
20 juin 2018 à 21:13
<ital> il arrive que je me mélange les pinceaux <ital>
Donc je te laisse finir ta peinture mais il faut qu'elle soit parfaite car tu as des gros concurrents comme Léonard ;-)
Donc je te laisse finir ta peinture mais il faut qu'elle soit parfaite car tu as des gros concurrents comme Léonard ;-)
ok mais dits moi au moins si mon probleme ne vient pas de la si dans this workbook il fallait peut etre que je mette
dans sheets les 4 feuilles alors que je n avais mis que celle du CAC40
a la place de
dans sheets les 4 feuilles alors que je n avais mis que celle du CAC40
Option Explicit Private Sub Workbook_Open() Sheets("CAC40,AEX,BEL20,PSI20").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) Const ndf = "CAC40,AEX,BEL20,PSI20" Dim marches, marche Dim sh As Worksheet marches = Split(ndf, ",") For Each marche In marches Set sh = Sheets(marche) sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value sh.Range("C12:C51").ClearContents sh.Range("C11") = Now Next marche End Sub
a la place de
Option Explicit Private Sub Workbook_Open() Sheets("CAC40").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) Const ndf = "CAC40,AEX,BEL20,PSI20" Dim marches, marche Dim sh As Worksheet marches = Split(ndf, ",") For Each marche In marches Set sh = Sheets(marche) sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value sh.Range("C12:C51").ClearContents sh.Range("C11") = Now Next marche End Sub
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 711
21 juin 2018 à 08:35
21 juin 2018 à 08:35
Bonjour,
moi je n ai aucune de ces cotations qui se collent
Il te faudra regarder de plus prêt et l'heure de fermeture n'y est pas non plus alors ? ;-)
dits moi au moins si mon probleme ne vient pas de la
Je ne sais pas de quel problème tu parles mais si c'est pour faire fonctionner le timer sur chaque feuille il faut modifier la procédure "RecupCotation" et non faire ta modification qui ne sert qu'à sélectionner tes 4 feuilles.
Si tu veux poser du code n'importe comment sans savoir le fonctionnement l'on est pas prêt d'avoir un classeur fonctionnel.
moi je n ai aucune de ces cotations qui se collent
Il te faudra regarder de plus prêt et l'heure de fermeture n'y est pas non plus alors ? ;-)
dits moi au moins si mon probleme ne vient pas de la
Je ne sais pas de quel problème tu parles mais si c'est pour faire fonctionner le timer sur chaque feuille il faut modifier la procédure "RecupCotation" et non faire ta modification qui ne sert qu'à sélectionner tes 4 feuilles.
Si tu veux poser du code n'importe comment sans savoir le fonctionnement l'on est pas prêt d'avoir un classeur fonctionnel.
Bonjour
moi je pensais que ce que tu m avais donné pour la procédure du timer sur les 4 feuilles étaient bon etant donne que je t avais déjà précisé que le timer avec une seule feuille fonctionnait parfaitement et que c'etait le second qui ne marchait pas
je pensais que du moment que ca marchait sur la première feuille le codes que tu m as envoye faisait que la procédure s’exécutait sur les autres feuilles
je peux pas deviner ,ne connaissant pas le langage
le timer doit évidement marcher sur la même cadence sur les 4 feuilles et quand j aurais l api directement a la place des DDE les cotations inscrites en A12:A51 seront différente mais se colleront dans chaque feuille respective au même emplacement
peut être alors faut il que j'applique au fichier 4 feuilles le même Timer que celui qui est inscrit sur celui de une seule feuille (qui fonctionne très bien) le mettre dans le module 1
et modifié seulement dans workbookopen et inscrire les 4 feuilles comme ceci je
moi je pensais que ce que tu m avais donné pour la procédure du timer sur les 4 feuilles étaient bon etant donne que je t avais déjà précisé que le timer avec une seule feuille fonctionnait parfaitement et que c'etait le second qui ne marchait pas
je pensais que du moment que ca marchait sur la première feuille le codes que tu m as envoye faisait que la procédure s’exécutait sur les autres feuilles
je peux pas deviner ,ne connaissant pas le langage
le timer doit évidement marcher sur la même cadence sur les 4 feuilles et quand j aurais l api directement a la place des DDE les cotations inscrites en A12:A51 seront différente mais se colleront dans chaque feuille respective au même emplacement
peut être alors faut il que j'applique au fichier 4 feuilles le même Timer que celui qui est inscrit sur celui de une seule feuille (qui fonctionne très bien) le mettre dans le module 1
et modifié seulement dans workbookopen et inscrire les 4 feuilles comme ceci je
Option Explicit Private Sub Workbook_Open() Sheets("CAC40,AEX,BEL20,PSI20").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) Const ndf = "CAC40,AEX,BEL20,PSI20" Dim marches, marche Dim sh As Worksheet marches = Split(ndf, ",") For Each marche In marches Set sh = Sheets(marche) sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value sh.Range("C12:C51").ClearContents sh.Range("C11") = Now Next marche End Sub et dans module 1 je mets le Timer tel qu'il était inscrit sur l autre fichier 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
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 711
21 juin 2018 à 12:00
21 juin 2018 à 12:00
re
Pour ton classeur 4 feuilles tu mets ce code dans thisworkbook
et celui-ci dans ton module 1
Pour ton classeur 4 feuilles tu mets ce code dans thisworkbook
Option Explicit Private Sub Workbook_Open() Sheets("CAC40").Select c = 383 Application.OnTime TimeValue("09:00:00"), Procedure:="RecupCotation" '"09:01:00" End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim marches, marche Dim sh As Worksheet marches = Split(ndf, ",") For Each marche In marches With Sheets(marche) .Range("D12:H51").Value = .Range("AS12:AW51").Value .Range("C12:C51").ClearContents .Range("C11") = Now End With Next marche Call ArretCotation End Sub
et celui-ci dans ton module 1
Option Explicit Public Durée As Date Public c As Long Public Const ndf = "CAC40,AEX,BEL20,PSI20" Sub RecupCotation() Dim marches, marche marches = Split(ndf, ",") For Each marche In marches With Sheets(marche) .Cells(12, c).Resize(120, 1) = .Range("A12:A131").Value End With Next marche c = c + 1 If c >= 908 Then ArretCotation 'N° de la dernière colonne Else Durée = Now + TimeValue("00:01:00") ' A remplacer par "00:01:00" Application.OnTime Durée, "RecupCotation" End If End Sub Sub ArretCotation() On Error Resume Next Application.OnTime Durée, "RecupCotation", , False End Sub
re
dits moi ,ce bout de code je le glisse ou?dans le fichier 4 feuilles?
il permet effacer les cellules tant que le prix d'ouverture n 'a pas ete fixé
dits moi ,ce bout de code je le glisse ou?dans le fichier 4 feuilles?
il permet effacer les cellules tant que le prix d'ouverture n 'a pas ete fixé
ub 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
Grand Merci cela marche parfaitement maintenant ;je viens d'essayer , tu es un champion....
par contre
j ai un conflit sur le code que tu m 'as réalisé l autre jour
le processus des OK change parfaitement le pas, les plages s'affichent au bon endroit les graphes tournent en temps réel, tout se fait automatiquement mis a part que toutes les secondes le sablier bleu s'enclenche (comme si le fichier s'enregistrait sans interruption)et perturbe le systeme ,ce qui fait que quand je me sert des autres macros pour passer d'un graphe a l autre c'est impossible parce que ca me ramène tout le temps immediatement sur le premier graphe on dirait que quelque chose tourne en boucle??? as tu une idée de la cause????
par contre
j ai un conflit sur le code que tu m 'as réalisé l autre jour
le processus des OK change parfaitement le pas, les plages s'affichent au bon endroit les graphes tournent en temps réel, tout se fait automatiquement mis a part que toutes les secondes le sablier bleu s'enclenche (comme si le fichier s'enregistrait sans interruption)et perturbe le systeme ,ce qui fait que quand je me sert des autres macros pour passer d'un graphe a l autre c'est impossible parce que ca me ramène tout le temps immediatement sur le premier graphe on dirait que quelque chose tourne en boucle??? as tu une idée de la cause????
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 711
22 juin 2018 à 10:09
22 juin 2018 à 10:09
Bonjour,
as tu une idée de la cause????
Absolument elle est là : le mastodonte de 101,6 Mo - là c'est du classeur !
- ton classeur a 10000 colonnes enregistrées et moins de 1000 utiles
- tu as 9000 lignes enregistrées et 134 utiles
- tu pourrais diminuer la taille de 50% en supprimant l'inutile pour fluidifier
- tu as plus de 1200 requêtes qui s'exécutent et autant de déclenchement de calculs
- tu as des graphes qui sont recalculés
- tout cela dans la minute : le processeur a besoin d'être bien ventilé !
Il est sans doute possible de limiter les calculs à une fois par minute ce qui devrait laisser un peu de répit mais comme tu vas rajouter des requêtes différentes et l'utilisation de tes graphes il y aura d'autre taf.
Je ne connais pas la configuration de ton système mais il a intérêt à être vraiment au top en multi-threads pour supporter ce type de fonctionnement.
ce que je suis entrain de faire n 'est que de l amélioration parce que je cherche a faire un outil parfait
Il me semble qu'il reste pas mal de boulot ;-)
as tu une idée de la cause????
Absolument elle est là : le mastodonte de 101,6 Mo - là c'est du classeur !
- ton classeur a 10000 colonnes enregistrées et moins de 1000 utiles
- tu as 9000 lignes enregistrées et 134 utiles
- tu pourrais diminuer la taille de 50% en supprimant l'inutile pour fluidifier
- tu as plus de 1200 requêtes qui s'exécutent et autant de déclenchement de calculs
- tu as des graphes qui sont recalculés
- tout cela dans la minute : le processeur a besoin d'être bien ventilé !
Il est sans doute possible de limiter les calculs à une fois par minute ce qui devrait laisser un peu de répit mais comme tu vas rajouter des requêtes différentes et l'utilisation de tes graphes il y aura d'autre taf.
Je ne connais pas la configuration de ton système mais il a intérêt à être vraiment au top en multi-threads pour supporter ce type de fonctionnement.
ce que je suis entrain de faire n 'est que de l amélioration parce que je cherche a faire un outil parfait
Il me semble qu'il reste pas mal de boulot ;-)
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
1 556
22 juin 2018 à 11:13
22 juin 2018 à 11:13
je pense qu'il faut chercher ce qui te ramène tout le temps immédiatement sur le premier graphe.
peut-être un Activate, un Select ou un ScrollRow en trop au mauvais endroit, dans un code démarré automatiquement (timer ou _calculate ou _change)?
il me semble qu'un classeur trop chargé et un ordi pas assez puissant ne devraient pas te ramèner tout le temps immédiatement sur le premier graphe.
peut-être un Activate, un Select ou un ScrollRow en trop au mauvais endroit, dans un code démarré automatiquement (timer ou _calculate ou _change)?
il me semble qu'un classeur trop chargé et un ordi pas assez puissant ne devraient pas te ramèner tout le temps immédiatement sur le premier graphe.
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 711
22 juin 2018 à 12:02
22 juin 2018 à 12:02
Bonjour yg_be,
En fait, sur la macro des "ok" il a mis un activate sur A12 donc au moindre calcul il revient nécessairement ! ;-)
En fait, sur la macro des "ok" il a mis un activate sur A12 donc au moindre calcul il revient nécessairement ! ;-)
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
1 556
>
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
Modifié le 22 juin 2018 à 12:37
Modifié le 22 juin 2018 à 12:37
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
1 556
>
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
22 juin 2018 à 12:25
22 juin 2018 à 12:25
bonjour gbinforme, pourquoi as-tu écrit "cela ne fonctionne pas" en #53? à cause de
Dim marches() As Worksheet?
Bonjour
Attention de ne pas confondre les problèmes, la procédure des OK sur le fichier 4 feuilles n y est plus parce que je ne sais pas ou la mettre exactement a part ca le classeur marche très très bien j ai un classeur beaucoup plus gros que celui la, qui marche aussi parfaitement
donc il faut répondre a ma question ,
ou mettre et de quelle manirère intégrer la procédure que m avait fait YGBE pour que les cotations s'effacent tant que le cours d'ouverture n 'est pas enregistré sur une valeur (ceci était fait pour le classeur une feuiile maintenant il faut l adapter au classeur 4 feuilles (je ne sais pas comment???)
pour le deuxième problème il n 'est absolument pas lié au gros fichier puisque c'est un autre fichier independant
le problème des oK n 'est pas du tout le même cela concerne le code qui me permet d'afficher plusieurs plages il n 'est pas associe au classeur 4 feuilles 'cela n 'a rien a voir c'est un problème a mon avis de quelque chose qui tourne en boucle dans ton code- sinon le code remplit sa fonction
le seul ennui c'est que sans arrêt le sablier enregistrement semble en marche et cela m empêche de me servir d'une macro qui me fait remonter le deuxième graphe a l 'écran
encore une fois ces 2 fichiers sont complètement différents et même si j ouvre le fichier ou est ce problème sans que l 'autre fonctionne le sablier est toujours présent
par contre si je garde ce fichier en enlevant ton code et en revenant a la source au tout premier graphe que j avais créé(sans avoir de plages a copier )le problème du sablier disparaît je mets le code que tu m'as fait et qui a ce problème de sablier en dessous
Attention de ne pas confondre les problèmes, la procédure des OK sur le fichier 4 feuilles n y est plus parce que je ne sais pas ou la mettre exactement a part ca le classeur marche très très bien j ai un classeur beaucoup plus gros que celui la, qui marche aussi parfaitement
donc il faut répondre a ma question ,
ou mettre et de quelle manirère intégrer la procédure que m avait fait YGBE pour que les cotations s'effacent tant que le cours d'ouverture n 'est pas enregistré sur une valeur (ceci était fait pour le classeur une feuiile maintenant il faut l adapter au classeur 4 feuilles (je ne sais pas comment???)
pour le deuxième problème il n 'est absolument pas lié au gros fichier puisque c'est un autre fichier independant
le problème des oK n 'est pas du tout le même cela concerne le code qui me permet d'afficher plusieurs plages il n 'est pas associe au classeur 4 feuilles 'cela n 'a rien a voir c'est un problème a mon avis de quelque chose qui tourne en boucle dans ton code- sinon le code remplit sa fonction
le seul ennui c'est que sans arrêt le sablier enregistrement semble en marche et cela m empêche de me servir d'une macro qui me fait remonter le deuxième graphe a l 'écran
encore une fois ces 2 fichiers sont complètement différents et même si j ouvre le fichier ou est ce problème sans que l 'autre fonctionne le sablier est toujours présent
par contre si je garde ce fichier en enlevant ton code et en revenant a la source au tout premier graphe que j avais créé(sans avoir de plages a copier )le problème du sablier disparaît je mets le code que tu m'as fait et qui a ce problème de sablier en dessous
Private Sub worksheet_Calculate() Const cok = "AX101,AX144,AX187,AX230,AX273,BZ101,BZ144,BZ187,BZ230,BZ273,AX316,AX359,AX402,AX445,AX488,BZ316,BZ359,BZ402,BZ445,BZ488" Const cpo = "CK11:CS51,CK11:CS51,CK11:CS51,CK11:CS51,CK11:CS51,DB11:DJ51,DB11:DJ51,DB11:DJ51,DB11:DJ51,DB11:DJ51,CK57:CS97,CK57:CS97,CK57:CS97,CK57:CS97,CK57:CS97,DB57:DJ97,DB57:DJ97,DB57:DJ97,DB57:DJ97,DB57:DJ97" Const cpd = "BA101:BI141,BA144:BI184,BA187:BI227,BA230:BI270,BA273:BI313,BO101:BW141,BO144:BW184,BO187:BW227,BO230:BW270,BO273:BW313,BA316:BI356,BA359:BI399,BA402:BI442,BA445:BI485,BA488:BI528,BO316:BW356,BO359:BW399,BO402:BW442,BO445:BW485,BO488:BW528" Dim elk, elo, eld, idc As Integer Static avd(20) Application.EnableEvents = False Application.Calculation = xlCalculationManual elk = Split(cok, ","): elo = Split(cpo, ","): eld = Split(cpd, ",") For idc = 0 To UBound(elk) If LCase(avd(idc)) <> "ok" And LCase(Range(elk(idc)).Value) = "ok" Then Range(eld(idc)).Copy Range(elo(idc)).Select Range(elo(idc)).Parent.Paste link:=True End If avd(idc) = Range(elk(idc)).Value Next idc Application.Calculation = xlCalculationSemiautomatic Application.EnableEvents = True Cells(12, 1).Activate ActiveWindow.ScrollRow = ActiveCell.Row End Sub
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
1 556
22 juin 2018 à 13:30
22 juin 2018 à 13:30
attention à ne pas laisser les lignes 21 et 22 dans la sub worksheet_Calculate.
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
1 556
Modifié le 22 juin 2018 à 13:46
Modifié le 22 juin 2018 à 13:46
les lignes 6 à 21 en #76
doivent être adaptées, puis insérées
après la ligne 10 du module1 en #74
adaptations à faire:
mettre un . devant tous les Cells
de plus, la ligne avec dim devra être mise un peu plus haut dans module1, juste après la ligne dim existante.
doivent être adaptées, puis insérées
après la ligne 10 du module1 en #74
adaptations à faire:
mettre un . devant tous les Cells
de plus, la ligne avec dim devra être mise un peu plus haut dans module1, juste après la ligne dim existante.
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
1 556
>
chrisnapoli
22 juin 2018 à 13:48
22 juin 2018 à 13:48
enlever les lignes 21 et 22, comme numérotées en #82.
non je viens de l enlever et le sablier est toujours actif
par contre peux tu me dire ou je doit mettre la procédure des OK(qui effaçait les valeurs tant que le cours d'ouverture n était pas donné) dans le code qu a fait gbinforme pôur le Timer 4 feuilles
par contre peux tu me dire ou je doit mettre la procédure des OK(qui effaçait les valeurs tant que le cours d'ouverture n était pas donné) dans le code qu a fait gbinforme pôur le Timer 4 feuilles
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
1 556
22 juin 2018 à 14:58
22 juin 2018 à 14:58
lis bien le #84.
es-tu encore ramené tout le temps immédiatement sur le premier graphe?
es-tu encore ramené tout le temps immédiatement sur le premier graphe?
DE quelle manière cela doit être adapté pour aller dans le module 1????
et pour l'autre problème ca ne marche pas j ai enlevé ce que tu m as dits 21 et22 en 82 et j ai toujours le sablier qui marche?????
et pour l'autre problème ca ne marche pas j ai enlevé ce que tu m as dits 21 et22 en 82 et j ai toujours le sablier qui marche?????
comme ceci???
basic
Option Explicit
Public Durée As Date
Public c As Long
Dim l As Long
Public Const ndf = "CAC40,AEX,BEL20,PSI20"
Sub RecupCotation()
Dim marches, marche
marches = Split(ndf, ",")
For Each marche In marches
With Sheets(marche)
.Cells(12, c).Resize(120, 1) = .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
></code>
basic
Option Explicit
Public Durée As Date
Public c As Long
Dim l As Long
Public Const ndf = "CAC40,AEX,BEL20,PSI20"
Sub RecupCotation()
Dim marches, marche
marches = Split(ndf, ",")
For Each marche In marches
With Sheets(marche)
.Cells(12, c).Resize(120, 1) = .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
></code>
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
1 556
22 juin 2018 à 17:14
22 juin 2018 à 17:14
es-tu encore ramené tout le temps immédiatement sur le premier graphe?
merci d'utiliser la coloration syntaxique.
merci d'utiliser la coloration syntaxique.
chrisnapoli
>
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
22 juin 2018 à 18:10
22 juin 2018 à 18:10
pourquoi me demandes tu ca j ai enleve comme tu m as dits le bout de code et le sablier est toujours en route je n ai pas regarde alors si ca m ramenait sur le premier graphe maintenant la bourse est fermée et je ne peuix plus controler est ce qur tu peux me dire si ma correctionconcernant le fichier 4 feuilles est bonne ou pas
Cells(12, 1).Activate ActiveWindow.ScrollRow = ActiveCell.Row
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
1 556
>
chrisnapoli
Modifié le 22 juin 2018 à 18:34
Modifié le 22 juin 2018 à 18:34
je te demande cela parce que c'est cela que je tente de corriger.
l'indentation du code (la présence d'espaces au début de certaines lignes) est très importante pour en faciliter la lecture: peux-tu veiller, dans le futur, à la préserver?
l'indentation du code (la présence d'espaces au début de certaines lignes) est très importante pour en faciliter la lecture: peux-tu veiller, dans le futur, à la préserver?
chrisnapoli
>
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
22 juin 2018 à 18:16
22 juin 2018 à 18:16
Option Explicit Public Durée As Date Public c As Long Dim l As Long Public Const ndf = "CAC40,AEX,BEL20,PSI20" Sub RecupCotation() Dim marches, marche marches = Split(ndf, ",") For Each marche In marches With Sheets(marche) .Cells(12, c).Resize(120, 1) = .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
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
1 556
>
chrisnapoli
Modifié le 22 juin 2018 à 18:34
Modifié le 22 juin 2018 à 18:34
la ligne 4 doit être supprimée, et la ligne 12 déplacée après la ligne 7.
en ligne 14, tu as erronément remplacé une parenthèse par un point: compare avec le #76.
dans les lignes 14 à 24, ajoute un point immédiatement avant chaque mot Cells
en ligne 14, tu as erronément remplacé une parenthèse par un point: compare avec le #76.
dans les lignes 14 à 24, ajoute un point immédiatement avant chaque mot Cells
ok mais le probleme du sablier qui tourne en permanence c'est quoi qui fait cela ??
c'est bien cela qui empeche le graphe d’exécuter la macro de positionnement sur le graphe du haut
c'est bien cela qui empeche le graphe d’exécuter la macro de positionnement sur le graphe du haut
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
1 556
22 juin 2018 à 20:25
22 juin 2018 à 20:25
si tu changes le nom de la procédure worksheet_Calculate, cela continue-t'il à tourner en permanence?
si non, il faudra sans doute diminuer la fréquence d'exécution, ou la quantité de travail, directe ou indirecte, de cette procédure. relis le #77. ou bien utiliser un ordi plus performant.
si non, il faudra sans doute diminuer la fréquence d'exécution, ou la quantité de travail, directe ou indirecte, de cette procédure. relis le #77. ou bien utiliser un ordi plus performant.
si je change le nom de workbook calculate que dois je mettre alors a la place??
je ne comprend pas non plus pourquoi vous dites que c'est mon ordi qui n 'est pas assez puissant quand je fait tourner ce fichier il n y a que lui qui tourne et c'est de loin le plus petit des fichiers il n y a que les graphes et les dde dessus il fait seulement 6.86 mo
tu ne m as pas dit si le code que j ai modifie pour le classeur 4 feuilles étaient correct
je ne comprend pas non plus pourquoi vous dites que c'est mon ordi qui n 'est pas assez puissant quand je fait tourner ce fichier il n y a que lui qui tourne et c'est de loin le plus petit des fichiers il n y a que les graphes et les dde dessus il fait seulement 6.86 mo
tu ne m as pas dit si le code que j ai modifie pour le classeur 4 feuilles étaient correct
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
1 556
>
chrisnapoli
23 juin 2018 à 10:21
23 juin 2018 à 10:21
si tu changes le nom de la procédure worksheet_Calculate (en zorglub), cela continue-t'il à tourner en permanence?
as-tu lu le #96?
as-tu lu le #96?
Bonjour
première des remarques je constate encore une fois qu il y a des gens ci qui ne savent même pas de quoi ils parlent
jeff avant d avancer des contre vérités feraient bien de relire les messages
c'est un développeur qui me fait le logiciel en java script
les codes que je fait ici sont pour mon propre fichier et d'ailleurs il me serait impossible de m 'en servir autrement a cause de la législation plus que sévère sur les marches boursiers
ces codes me permettent de faire tourner en temps réel ma logique sur excel pour que le développer comprenne ce que je veux réaliser en aucun cas ils ne sont commercialisé si il avait suivi tant soit peu nos échanges il se serait aperçu que il y a une partie qui est consacre a un timer qui ne peut aller sur le web évidement, et de plus que l ensemble des procédures sont dissociées pour la bonne raison qu au final n'iront sur le web que la partie graphique de plus cette partie est transcrit en java script par mon développer si il n en est pas convaincu c'est alors qu il n a rien compris
mais la jalousie est un vilain Default
a 60 ans passé et au chôme du je suis encore fier de pouvoir essayer de m 'en sortir par mon imagination et ma créativité ,lui en déplaisede toute facon cela glisse sur moi
je n ai pas ce genre de soucis avec toi et gbinforme ,même si des fois on s'envoie des vannes c'est pas bien méchant
revenons en a nos moutons
tu me dits de changer le nom de la procédure
ok je le mets comme çà alors??mais je ne pourrais l essayer que lundi avec le temps réel qui tourne
première des remarques je constate encore une fois qu il y a des gens ci qui ne savent même pas de quoi ils parlent
jeff avant d avancer des contre vérités feraient bien de relire les messages
c'est un développeur qui me fait le logiciel en java script
les codes que je fait ici sont pour mon propre fichier et d'ailleurs il me serait impossible de m 'en servir autrement a cause de la législation plus que sévère sur les marches boursiers
ces codes me permettent de faire tourner en temps réel ma logique sur excel pour que le développer comprenne ce que je veux réaliser en aucun cas ils ne sont commercialisé si il avait suivi tant soit peu nos échanges il se serait aperçu que il y a une partie qui est consacre a un timer qui ne peut aller sur le web évidement, et de plus que l ensemble des procédures sont dissociées pour la bonne raison qu au final n'iront sur le web que la partie graphique de plus cette partie est transcrit en java script par mon développer si il n en est pas convaincu c'est alors qu il n a rien compris
mais la jalousie est un vilain Default
a 60 ans passé et au chôme du je suis encore fier de pouvoir essayer de m 'en sortir par mon imagination et ma créativité ,lui en déplaisede toute facon cela glisse sur moi
je n ai pas ce genre de soucis avec toi et gbinforme ,même si des fois on s'envoie des vannes c'est pas bien méchant
revenons en a nos moutons
tu me dits de changer le nom de la procédure
ok je le mets comme çà alors??mais je ne pourrais l essayer que lundi avec le temps réel qui tourne
Private Sub zorglub ()
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
1 556
>
chrisnapoli
23 juin 2018 à 11:17
23 juin 2018 à 11:17
en effet, cela va permettre de répondre à la question en #97.
en fait je crois que le sablier tourne en permanence tout simplement parceque le code qu a fait gbinforme colle en permanence les plages correllées directement aux OK
alors quil ne devarit coller qu'une seule fois et ne coller à nouveau que si il y a un nouveau changement détecté dans une des 4 cellules
alors quil ne devarit coller qu'une seule fois et ne coller à nouveau que si il y a un nouveau changement détecté dans une des 4 cellules
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
1 556
23 juin 2018 à 13:19
23 juin 2018 à 13:19
je respecte ta croyance, et je ne la partage pas. peux-tu la prouver?
tu peux, pour tester, déclencher le code de la sub _calculate même sans cotations, simplement en ajoutant une formule (par exemple =1) dans une cellule inutilisée de la feuille.
tu peux, pour tester, déclencher le code de la sub _calculate même sans cotations, simplement en ajoutant une formule (par exemple =1) dans une cellule inutilisée de la feuille.
chrisnapoli
>
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
23 juin 2018 à 13:37
23 juin 2018 à 13:37
""en fait je crois que le sablier tourne en permanence tout simplement parceque le code qu a fait gbinforme colle en permanence les plages correllées directement aux OK ""
ce n 'est pas une croyance c'est maintenant une constatation claire
je mets son code le sablier apparait ,j enleve son code le temps réel me donne les cotations le graphe est anime et le sablier n apparait plus(evidement aucune plage n 'est collé; cela reste sur le pas qui avait été enregistré avant la modification
ce n 'est pas une croyance c'est maintenant une constatation claire
je mets son code le sablier apparait ,j enleve son code le temps réel me donne les cotations le graphe est anime et le sablier n apparait plus(evidement aucune plage n 'est collé; cela reste sur le pas qui avait été enregistré avant la modification
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
1 556
>
chrisnapoli
Modifié le 23 juin 2018 à 13:51
Modifié le 23 juin 2018 à 13:51
tu as constaté que le code _calculate provoquait le problème du sablier.
et tu crois que c'est parce que ce code colle en permanence. c'est sur ce point que j'ai des doutes.
pour prouver ton point, tu peux, pour tester, déclencher le code de la sub _calculate même sans cotations, simplement en ajoutant une formule (par exemple =1) dans une cellule inutilisée de la feuille.
tu peux aussi mettre un point d'arret sur une des trois lignes suivantes, pour savoir quand le code fait une copie.
et tu crois que c'est parce que ce code colle en permanence. c'est sur ce point que j'ai des doutes.
pour prouver ton point, tu peux, pour tester, déclencher le code de la sub _calculate même sans cotations, simplement en ajoutant une formule (par exemple =1) dans une cellule inutilisée de la feuille.
tu peux aussi mettre un point d'arret sur une des trois lignes suivantes, pour savoir quand le code fait une copie.
Range(eld(idc)).Copy Range(elo(idc)).Select Range(elo(idc)).Parent.Paste link:=True
ok pigé
celui ci marche maintenant parfaitement mis a part que je ne sais pas ou mettre lea procedure des ok qui effacent les cotations qui n ont pas encore leur cours d'ouverture
c'est la question que je te posais l autre jour et je voudrais savoir pourquoi ce fichier st si lourd sinon je la i essaye avec les mêmes liens dde sur les 4 feuilles et ca colle parfaitement tout en même temps dit moi stp comment je fait pour inclure la procédure que tu a vais faits toi même?? pour le reste je pense que l on va y arriver aussi petit a petit
celui ci marche maintenant parfaitement mis a part que je ne sais pas ou mettre lea procedure des ok qui effacent les cotations qui n ont pas encore leur cours d'ouverture
c'est la question que je te posais l autre jour et je voudrais savoir pourquoi ce fichier st si lourd sinon je la i essaye avec les mêmes liens dde sur les 4 feuilles et ca colle parfaitement tout en même temps dit moi stp comment je fait pour inclure la procédure que tu a vais faits toi même?? pour le reste je pense que l on va y arriver aussi petit a petit
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
1 556
23 juin 2018 à 21:42
23 juin 2018 à 21:42
la procedure des ok qui effacent les cotations qui n ont pas encore leur cours d'ouverture: n'est ce pas la procédure RecupCotation()? ce n'est pas une nouvelle procédure, pourquoi demandes-tu où la mettre? c'est la procédure qui est exécutée par le timer toutes les minutes.
je pense avoir compris que tu as deux fichiers, un avec les 4 feuilles par marché, et un autre. comment s’appellent ces deux fichiers? j'ai l'impression qu'il y a des choses en double, inutiles, dans les deux fichiers, ce qui m’empêche de bien comprendre.
je pense avoir compris que tu as deux fichiers, un avec les 4 feuilles par marché, et un autre. comment s’appellent ces deux fichiers? j'ai l'impression qu'il y a des choses en double, inutiles, dans les deux fichiers, ce qui m’empêche de bien comprendre.
oui j ai 2 fichiers le premier que tu m avais fait Timer CAC 40 seul et l autre Timer Seul celui qui ne marchait pas a 4 feuilles beinform a modifie le code il marche sauf la procedure des ok qui ny est plus je sais pas de quelle menire lintegrer j ai ca dans le 4 feuilles
dans workbook
<Option Explicit
Private Sub Workbook_Open()
Sheets("CAC40").Select
c = 383
Application.OnTime TimeValue("09:01:00"), Procedure:="RecupCotation" '"09:01:00"
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim marches, marche
Dim sh As Worksheet
marches = Split(ndf, ",")
For Each marche In marches
With Sheets(marche)
.Range("D12:H51").Value = .Range("AS12:AW51").Value
.Range("C12:C51").ClearContents
.Range("C11") = Now
End With
Next marche
Call ArretCotation
End Sub
dans module1
code basic>
module1 Option Explicit
Public Durée As Date
Public c As Long
Public Const ndf = "CAC40,AEX,BEL20,PSI20"
Sub RecupCotation()
Dim marches, marche
marches = Split(ndf, ",")
For Each marche In marches
With Sheets(marche)
.Cells(12, c).Resize(120, 1) = .Range("A12:A131").Value
End With
Next marche
c = c + 1
If c >= 908 Then
ArretCotation 'N° de la dernière colonne
Else
Durée = Now + TimeValue("00:01:00") ' A remplacer par "00:01:00"
Application.OnTime Durée, "RecupCotation"
End If
End Sub
Sub ArretCotation()
On Error Resume Next
Application.OnTime Durée, "RecupCotation", , False
End Sub
</code>
dans module 8
dans workbook
<Option Explicit
Private Sub Workbook_Open()
Sheets("CAC40").Select
c = 383
Application.OnTime TimeValue("09:01:00"), Procedure:="RecupCotation" '"09:01:00"
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim marches, marche
Dim sh As Worksheet
marches = Split(ndf, ",")
For Each marche In marches
With Sheets(marche)
.Range("D12:H51").Value = .Range("AS12:AW51").Value
.Range("C12:C51").ClearContents
.Range("C11") = Now
End With
Next marche
Call ArretCotation
End Sub
dans module1
code basic>
module1 Option Explicit
Public Durée As Date
Public c As Long
Public Const ndf = "CAC40,AEX,BEL20,PSI20"
Sub RecupCotation()
Dim marches, marche
marches = Split(ndf, ",")
For Each marche In marches
With Sheets(marche)
.Cells(12, c).Resize(120, 1) = .Range("A12:A131").Value
End With
Next marche
c = c + 1
If c >= 908 Then
ArretCotation 'N° de la dernière colonne
Else
Durée = Now + TimeValue("00:01:00") ' A remplacer par "00:01:00"
Application.OnTime Durée, "RecupCotation"
End If
End Sub
Sub ArretCotation()
On Error Resume Next
Application.OnTime Durée, "RecupCotation", , False
End Sub
</code>
dans module 8
Option Explicit Dim marches() As String Sub init_marches() ReDim marches(3) marches(0) = "CAC40" marches(1) = "AEX" marches(2) = "BEL20" marches(3) = "PSI20" End Sub Sub copy_dh1() Dim sh As Worksheet Set sh = Sheets(CAC40, AEX, BEL20, PSI20) sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value sh.Range("C12:C51").ClearContents sh.Range("C11") = Now End Sub Sub copy_dh() Dim marche As Variant Dim fl As Worksheet For Each marche In marches Set fl = Sheets(marche) Call copy_dhfl(fl) Next marche End Sub Sub copy_dhfl(sh As Worksheet) 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
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
1 556
>
chrisnapoli
23 juin 2018 à 22:51
23 juin 2018 à 22:51
où se trouve le code que tu as montré en #93?
merci d'être précis: nom du fichier, nom du module.
merci d'être précis: nom du fichier, nom du module.
il n'y ai pas ce code dans le fichier TIMER SEUL
l ya dans le module 1 ceci
tu as le fichier c'est toi qui ma envoye le lien tout a lheure tu peux voir le code tel quil est écrit entirement
l ya dans le module 1 ceci
tu as le fichier c'est toi qui ma envoye le lien tout a lheure tu peux voir le code tel quil est écrit entirement
Option Explicit Public Durée As Date Public c As Long Public Const ndf = "CAC40,AEX,BEL20,PSI20" Sub RecupCotation() Dim marches, marche marches = Split(ndf, ",") For Each marche In marches With Sheets(marche) .Cells(12, c).Resize(120, 1) = .Range("A12:A131").Value End With Next marche c = c + 1 If c >= 908 Then ArretCotation 'N° de la dernière colonne Else Durée = Now + TimeValue("00:01:00") ' A remplacer par "00:01:00" Application.OnTime Durée, "RecupCotation" End If End Sub Sub ArretCotation() On Error Resume Next Application.OnTime Durée, "RecupCotation", , False End Sub
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
1 556
>
chrisnapoli
24 juin 2018 à 11:07
24 juin 2018 à 11:07
suggestion pour module1:
Option Explicit 'Public Durée As Date Public c As Long Public Const ndf = "CAC40,AEX,BEL20,PSI20" Sub recupcotation() Dim marches, marche, l As Integer, Durée As Date marches = Split(ndf, ",") For Each marche In marches With Sheets(marche) .Cells(12, c).Resize(120, 1) = .Range("A12:A131").Value 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 End With Next marche c = c + 1 If c >= 908 Then ArretCotation Else Durée = Now + TimeValue("00:01:00") Application.OnTime Durée, "RecupCotation" End If End Sub Private Sub ArretCotation() On Error Resume Next Application.OnTime 0, "RecupCotation", , False End Sub
re comment sais tu qu il ya 9928 colonnes et 5903 lignes-dans( TIMER SEUL) puisque des colonnes et lignes ont été supprimes
c'est seulement dans le fichier complet ou il y a tout, sur (CAC 40) que ce nombre est présent le FIchier TIMER SEUL est le même mais dégraissé en conséquence je ne comprends pourquoi si les feuilles lignes et colonnes supprimes ne sont plus présentes dans ce fichier elles sont comptabilisées
il ya actuellement sur chaque feuille de TIMER SEUL seulement 907 colonnes sur 131 lignes à chaque feuille et il y a 4 feuilles si ces colonnes et lignes ont été supprimes comment se fait il qu il soit si lourd
est ce parce que c'est une copie de CAC dégraissé???? c'est quand même étonnant parce que lorsque j ai fait les copies j ai enlevé les feuilles qui ne me servaient pas et les codes aussi il faut déjà résoudre cet énigme et après on verra pourquoi y a conflit entre les fichier et les graphes
en ce moment tourne le gros fichier CAC 40 ou il y a tout réuni statistiques graphes en temps réel et Timer)
il marche depuis 10 h ce matin et a part un peu de retard du timer sur l heure il n y a rien a signaler
c'est seulement dans le fichier complet ou il y a tout, sur (CAC 40) que ce nombre est présent le FIchier TIMER SEUL est le même mais dégraissé en conséquence je ne comprends pourquoi si les feuilles lignes et colonnes supprimes ne sont plus présentes dans ce fichier elles sont comptabilisées
il ya actuellement sur chaque feuille de TIMER SEUL seulement 907 colonnes sur 131 lignes à chaque feuille et il y a 4 feuilles si ces colonnes et lignes ont été supprimes comment se fait il qu il soit si lourd
est ce parce que c'est une copie de CAC dégraissé???? c'est quand même étonnant parce que lorsque j ai fait les copies j ai enlevé les feuilles qui ne me servaient pas et les codes aussi il faut déjà résoudre cet énigme et après on verra pourquoi y a conflit entre les fichier et les graphes
en ce moment tourne le gros fichier CAC 40 ou il y a tout réuni statistiques graphes en temps réel et Timer)
il marche depuis 10 h ce matin et a part un peu de retard du timer sur l heure il n y a rien a signaler
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
1 556
25 juin 2018 à 18:27
25 juin 2018 à 18:27
j'ai observé cela dans le fichier que tu as partagé récemment.
chrisnapoli
>
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
6 juil. 2018 à 10:15
6 juil. 2018 à 10:15
Bonjour
la premirere partie de mon logiciel est terminée
si tu veux voir le résultat ,tu te mets sur skype tu rentres ag81000 et je te fait voir
tu as il me semble le droit de voir puisque tu m 'as aidé grandement à le réaliser , et je t'en remercie chaleureusement
Bonne journée
la premirere partie de mon logiciel est terminée
si tu veux voir le résultat ,tu te mets sur skype tu rentres ag81000 et je te fait voir
tu as il me semble le droit de voir puisque tu m 'as aidé grandement à le réaliser , et je t'en remercie chaleureusement
Bonne journée
Bonjour
je reviens vers toi a nouveau
je suis entrain d'essayer de construire un graphe a chandelier j ai besoin que tu me dises de quelle maniere modifier mon TIMER 4 feuilles pour avoir le timer qui collent toutes les segondes'a la place de une minute
mon soucis est que"" toujours pareil tant que le cours d'ouverture n a pas ete donne il faut que le timer efface les cotations chaque valeur independement de l 'autre"""
deuxieme soucis c'est que 3600 secondes *par 8h30 de cotation cela fait 30600 colonnes
plus de colonnes que contient Excel alors va falloir trouver une solution(peut être coller les cotations dans le sens des lignes)???????
je reviens vers toi a nouveau
je suis entrain d'essayer de construire un graphe a chandelier j ai besoin que tu me dises de quelle maniere modifier mon TIMER 4 feuilles pour avoir le timer qui collent toutes les segondes'a la place de une minute
mon soucis est que"" toujours pareil tant que le cours d'ouverture n a pas ete donne il faut que le timer efface les cotations chaque valeur independement de l 'autre"""
deuxieme soucis c'est que 3600 secondes *par 8h30 de cotation cela fait 30600 colonnes
plus de colonnes que contient Excel alors va falloir trouver une solution(peut être coller les cotations dans le sens des lignes)???????
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
1 556
>
chrisnapoli
7 juil. 2018 à 14:00
7 juil. 2018 à 14:00
je comprends le soucis avec 30600 colonnes, mais pourquoi est-ce un soucis d'effacer sélectivement tant que le cours d'ouverture n'est pas connu? cela ne fonctionne pas?
copier dans le sens des lignes semble une bonne idée, mais il faudra modifier tout ton classeur et tout son code. c'est du boulot. pour qui?
copier dans le sens des lignes semble une bonne idée, mais il faudra modifier tout ton classeur et tout son code. c'est du boulot. pour qui?
Bonjour
ce nouveau fichier sera indépendant de l autre( le timer 4 feuilles) tournera toujours sur un autre ordinateur
les données que je vais coller ne sont pas les mêmes par ailleurs...
pour le moment j ai fait un serveur localhost] qui me recupere les données sur mon fichier Excel (alimente par les DDE) et qui fait tourner mes graphes sur le web en langage javascript
j attend de voir si c'est efficace et après je prendrais ma décision j aurais bien aimer faire tourner ça dans excel pour voir ce que cela donnait
en fait je pense pas qu il soit tres difficile de faire un autre timer en segonde et mettre les destinations dans le sens des lignes
je n ai aucunement l intention de toucher celui de 4 feuilles dabord parcequ il me sert pour tout autre chose qui est complètement indépendant de cette nouvelle solution et puis aussi parce que ça marche trop bien
je m en sert tous les jours il n ya pas une seconde de retard en fin de journée sur les 4 feuilles
Bonne soirée je vous dirais plus tard
ce nouveau fichier sera indépendant de l autre( le timer 4 feuilles) tournera toujours sur un autre ordinateur
les données que je vais coller ne sont pas les mêmes par ailleurs...
pour le moment j ai fait un serveur localhost] qui me recupere les données sur mon fichier Excel (alimente par les DDE) et qui fait tourner mes graphes sur le web en langage javascript
j attend de voir si c'est efficace et après je prendrais ma décision j aurais bien aimer faire tourner ça dans excel pour voir ce que cela donnait
en fait je pense pas qu il soit tres difficile de faire un autre timer en segonde et mettre les destinations dans le sens des lignes
je n ai aucunement l intention de toucher celui de 4 feuilles dabord parcequ il me sert pour tout autre chose qui est complètement indépendant de cette nouvelle solution et puis aussi parce que ça marche trop bien
je m en sert tous les jours il n ya pas une seconde de retard en fin de journée sur les 4 feuilles
Bonne soirée je vous dirais plus tard
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
1 556
9 juil. 2018 à 00:20
9 juil. 2018 à 00:20
je pense également pas compliqué de faire un nouveau timer qui agit toutes les secondes.
peut-être utile de prévoir quoi faire si le timer prend du retard et ne parvient pas à travaille chaque seconde.
peut-être utile de prévoir quoi faire si le timer prend du retard et ne parvient pas à travaille chaque seconde.
Bonjour
pourquoi penses tu que le timer va prendre du retard??(au premier fichier il y avait du retard parce qu il y avait un problème sur mon fichier
désormais il n y a pas une seconde de retard sur la journée (maintenant il est vrai que ça ne colle que chaque minute)
Ce Timer aurait 120 valeurs a copier dans le sens des lignes sur grosso modo 30600 lignes ce qui ferait 3 672 000 chiffres
pourquoi penses tu que le timer va prendre du retard??(au premier fichier il y avait du retard parce qu il y avait un problème sur mon fichier
désormais il n y a pas une seconde de retard sur la journée (maintenant il est vrai que ça ne colle que chaque minute)
Ce Timer aurait 120 valeurs a copier dans le sens des lignes sur grosso modo 30600 lignes ce qui ferait 3 672 000 chiffres
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
1 556
9 juil. 2018 à 10:43
9 juil. 2018 à 10:43
je ne sais pas si le timer va prendre du retard, je me prépare aux conséquences d'un retard éventuel.
Bonjour
je me sert du timer 4 feuilles depuis pas mal de temps tout fonctionne parfaitement
mais petit probleme j ai le timer qui travaille d'un cote seul et quand j ouvre l'autre fichier ou il y a le graphe qui tourne en temps reel ca me provoque des perturbations sur le fichier graphe ,de temps en temps j ai une colonne de liens DDE qui disparaît
je ne sais pas pourquoi le timer et le fichier du graphe sont en conflit des que j arrete le graphe alors mon timer colle a nouveau parfaitement
je me sert du timer 4 feuilles depuis pas mal de temps tout fonctionne parfaitement
mais petit probleme j ai le timer qui travaille d'un cote seul et quand j ouvre l'autre fichier ou il y a le graphe qui tourne en temps reel ca me provoque des perturbations sur le fichier graphe ,de temps en temps j ai une colonne de liens DDE qui disparaît
je ne sais pas pourquoi le timer et le fichier du graphe sont en conflit des que j arrete le graphe alors mon timer colle a nouveau parfaitement
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
1 556
12 juil. 2018 à 19:54
12 juil. 2018 à 19:54
une colonne qui disparaît, ou bien une colonne dans laquelle le timer n'enregistre pas les cotations? comme si le timer avait sauté une minute?
bonsoir
alors une colonne dans le fichier du timer dans lequel il n enregistre pas les cotations et une colonne ou disparaissent les liens dde sur l'autre fichier ou tourne le graphe au même instant
il est impossible de faire tourner correctement ls 2 fichiers en même temps
alors une colonne dans le fichier du timer dans lequel il n enregistre pas les cotations et une colonne ou disparaissent les liens dde sur l'autre fichier ou tourne le graphe au même instant
il est impossible de faire tourner correctement ls 2 fichiers en même temps
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
1 556
12 juil. 2018 à 23:16
12 juil. 2018 à 23:16
je pense avoir une idée du fonctionnement du timer. j'imagine qu'il copie les cotations vers une colonne de son propre fichier, en fonction du moment.
j'imagine aussi que les liens dde sont dans dans le fichier du timer.
je ne comprends pas vraiment l'idée de disparition des liens dde dans l'autre fichier.
j'ai besoin de comprendre l'ensemble pour me faire une idée de qui suspecter, de qui corriger. je suppose qu'à un moment donné, tout le monde est trop occupé, et les actions ne se produisent pas dans l'ordre attendu.
j'imagine aussi que les liens dde sont dans dans le fichier du timer.
je ne comprends pas vraiment l'idée de disparition des liens dde dans l'autre fichier.
j'ai besoin de comprendre l'ensemble pour me faire une idée de qui suspecter, de qui corriger. je suppose qu'à un moment donné, tout le monde est trop occupé, et les actions ne se produisent pas dans l'ordre attendu.
Bonjour
dhabitude j utilise le timer 4 feuilles qui fonctionnent parfaitement hors depuis 2 jours j utilise le timer une feuille parceque je ne m interresse qu' a un seul marché ;je ne sais pas pourquoi la procédure des OK ne se fait plus
je te mets le fichier tu verras y a deux macros une qui te mènera vers les liens dde et l 'autre vers les heures je pense que ce conflit comme tu dits viens que un fichier est occupé sur une tache (celui du graphe marche en temps reel chaque fois qu une cotation change ; et le timer lui est réglée sur une minute
qu est ce qui fait que les fichiers interagissent l un sur l autre?????
https://www.cjoint.com/c/HGnmkiewmTq
dhabitude j utilise le timer 4 feuilles qui fonctionnent parfaitement hors depuis 2 jours j utilise le timer une feuille parceque je ne m interresse qu' a un seul marché ;je ne sais pas pourquoi la procédure des OK ne se fait plus
je te mets le fichier tu verras y a deux macros une qui te mènera vers les liens dde et l 'autre vers les heures je pense que ce conflit comme tu dits viens que un fichier est occupé sur une tache (celui du graphe marche en temps reel chaque fois qu une cotation change ; et le timer lui est réglée sur une minute
qu est ce qui fait que les fichiers interagissent l un sur l autre?????
https://www.cjoint.com/c/HGnmkiewmTq
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
1 556
>
chrisnapoli
13 juil. 2018 à 18:02
13 juil. 2018 à 18:02
merci de recommencer ton explication en donnant chaque fois le nom de chaque élément (macro et fichier).
quels sont les liens entre les deux fichiers? (à part le fait qu'ils occupent tous les deux le même Excel, je suppose)
quels sont les liens entre les deux fichiers? (à part le fait qu'ils occupent tous les deux le même Excel, je suppose)
bonsoir
le fichier c'est le fichier que j ai envoyé Timer cac40 seul.... les macros sont Allerheures et quand tu es sur la partie ou se collent les heures tuas un autre bouton macro allerdde tu verras les liens dde vont de K12 :O51
l autre fichier c'est c graphe webbis c'est la ou tourne un graphe seul avec les liens DDE chaque fichier independement marche parfaitement mais des quon les mets ensemble ca ne marche plus
le fichier c'est le fichier que j ai envoyé Timer cac40 seul.... les macros sont Allerheures et quand tu es sur la partie ou se collent les heures tuas un autre bouton macro allerdde tu verras les liens dde vont de K12 :O51
l autre fichier c'est c graphe webbis c'est la ou tourne un graphe seul avec les liens DDE chaque fichier independement marche parfaitement mais des quon les mets ensemble ca ne marche plus
yg_be
Messages postés
23363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2024
1 556
>
chrisnapoli
13 juil. 2018 à 21:25
13 juil. 2018 à 21:25
quels sont les liens entre les deux fichiers? (à part le fait qu'ils occupent tous les deux le même Excel, je suppose)
24 juin 2018 à 12:19
je viens d’essayer ton code pour TIMER SEUL ('4feuilles ) avec le bitcoin donc j ai modifié l heure puis j ai ouvert
les cotations tournaient en permanence avant que le timer se mette en route puis ça c'est mis a coller directement a l heure programmée dans la colonne 09:01:00 mais les OK sont toujours inscrit dans la colonne C?????
je ne peux pas juger si la procédure ok fonctionne parcequ on est pas dans une configuration normale dhabitude aucun cours n'est active au démarrage du fichier puisque l'ouverture des marches se fait a 09:00 apres il ya autre chose
lorsque je ferme le document il y a une fenêtre qui s'ouvre ou est inscrit erreur de compilation Sub ou Function non définie dans le code qui apparait dans workbook il ya call arrêt cotation en bleu qui s'affiche
j ai apres ouvert l autre fichier que tu m avais fait TIMER CAC40 seul la aussi avec le bitcoin donc les cotations tournaient au moment ou j ai ouvert le dossier mais la par contre aucun OK d'inscrit sur la colonne C a part ca le timer lui aussi collait parfaitement je te mets le code qui buggait a la fermeture sur TIMER SEUL
24 juin 2018 à 13:18
24 juin 2018 à 13:23
24 juin 2018 à 13:53
effectivement les OK se sont effaces et les cotations en D12:H51 se sont colles a la fermeture reste plus qu a attendre demain pour voir si cela marche (mais alors je pige toujours pas ; si ces ok s affichent seulement quand les cotations sont différentes ,ils devraient des que les cours tournent etre sans arret dans la colonne C?????
reste plus que maintenant a solutionner le problème des OK sur l autre code afin d’éliminer le problème du sablier permanent
après j aurais je pense tout finit me restera que le mettre en java script pour le Web
ah j oubliais
a moins que tu sois capable de me résoudre mon problème de graphe que je t avais envoyé un jour
ce graphe marchait parfaitement
il ya du y avoir une mauvaise manip
https://cjoint.com/c/HFylZ7bXxMt
24 juin 2018 à 15:21
pour le sablier permanent: as-tu testé le code proposé en #119?
je regarde si je suis inspiré pour le problème de graphe