OVH Cloud OVH Cloud

Rectifier une formule

23 réponses
Avatar
bouak
Bonjour,

Pouvez-vous m’aider à résoudre ce problème MERCI.

Après avoir cliquer en B1 un chiffre que j’ai inscris, ça marche super.

Mais lorsque j’importe un chiffre en B1 (correspondant à une formule par
lien dde), lorsqu’elle change ça ne marche pas.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$1" Then
If Cells([A65000].End(xlUp).Row, 1) = 0 Then
[A1] = [B1]: Exit Sub
End If
Cells([A65000].End(xlUp).Row + 1, 1) = [B1]
End If
End Sub

--
bouak

10 réponses

1 2 3
Avatar
LSteph
Bonsoir,
Cela s'arrange donc!
Bien , tu as appliqué les codes en Private sub dans deux feuilles, c'est un
choix, peut-être...
il en résulte que l'initialisation d'une seule variable Publique dans le
thisworkbook suffit ou non ou
bien en prévoir 2 une pour Feuil1 une pour feuil3 , selon le besoin.

A+

lSteph
"bouak" a écrit dans le message de news:

Bonjour,

Ca y est j'ai compris le cheminement suite à tes précisions pas à pas...

J'ai rectifié, en espérant ... comme tu me l'a indiqué...
Le nouveau classeur rectifié est sur http://cjoint.com/?bhqqFNoaas

Ne faut il rien ajouter à ThisWorkbook tenant compte du code Feuil3 que
j'ai
renommée gbp

Je t'avais bien indiqué que j'étais nul... c'est ma PREMIERE fois en VBA
...

Peux-tu m'aider pour ma demande qui est formulée à la feuille gbp.

Merci et bon Week end


Merci et Bon Week end
--
bouak


Bonsoir Bouak,
J'ai bien vérifier tout et ok.


Aie Aie Ben non! d'après ce que je vois dans l'exemple de ton nouveau fil
pas vraiment
une Feuil3 est nommée feuil1
Dans le thisworkbook tu n'as rien mis ....
le modulede la feuil1que tu as nommée "gbp usd" contient tout le code
dont
une
"private sub thisworkbook" qui ne veut rien dire à la place (je n'ai pas
écrit cela)
....bon....pas grave!
........

quand tu es dans excel avec ton classeur ouvert fais alt+f11 pour ouvrir
VBE
sur ta gauche une fenêtre devrait afficher l'explorateur de projet sinon
fais Ctrl+r
Tu devrais y trouver le nom de ton classeur en tant que projet,
dedans
doubleclic sur thisworkbook son module s'ouvre à droite y coller ceci

'''***dans le thisworkbook
Public fiXb

Private Sub Workbook_Open()
fiXb = Feuil1.[b1]
End Sub
'''***

'Ensuite dans le code de Feuil1 celle qui concerne b1 tu garde juste
ceci
et rien d'autre:

'''***dans le code de feuil1
Private Sub Worksheet_Activate()
fiXb = [b1]
End Sub

Private Sub Worksheet_Calculate()
If fiXb = [b1].Value Then Exit Sub
Application.EnableEvents = False
If Cells([A65000].End(xlUp).Row, 1) = 0 Then
[A1] = [b1]
Else
Cells([A65000].End(xlUp).Row + 1, 1) = [b1]
End If
fiXb = [b1]
Application.EnableEvents = True
End Sub
''''*************************

'profites en également renommer ta feuille3 feuil3 au lieu de feuil1, ce
sera plus clair
'cela ne bégaiera plus dès que tu aura reouvert ton classeur ou
déselectionné et sélectionné Feuil1
'...à suivre

'Salutations.

lSteph
'pour le reste je crois que Daniel t'a répondu sur l'autre fil!






"bouak" a écrit dans le message de
news:

Bonjour LSteph,

J'ai bien vérifier tout et ok.

Pour tester, dans la cellule d'origine d'importation j'ai mis un nombre
fixe
et il y a toujours bégaiement.

N'est il pas possible que ce soit donc à l'origine de la plage du flux
importé qui même si le nombre reste le même il est renouvellé toutes
les X
secondes ???

Encore merci.

J'ai un autre prob, peux-tu encore m'aider...

En Feuille data colonne A s'inscrivent automatiquement des nombres
différents dans chaque cellule à partir de A55 (A55 = 150, A56 = 118,
A57
5, le prochain s'inscrit en A58, etc jusqu'à A65000.

Au départ, par comparaison au nombre inscrit en A55, inscrire en A50 le
prochain nombre extrême dès qu'il est <>6 et dès qu'il diminue de 6
(positivement ou négativement).
Ainsi de suite en comparant le nouveau nombre extrême à chaque dernier
nombre extrême en A50.

Les variables sont portés dans :

Feuille data colonne A Cellule 50 = nombre extrême et de comparaison
Feuille data colonne A Cellule 51 = prochain nombre extrême dès <> 6
Feuille data colonne A Cellule 52 = et dès > 6
Feuille data colonne A Cellule de 55 inscription automatique des
nombres
Feuille data colonne A Cellule à 65000 inscription automatique des
nombres

Ou tout autre que tu juges utile.


Ca s'appelle abuser...

Merci
--
bouak



Bonjour Bouak,
????
Par contre le nombre que j'importe en $B$1, se répète plusieurs fois
.....

Désolé de venir encore t'importuner.
;o) pas dutout

......

En mettant comme précisé , uniquement dans le thisworkbook
la définition de la variable par rapport à Feuil1!b1 et la procèdure
_open.,
puis dans le code de "Feuil1", exclusivement les proc _calculate et
_activate,
je n'ai pas ce bégaiement.

Explication du code:

'''***dans le thisworkbook
Public fiXb ' variable publique(accessible aux autres modules)

Private Sub Workbook_Open()
'à l'ouverture du classeur
fiXb = Feuil1.[b1]
'la variable prend valeur de b1 de Feuil1
End Sub
'''***
'''***dans le code de feuil1
Private Sub Worksheet_Activate()
'qd on active feuil1, au cas où aussi
fiXb = [b1]
'la variable prend valeur de b1 de Feuil1
End Sub

Private Sub Worksheet_Calculate()
'qd un calcul intervient dans feuil1
If fiXb = [b1].Value Then Exit Sub
'si la variable reste égale à b1 , on sort de la macro
Application.EnableEvents = False
'désactivation des événements (pour opèrer sans les relancer)
If Cells([A65000].End(xlUp).Row, 1) = 0 Then
'si la 1ère cell rencontrée en colonneA en partant du bas est égale à
0
[A1] = [b1]
'a1 prend valeur de b1
Else
'sinon la 1ère cell rencontrée en colonneA en partant du bas
Cells([A65000].End(xlUp).Row + 1, 1) = [b1]
'prend valeur de b1
End If
fiXb = [b1]
'on met dans la variable la nouvelle valeur de b1
Application.EnableEvents = True
'réactivation des événements.
End Sub
''''*************************
'lSteph
"bouak" a écrit dans le message de
news:

Bonsoir LSteph,

Encore merci pour ta précision ça marche super.

Par contre le nombre que j'importe en $B$1, ce répète plusieurs fois
alors
qu'il ne change pas sur la feulle d'origine.

Désolé de venir encore t'importuner.

Bonne soirée
bouak



Bonsoir,
oui enlever le msgbox et donc ceci suffit (pas besoins de+ mais
mettre
dans
les bons modules)

'''***dans le thisworkbook
Public fiXb

Private Sub Workbook_Open()
fiXb = Feuil1.[b1]
End Sub
'''***
'''***dans le code de feuil1
Private Sub Worksheet_Activate()
fiXb = [b1]
End Sub

Private Sub Worksheet_Calculate()
If fiXb = [b1].Value Then Exit Sub
Application.EnableEvents = False
If Cells([A65000].End(xlUp).Row, 1) = 0 Then
[A1] = [b1]
Else
Cells([A65000].End(xlUp).Row + 1, 1) = [b1]
End If
fiXb = [b1]
Application.EnableEvents = True
End Sub
''''*************************


"bouak" a écrit dans le message
de
news:

LSteph Bonjour,

Merci BIEN pour ta précieuse aide,

Ca fonctionne bien sauf que j'ai une petite fenêtre qui s'ouvre
et à
chaque
nouveau chiffre et je suis obligé de cliquer dessus ce qui n'est
absolument
pas pratique car beaucoup de nouveaux chiffres.

As-tu une solution... (STP peux-tu vérifier ci-dessous si j'ai
pas
merdé...), je te précise que je n'ai aucune connaissance de
programmation,
j'ai donc exactement reporté comme ci-dessous dans feuil1.

Tu m'indiques

« Pour la condition du 0 dès qu'un 0 est saisi le dernier
chiffre
de
la
colonne devient 0.Dès cet instant, c'est tout le temps a1 qui va
récupèrer
la
valeur de b1
Mais c'est toi qui vois, j'ai pas bien compris!. »

Pour moi ce qu'il me faut c'est simplement que chaque nouveau
chiffre
en
B1
s'inscrive dans la colonne A, au dessous du précédent qui reste
inscrit
ex.

B1 = 150 A1 = 150
B1 = 180 A2 = 180
B1 = 140 A3 = 140 ainsi desuite

Encore Merci

Bouak
___________________________________________

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$B$1" Then Exit Sub

Application.EnableEvents = False
If Cells([A65000].End(xlUp).Row, 1) = 0 Then
[A1] = [b1]
Else
Cells([A65000].End(xlUp).Row + 1, 1) = [b1]
End If

Application.EnableEvents = True
End Sub
_______________________________________________

Private Sub Worksheet_Calculate()
If fiXb = [b1].Value Then Exit Sub
Application.EnableEvents = False
If Cells([A65000].End(xlUp).Row, 1) = 0 Then
[A1] = [b1]
Else
Cells([A65000].End(xlUp).Row + 1, 1) = [b1]
End If
fiXb = [b1]
Application.EnableEvents = True
MsgBox fiXb
End Sub
_______________________________________________________

Private Sub thisworkbook()
Public fiXb

Private Sub Workbook_Open()
fiXb = feuil1.[b1]














Avatar
bouak
Bonsoir,

Non c'est pas un choix, c'est le non savoir d'intégrer les 2 en une...

Suite à ton message je viens d'intégrer à ThisWorkbook

***********
Public fiXb
__________________________

Private Sub Workbook_Open()
fiXb = Feuil1.[b1]
fiXb = Feuil3.[b1]

End Sub
*************

Ceci est-il la bonne solution.

Encore merci de me guider

A+

--
bouak



Bonsoir,
Cela s'arrange donc!
Bien , tu as appliqué les codes en Private sub dans deux feuilles, c'est un
choix, peut-être...
il en résulte que l'initialisation d'une seule variable Publique dans le
thisworkbook suffit ou non ou
bien en prévoir 2 une pour Feuil1 une pour feuil3 , selon le besoin.

A+

lSteph
"bouak" a écrit dans le message de news:

Bonjour,

Ca y est j'ai compris le cheminement suite à tes précisions pas à pas...

J'ai rectifié, en espérant ... comme tu me l'a indiqué...
Le nouveau classeur rectifié est sur http://cjoint.com/?bhqqFNoaas

Ne faut il rien ajouter à ThisWorkbook tenant compte du code Feuil3 que
j'ai
renommée gbp

Je t'avais bien indiqué que j'étais nul... c'est ma PREMIERE fois en VBA
...

Peux-tu m'aider pour ma demande qui est formulée à la feuille gbp.

Merci et bon Week end


Merci et Bon Week end
--
bouak


Bonsoir Bouak,
J'ai bien vérifier tout et ok.


Aie Aie Ben non! d'après ce que je vois dans l'exemple de ton nouveau fil
pas vraiment
une Feuil3 est nommée feuil1
Dans le thisworkbook tu n'as rien mis ....
le modulede la feuil1que tu as nommée "gbp usd" contient tout le code
dont
une
"private sub thisworkbook" qui ne veut rien dire à la place (je n'ai pas
écrit cela)
....bon....pas grave!
........

quand tu es dans excel avec ton classeur ouvert fais alt+f11 pour ouvrir
VBE
sur ta gauche une fenêtre devrait afficher l'explorateur de projet sinon
fais Ctrl+r
Tu devrais y trouver le nom de ton classeur en tant que projet,
dedans
doubleclic sur thisworkbook son module s'ouvre à droite y coller ceci

'''***dans le thisworkbook
Public fiXb

Private Sub Workbook_Open()
fiXb = Feuil1.[b1]
End Sub
'''***

'Ensuite dans le code de Feuil1 celle qui concerne b1 tu garde juste
ceci
et rien d'autre:

'''***dans le code de feuil1
Private Sub Worksheet_Activate()
fiXb = [b1]
End Sub

Private Sub Worksheet_Calculate()
If fiXb = [b1].Value Then Exit Sub
Application.EnableEvents = False
If Cells([A65000].End(xlUp).Row, 1) = 0 Then
[A1] = [b1]
Else
Cells([A65000].End(xlUp).Row + 1, 1) = [b1]
End If
fiXb = [b1]
Application.EnableEvents = True
End Sub
''''*************************

'profites en également renommer ta feuille3 feuil3 au lieu de feuil1, ce
sera plus clair
'cela ne bégaiera plus dès que tu aura reouvert ton classeur ou
déselectionné et sélectionné Feuil1
'...à suivre

'Salutations.

lSteph
'pour le reste je crois que Daniel t'a répondu sur l'autre fil!






"bouak" a écrit dans le message de
news:

Bonjour LSteph,

J'ai bien vérifier tout et ok.

Pour tester, dans la cellule d'origine d'importation j'ai mis un nombre
fixe
et il y a toujours bégaiement.

N'est il pas possible que ce soit donc à l'origine de la plage du flux
importé qui même si le nombre reste le même il est renouvellé toutes
les X
secondes ???

Encore merci.

J'ai un autre prob, peux-tu encore m'aider...

En Feuille data colonne A s'inscrivent automatiquement des nombres
différents dans chaque cellule à partir de A55 (A55 = 150, A56 = 118,
A57
5, le prochain s'inscrit en A58, etc jusqu'à A65000.

Au départ, par comparaison au nombre inscrit en A55, inscrire en A50 le
prochain nombre extrême dès qu'il est <>6 et dès qu'il diminue de 6
(positivement ou négativement).
Ainsi de suite en comparant le nouveau nombre extrême à chaque dernier
nombre extrême en A50.

Les variables sont portés dans :

Feuille data colonne A Cellule 50 = nombre extrême et de comparaison
Feuille data colonne A Cellule 51 = prochain nombre extrême dès <> 6
Feuille data colonne A Cellule 52 = et dès > 6
Feuille data colonne A Cellule de 55 inscription automatique des
nombres
Feuille data colonne A Cellule à 65000 inscription automatique des
nombres

Ou tout autre que tu juges utile.


Ca s'appelle abuser...

Merci
--
bouak



Bonjour Bouak,
????
Par contre le nombre que j'importe en $B$1, se répète plusieurs fois
.....

Désolé de venir encore t'importuner.
;o) pas dutout

......

En mettant comme précisé , uniquement dans le thisworkbook
la définition de la variable par rapport à Feuil1!b1 et la procèdure
_open.,
puis dans le code de "Feuil1", exclusivement les proc _calculate et
_activate,
je n'ai pas ce bégaiement.

Explication du code:

'''***dans le thisworkbook
Public fiXb ' variable publique(accessible aux autres modules)

Private Sub Workbook_Open()
'à l'ouverture du classeur
fiXb = Feuil1.[b1]
'la variable prend valeur de b1 de Feuil1
End Sub
'''***
'''***dans le code de feuil1
Private Sub Worksheet_Activate()
'qd on active feuil1, au cas où aussi
fiXb = [b1]
'la variable prend valeur de b1 de Feuil1
End Sub

Private Sub Worksheet_Calculate()
'qd un calcul intervient dans feuil1
If fiXb = [b1].Value Then Exit Sub
'si la variable reste égale à b1 , on sort de la macro
Application.EnableEvents = False
'désactivation des événements (pour opèrer sans les relancer)
If Cells([A65000].End(xlUp).Row, 1) = 0 Then
'si la 1ère cell rencontrée en colonneA en partant du bas est égale à
0
[A1] = [b1]
'a1 prend valeur de b1
Else
'sinon la 1ère cell rencontrée en colonneA en partant du bas
Cells([A65000].End(xlUp).Row + 1, 1) = [b1]
'prend valeur de b1
End If
fiXb = [b1]
'on met dans la variable la nouvelle valeur de b1
Application.EnableEvents = True
'réactivation des événements.
End Sub
''''*************************
'lSteph
"bouak" a écrit dans le message de
news:

Bonsoir LSteph,

Encore merci pour ta précision ça marche super.

Par contre le nombre que j'importe en $B$1, ce répète plusieurs fois
alors
qu'il ne change pas sur la feulle d'origine.

Désolé de venir encore t'importuner.

Bonne soirée
bouak



Bonsoir,
oui enlever le msgbox et donc ceci suffit (pas besoins de+ mais
mettre
dans
les bons modules)

'''***dans le thisworkbook
Public fiXb

Private Sub Workbook_Open()
fiXb = Feuil1.[b1]
End Sub
'''***
'''***dans le code de feuil1
Private Sub Worksheet_Activate()
fiXb = [b1]
End Sub

Private Sub Worksheet_Calculate()
If fiXb = [b1].Value Then Exit Sub
Application.EnableEvents = False
If Cells([A65000].End(xlUp).Row, 1) = 0 Then
[A1] = [b1]
Else
Cells([A65000].End(xlUp).Row + 1, 1) = [b1]
End If
fiXb = [b1]
Application.EnableEvents = True
End Sub
''''*************************


"bouak" a écrit dans le message
de
news:

LSteph Bonjour,

Merci BIEN pour ta précieuse aide,

Ca fonctionne bien sauf que j'ai une petite fenêtre qui s'ouvre
et à
chaque
nouveau chiffre et je suis obligé de cliquer dessus ce qui n'est
absolument
pas pratique car beaucoup de nouveaux chiffres.

As-tu une solution... (STP peux-tu vérifier ci-dessous si j'ai
pas
merdé...), je te précise que je n'ai aucune connaissance de
programmation,
j'ai donc exactement reporté comme ci-dessous dans feuil1.

Tu m'indiques

« Pour la condition du 0 dès qu'un 0 est saisi le dernier
chiffre
de
la
colonne devient 0.Dès cet instant, c'est tout le temps a1 qui va
récupèrer
la
valeur de b1
Mais c'est toi qui vois, j'ai pas bien compris!. »

















Avatar
LSteph
Re,
S'il t'en faut 2 cela ne peut être la même

'******
Public f1Xb
Public f3Xb
Private Sub Workbook_Open()
f1Xb = Feuil1.[b1]
f3Xb = Feuil3.[b1]
end sub
'*******

Puis remplacer, respectivement
dans les private sub de chaque feuille.

lSteph

"bouak" a écrit dans le message de news:

Bonsoir,

Non c'est pas un choix, c'est le non savoir d'intégrer les 2 en une...

Suite à ton message je viens d'intégrer à ThisWorkbook

***********
Public fiXb
__________________________


End Sub

*************

Ceci est-il la bonne solution.

Encore merci de me guider

A+

--
bouak



Bonsoir,
Cela s'arrange donc!
Bien , tu as appliqué les codes en Private sub dans deux feuilles, c'est
un
choix, peut-être...
il en résulte que l'initialisation d'une seule variable Publique dans le
thisworkbook suffit ou non ou
bien en prévoir 2 une pour Feuil1 une pour feuil3 , selon le besoin.

A+

lSteph
"bouak" a écrit dans le message de
news:

Bonjour,

Ca y est j'ai compris le cheminement suite à tes précisions pas à
pas...

J'ai rectifié, en espérant ... comme tu me l'a indiqué...
Le nouveau classeur rectifié est sur http://cjoint.com/?bhqqFNoaas

Ne faut il rien ajouter à ThisWorkbook tenant compte du code Feuil3 que
j'ai
renommée gbp

Je t'avais bien indiqué que j'étais nul... c'est ma PREMIERE fois en
VBA
...

Peux-tu m'aider pour ma demande qui est formulée à la feuille gbp.

Merci et bon Week end


Merci et Bon Week end
--
bouak


Bonsoir Bouak,
J'ai bien vérifier tout et ok.


Aie Aie Ben non! d'après ce que je vois dans l'exemple de ton nouveau
fil
pas vraiment
une Feuil3 est nommée feuil1
Dans le thisworkbook tu n'as rien mis ....
le modulede la feuil1que tu as nommée "gbp usd" contient tout le code
dont
une
"private sub thisworkbook" qui ne veut rien dire à la place (je n'ai
pas
écrit cela)
....bon....pas grave!
........

quand tu es dans excel avec ton classeur ouvert fais alt+f11 pour
ouvrir
VBE
sur ta gauche une fenêtre devrait afficher l'explorateur de projet
sinon
fais Ctrl+r
Tu devrais y trouver le nom de ton classeur en tant que projet,
dedans
doubleclic sur thisworkbook son module s'ouvre à droite y coller
ceci

'''***dans le thisworkbook
Public fiXb

Private Sub Workbook_Open()
fiXb = Feuil1.[b1]
End Sub
'''***

'Ensuite dans le code de Feuil1 celle qui concerne b1 tu garde juste
ceci
et rien d'autre:

'''***dans le code de feuil1
Private Sub Worksheet_Activate()
fiXb = [b1]
End Sub

Private Sub Worksheet_Calculate()
If fiXb = [b1].Value Then Exit Sub
Application.EnableEvents = False
If Cells([A65000].End(xlUp).Row, 1) = 0 Then
[A1] = [b1]
Else
Cells([A65000].End(xlUp).Row + 1, 1) = [b1]
End If
fiXb = [b1]
Application.EnableEvents = True
End Sub
''''*************************

'profites en également renommer ta feuille3 feuil3 au lieu de feuil1,
ce
sera plus clair
'cela ne bégaiera plus dès que tu aura reouvert ton classeur ou
déselectionné et sélectionné Feuil1
'...à suivre

'Salutations.

lSteph
'pour le reste je crois que Daniel t'a répondu sur l'autre fil!






"bouak" a écrit dans le message de
news:

Bonjour LSteph,

J'ai bien vérifier tout et ok.

Pour tester, dans la cellule d'origine d'importation j'ai mis un
nombre
fixe
et il y a toujours bégaiement.

N'est il pas possible que ce soit donc à l'origine de la plage du
flux
importé qui même si le nombre reste le même il est renouvellé toutes
les X
secondes ???

Encore merci.

J'ai un autre prob, peux-tu encore m'aider...

En Feuille data colonne A s'inscrivent automatiquement des nombres
différents dans chaque cellule à partir de A55 (A55 = 150, A56 =
118,
A57
5, le prochain s'inscrit en A58, etc jusqu'à A65000.

Au départ, par comparaison au nombre inscrit en A55, inscrire en A50
le
prochain nombre extrême dès qu'il est <>6 et dès qu'il diminue de 6
(positivement ou négativement).
Ainsi de suite en comparant le nouveau nombre extrême à chaque
dernier
nombre extrême en A50.

Les variables sont portés dans :

Feuille data colonne A Cellule 50 = nombre extrême et de comparaison
Feuille data colonne A Cellule 51 = prochain nombre extrême dès <> 6
Feuille data colonne A Cellule 52 = et dès > 6
Feuille data colonne A Cellule de 55 inscription automatique des
nombres
Feuille data colonne A Cellule à 65000 inscription automatique des
nombres

Ou tout autre que tu juges utile.


Ca s'appelle abuser...

Merci
--
bouak



Bonjour Bouak,
????
Par contre le nombre que j'importe en $B$1, se répète plusieurs
fois
.....

Désolé de venir encore t'importuner.
;o) pas dutout

......

En mettant comme précisé , uniquement dans le thisworkbook
la définition de la variable par rapport à Feuil1!b1 et la
procèdure
_open.,
puis dans le code de "Feuil1", exclusivement les proc _calculate et
_activate,
je n'ai pas ce bégaiement.

Explication du code:

'''***dans le thisworkbook
Public fiXb ' variable publique(accessible aux autres modules)

Private Sub Workbook_Open()
'à l'ouverture du classeur
fiXb = Feuil1.[b1]
'la variable prend valeur de b1 de Feuil1
End Sub
'''***
'''***dans le code de feuil1
Private Sub Worksheet_Activate()
'qd on active feuil1, au cas où aussi
fiXb = [b1]
'la variable prend valeur de b1 de Feuil1
End Sub

Private Sub Worksheet_Calculate()
'qd un calcul intervient dans feuil1
If fiXb = [b1].Value Then Exit Sub
'si la variable reste égale à b1 , on sort de la macro
Application.EnableEvents = False
'désactivation des événements (pour opèrer sans les relancer)
If Cells([A65000].End(xlUp).Row, 1) = 0 Then
'si la 1ère cell rencontrée en colonneA en partant du bas est
égale à
0
[A1] = [b1]
'a1 prend valeur de b1
Else
'sinon la 1ère cell rencontrée en colonneA en partant du bas
Cells([A65000].End(xlUp).Row + 1, 1) = [b1]
'prend valeur de b1
End If
fiXb = [b1]
'on met dans la variable la nouvelle valeur de b1
Application.EnableEvents = True
'réactivation des événements.
End Sub
''''*************************
'lSteph
"bouak" a écrit dans le message
de
news:

Bonsoir LSteph,

Encore merci pour ta précision ça marche super.

Par contre le nombre que j'importe en $B$1, ce répète plusieurs
fois
alors
qu'il ne change pas sur la feulle d'origine.

Désolé de venir encore t'importuner.

Bonne soirée
bouak



Bonsoir,
oui enlever le msgbox et donc ceci suffit (pas besoins de+ mais
mettre
dans
les bons modules)

'''***dans le thisworkbook
Public fiXb

Private Sub Workbook_Open()
fiXb = Feuil1.[b1]
End Sub
'''***
'''***dans le code de feuil1
Private Sub Worksheet_Activate()
fiXb = [b1]
End Sub

Private Sub Worksheet_Calculate()
If fiXb = [b1].Value Then Exit Sub
Application.EnableEvents = False
If Cells([A65000].End(xlUp).Row, 1) = 0 Then
[A1] = [b1]
Else
Cells([A65000].End(xlUp).Row + 1, 1) = [b1]
End If
fiXb = [b1]
Application.EnableEvents = True
End Sub
''''*************************


"bouak" a écrit dans le
message
de
news:

LSteph Bonjour,

Merci BIEN pour ta précieuse aide,

Ca fonctionne bien sauf que j'ai une petite fenêtre qui
s'ouvre
et à
chaque
nouveau chiffre et je suis obligé de cliquer dessus ce qui
n'est
absolument
pas pratique car beaucoup de nouveaux chiffres.

As-tu une solution... (STP peux-tu vérifier ci-dessous si
j'ai
pas
merdé...), je te précise que je n'ai aucune connaissance de
programmation,
j'ai donc exactement reporté comme ci-dessous dans feuil1.

Tu m'indiques

« Pour la condition du 0 dès qu'un 0 est saisi le dernier
chiffre
de
la
colonne devient 0.Dès cet instant, c'est tout le temps a1 qui
va
récupèrer
la
valeur de b1
Mais c'est toi qui vois, j'ai pas bien compris!. »



















Avatar
bouak
Bonsoir LSteph,

J'attends demain de recevoir le flux en temps réel afin de savoir si ça
marche et ensuite s'il y a lieu d'intégrer ta formule

Merci bien et Bonne soirée.
--
bouak



Re,
S'il t'en faut 2 cela ne peut être la même

'******
Public f1Xb
Public f3Xb
Private Sub Workbook_Open()
f1Xb = Feuil1.[b1]
f3Xb = Feuil3.[b1]
end sub
'*******

Puis remplacer, respectivement
dans les private sub de chaque feuille.

lSteph

"bouak" a écrit dans le message de news:

Bonsoir,

Non c'est pas un choix, c'est le non savoir d'intégrer les 2 en une...

Suite à ton message je viens d'intégrer à ThisWorkbook

***********
Public fiXb
__________________________


End Sub

*************

Ceci est-il la bonne solution.

Encore merci de me guider

A+

--
bouak



Bonsoir,
Cela s'arrange donc!
Bien , tu as appliqué les codes en Private sub dans deux feuilles, c'est
un
choix, peut-être...
il en résulte que l'initialisation d'une seule variable Publique dans le
thisworkbook suffit ou non ou
bien en prévoir 2 une pour Feuil1 une pour feuil3 , selon le besoin.

A+

lSteph
"bouak" a écrit dans le message de
news:

Bonjour,

Ca y est j'ai compris le cheminement suite à tes précisions pas à
pas...

J'ai rectifié, en espérant ... comme tu me l'a indiqué...
Le nouveau classeur rectifié est sur http://cjoint.com/?bhqqFNoaas

Ne faut il rien ajouter à ThisWorkbook tenant compte du code Feuil3 que
j'ai
renommée gbp

Je t'avais bien indiqué que j'étais nul... c'est ma PREMIERE fois en
VBA
...

Peux-tu m'aider pour ma demande qui est formulée à la feuille gbp.

Merci et bon Week end


Merci et Bon Week end
--
bouak


Bonsoir Bouak,
J'ai bien vérifier tout et ok.


Aie Aie Ben non! d'après ce que je vois dans l'exemple de ton nouveau
fil
pas vraiment
une Feuil3 est nommée feuil1
Dans le thisworkbook tu n'as rien mis ....
le modulede la feuil1que tu as nommée "gbp usd" contient tout le code
dont
une
"private sub thisworkbook" qui ne veut rien dire à la place (je n'ai
pas
écrit cela)
....bon....pas grave!
........

quand tu es dans excel avec ton classeur ouvert fais alt+f11 pour
ouvrir
VBE
sur ta gauche une fenêtre devrait afficher l'explorateur de projet
sinon
fais Ctrl+r
Tu devrais y trouver le nom de ton classeur en tant que projet,
dedans
doubleclic sur thisworkbook son module s'ouvre à droite y coller
ceci

'''***dans le thisworkbook
Public fiXb

Private Sub Workbook_Open()
fiXb = Feuil1.[b1]
End Sub
'''***

'Ensuite dans le code de Feuil1 celle qui concerne b1 tu garde juste
ceci
et rien d'autre:

'''***dans le code de feuil1
Private Sub Worksheet_Activate()
fiXb = [b1]
End Sub

Private Sub Worksheet_Calculate()
If fiXb = [b1].Value Then Exit Sub
Application.EnableEvents = False
If Cells([A65000].End(xlUp).Row, 1) = 0 Then
[A1] = [b1]
Else
Cells([A65000].End(xlUp).Row + 1, 1) = [b1]
End If
fiXb = [b1]
Application.EnableEvents = True
End Sub
''''*************************

'profites en également renommer ta feuille3 feuil3 au lieu de feuil1,
ce
sera plus clair
'cela ne bégaiera plus dès que tu aura reouvert ton classeur ou
déselectionné et sélectionné Feuil1
'...à suivre

'Salutations.

lSteph
'pour le reste je crois que Daniel t'a répondu sur l'autre fil!






"bouak" a écrit dans le message de
news:

Bonjour LSteph,

J'ai bien vérifier tout et ok.

Pour tester, dans la cellule d'origine d'importation j'ai mis un
nombre
fixe
et il y a toujours bégaiement.

N'est il pas possible que ce soit donc à l'origine de la plage du
flux
importé qui même si le nombre reste le même il est renouvellé toutes
les X
secondes ???

Encore merci.

J'ai un autre prob, peux-tu encore m'aider...

En Feuille data colonne A s'inscrivent automatiquement des nombres
différents dans chaque cellule à partir de A55 (A55 = 150, A56 =
118,
A57
5, le prochain s'inscrit en A58, etc jusqu'à A65000.

Au départ, par comparaison au nombre inscrit en A55, inscrire en A50
le
prochain nombre extrême dès qu'il est <>6 et dès qu'il diminue de 6
(positivement ou négativement).
Ainsi de suite en comparant le nouveau nombre extrême à chaque
dernier
nombre extrême en A50.

Les variables sont portés dans :

Feuille data colonne A Cellule 50 = nombre extrême et de comparaison
Feuille data colonne A Cellule 51 = prochain nombre extrême dès <> 6
Feuille data colonne A Cellule 52 = et dès > 6
Feuille data colonne A Cellule de 55 inscription automatique des
nombres
Feuille data colonne A Cellule à 65000 inscription automatique des
nombres

Ou tout autre que tu juges utile.


Ca s'appelle abuser...

Merci
--
bouak



Bonjour Bouak,
????
Par contre le nombre que j'importe en $B$1, se répète plusieurs
fois
.....

Désolé de venir encore t'importuner.
;o) pas dutout

......

En mettant comme précisé , uniquement dans le thisworkbook
la définition de la variable par rapport à Feuil1!b1 et la
procèdure
_open.,
puis dans le code de "Feuil1", exclusivement les proc _calculate et
_activate,
je n'ai pas ce bégaiement.

Explication du code:

'''***dans le thisworkbook
Public fiXb ' variable publique(accessible aux autres modules)

Private Sub Workbook_Open()
'à l'ouverture du classeur
fiXb = Feuil1.[b1]
'la variable prend valeur de b1 de Feuil1
End Sub
'''***
'''***dans le code de feuil1
Private Sub Worksheet_Activate()
'qd on active feuil1, au cas où aussi
fiXb = [b1]
'la variable prend valeur de b1 de Feuil1
End Sub

Private Sub Worksheet_Calculate()
'qd un calcul intervient dans feuil1
If fiXb = [b1].Value Then Exit Sub
'si la variable reste égale à b1 , on sort de la macro
Application.EnableEvents = False
'désactivation des événements (pour opèrer sans les relancer)
If Cells([A65000].End(xlUp).Row, 1) = 0 Then
'si la 1ère cell rencontrée en colonneA en partant du bas est
égale à
0
[A1] = [b1]
'a1 prend valeur de b1
Else
'sinon la 1ère cell rencontrée en colonneA en partant du bas
Cells([A65000].End(xlUp).Row + 1, 1) = [b1]
'prend valeur de b1
End If
fiXb = [b1]
'on met dans la variable la nouvelle valeur de b1
Application.EnableEvents = True
'réactivation des événements.
End Sub
''''*************************
'lSteph
"bouak" a écrit dans le message
de
news:

Bonsoir LSteph,

Encore merci pour ta précision ça marche super.

Par contre le nombre que j'importe en $B$1, ce répète plusieurs
fois
alors
qu'il ne change pas sur la feulle d'origine.

Désolé de venir encore t'importuner.

Bonne soirée
bouak



















Avatar
LSteph
Bonsoir Bouak,
;o) la formule ..hum oui mais...
!!!... surtout n'oublies pas ce qui suivait:
Puis remplacer, respectivement
dans les private sub de chaque feuille.



lSteph


"bouak" a écrit dans le message de news:

Bonsoir LSteph,

J'attends demain de recevoir le flux en temps réel afin de savoir si ça
marche et ensuite s'il y a lieu d'intégrer ta formule

Merci bien et Bonne soirée.
--
bouak



Re,
S'il t'en faut 2 cela ne peut être la même

'******
Public f1Xb
Public f3Xb
Private Sub Workbook_Open()
f1Xb = Feuil1.[b1]
f3Xb = Feuil3.[b1]
end sub
'*******

Puis remplacer, respectivement
dans les private sub de chaque feuille.

lSteph

"bouak" a écrit dans le message de
news:

Bonsoir,

Non c'est pas un choix, c'est le non savoir d'intégrer les 2 en une...

Suite à ton message je viens d'intégrer à ThisWorkbook

***********
Public fiXb
__________________________


End Sub

*************

Ceci est-il la bonne solution.

Encore merci de me guider

A+

--
bouak



Bonsoir,
Cela s'arrange donc!
Bien , tu as appliqué les codes en Private sub dans deux feuilles,
c'est
un
choix, peut-être...
il en résulte que l'initialisation d'une seule variable Publique dans
le
thisworkbook suffit ou non ou
bien en prévoir 2 une pour Feuil1 une pour feuil3 , selon le besoin.

A+

lSteph
"bouak" a écrit dans le message de
news:

Bonjour,

Ca y est j'ai compris le cheminement suite à tes précisions pas à
pas...

J'ai rectifié, en espérant ... comme tu me l'a indiqué...
Le nouveau classeur rectifié est sur http://cjoint.com/?bhqqFNoaas

Ne faut il rien ajouter à ThisWorkbook tenant compte du code Feuil3
que
j'ai
renommée gbp

Je t'avais bien indiqué que j'étais nul... c'est ma PREMIERE fois en
VBA
...

Peux-tu m'aider pour ma demande qui est formulée à la feuille gbp.

Merci et bon Week end


Merci et Bon Week end
--
bouak


Bonsoir Bouak,
J'ai bien vérifier tout et ok.


Aie Aie Ben non! d'après ce que je vois dans l'exemple de ton
nouveau
fil
pas vraiment
une Feuil3 est nommée feuil1
Dans le thisworkbook tu n'as rien mis ....
le modulede la feuil1que tu as nommée "gbp usd" contient tout le
code
dont
une
"private sub thisworkbook" qui ne veut rien dire à la place (je
n'ai
pas
écrit cela)
....bon....pas grave!
........

quand tu es dans excel avec ton classeur ouvert fais alt+f11 pour
ouvrir
VBE
sur ta gauche une fenêtre devrait afficher l'explorateur de projet
sinon
fais Ctrl+r
Tu devrais y trouver le nom de ton classeur en tant que projet,
dedans
doubleclic sur thisworkbook son module s'ouvre à droite y coller
ceci

'''***dans le thisworkbook
Public fiXb

Private Sub Workbook_Open()
fiXb = Feuil1.[b1]
End Sub
'''***

'Ensuite dans le code de Feuil1 celle qui concerne b1 tu garde
juste
ceci
et rien d'autre:

'''***dans le code de feuil1
Private Sub Worksheet_Activate()
fiXb = [b1]
End Sub

Private Sub Worksheet_Calculate()
If fiXb = [b1].Value Then Exit Sub
Application.EnableEvents = False
If Cells([A65000].End(xlUp).Row, 1) = 0 Then
[A1] = [b1]
Else
Cells([A65000].End(xlUp).Row + 1, 1) = [b1]
End If
fiXb = [b1]
Application.EnableEvents = True
End Sub
''''*************************

'profites en également renommer ta feuille3 feuil3 au lieu de
feuil1,
ce
sera plus clair
'cela ne bégaiera plus dès que tu aura reouvert ton classeur ou
déselectionné et sélectionné Feuil1
'...à suivre

'Salutations.

lSteph
'pour le reste je crois que Daniel t'a répondu sur l'autre fil!






"bouak" a écrit dans le message
de
news:

Bonjour LSteph,

J'ai bien vérifier tout et ok.

Pour tester, dans la cellule d'origine d'importation j'ai mis un
nombre
fixe
et il y a toujours bégaiement.

N'est il pas possible que ce soit donc à l'origine de la plage du
flux
importé qui même si le nombre reste le même il est renouvellé
toutes
les X
secondes ???

Encore merci.

J'ai un autre prob, peux-tu encore m'aider...

En Feuille data colonne A s'inscrivent automatiquement des
nombres
différents dans chaque cellule à partir de A55 (A55 = 150, A56 >> >> >> > 118,
A57
5, le prochain s'inscrit en A58, etc jusqu'à A65000.

Au départ, par comparaison au nombre inscrit en A55, inscrire en
A50
le
prochain nombre extrême dès qu'il est <>6 et dès qu'il diminue de
6
(positivement ou négativement).
Ainsi de suite en comparant le nouveau nombre extrême à chaque
dernier
nombre extrême en A50.

Les variables sont portés dans :

Feuille data colonne A Cellule 50 = nombre extrême et de
comparaison
Feuille data colonne A Cellule 51 = prochain nombre extrême dès
<> 6
Feuille data colonne A Cellule 52 = et dès > 6
Feuille data colonne A Cellule de 55 inscription automatique
des
nombres
Feuille data colonne A Cellule à 65000 inscription automatique
des
nombres

Ou tout autre que tu juges utile.


Ca s'appelle abuser...

Merci
--
bouak



Bonjour Bouak,
????
Par contre le nombre que j'importe en $B$1, se répète
plusieurs
fois
.....

Désolé de venir encore t'importuner.
;o) pas dutout

......

En mettant comme précisé , uniquement dans le thisworkbook
la définition de la variable par rapport à Feuil1!b1 et la
procèdure
_open.,
puis dans le code de "Feuil1", exclusivement les proc _calculate
et
_activate,
je n'ai pas ce bégaiement.

Explication du code:

'''***dans le thisworkbook
Public fiXb ' variable publique(accessible aux autres
modules)

Private Sub Workbook_Open()
'à l'ouverture du classeur
fiXb = Feuil1.[b1]
'la variable prend valeur de b1 de Feuil1
End Sub
'''***
'''***dans le code de feuil1
Private Sub Worksheet_Activate()
'qd on active feuil1, au cas où aussi
fiXb = [b1]
'la variable prend valeur de b1 de Feuil1
End Sub

Private Sub Worksheet_Calculate()
'qd un calcul intervient dans feuil1
If fiXb = [b1].Value Then Exit Sub
'si la variable reste égale à b1 , on sort de la macro
Application.EnableEvents = False
'désactivation des événements (pour opèrer sans les relancer)
If Cells([A65000].End(xlUp).Row, 1) = 0 Then
'si la 1ère cell rencontrée en colonneA en partant du bas est
égale à
0
[A1] = [b1]
'a1 prend valeur de b1
Else
'sinon la 1ère cell rencontrée en colonneA en partant du bas
Cells([A65000].End(xlUp).Row + 1, 1) = [b1]
'prend valeur de b1
End If
fiXb = [b1]
'on met dans la variable la nouvelle valeur de b1
Application.EnableEvents = True
'réactivation des événements.
End Sub
''''*************************
'lSteph
"bouak" a écrit dans le
message
de
news:

Bonsoir LSteph,

Encore merci pour ta précision ça marche super.

Par contre le nombre que j'importe en $B$1, ce répète
plusieurs
fois
alors
qu'il ne change pas sur la feulle d'origine.

Désolé de venir encore t'importuner.

Bonne soirée
bouak





















Avatar
bouak
Bonjour LSteph,

Je reprend le fil, j'ai continué sur l'autre car je ne savais pas si tu
suivais encore sur celle-ci.

****************tu m'indiques:

Bonjour Bouak,

Le pb c'est que je préfèrais rester sur le fil d'origine car ici tu a ouvert
cet autre fil
pour les conditions que Daniel semble avoir comprises mieux que moi:
on a toujours 1.7702 en Feuil3 et
dans Feuil1 702 (fin de la partie décimale)
avec l'explication qui est dans le cadre "condition extrême"
et "<>6" je comprends encore moins ce que tu veux.

Maintenant puisque on y est restons ici pour cet autre aspect:
amha dans le code il y a encore souci sur les
events car un _change en cohabitation avec le _calculate
il serait bon d'éviter que cela interfère donc dans ce change peut-être
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ValB2 As String

If Target.Column <> 1 Then Exit Sub
If Target.Value = [B3] Then Exit Sub
Application.EnableEvents = False 'au début
'''''la suite
Application.EnableEvents = true 'à la fin
end sub

et surtout attention tu as rajouté un exit sub au milieu du _calculate
qui va te sortir de la macro alors que les événements sont désactivés.
donc pour éviter le cas échéant de rester en carafe ici:
'....
If [b1] = [B3] Then Application.EnableEvents = True: Exit Sub
'Application.EnableEvents = False 'et celuici ne sert à rien puisqu'il y
en a déjà un au début
'.....
(désolé Daniel je ne souhaite pas empièter sur le reste que tu semble avoir
pigé mieux que moi,
c'est juste dans le prolongement d'un fil précédent que je finis de suivre,
je laisse la main....)

a+

lSteph******************

Voici le message que je viens d'envoyer à Daniel suite à ta reflexion.

"Bonjour Daniel,
Dans mes messages du 10.1.06 de 08:59 et 9:02 PST, les valeurs des 2
conditions sont bien 0.0006 et non 6.
Le reste sans changement
Oups...Merci"

Dans Feuil1 702 (fin de la partie décimale) c'est normal car je n'ai besoin
que des décimales d'où j'ai porté en B1 de cette Feuil1 =gbp!$B$2*10000-17000

Je pense avoir bien fait les rectifications que tu m'indiques, mais aprés
avoir fait un essai en inscrivant successivement à data I20 les valeurs de
data I36 à I45, ça correspond pas, voici le classeur que j'ai encore surement
mal rectifié.......
http://cjoint.com/?bllzFE2fPX

Je reprends les conditions avec l’exemple des valeurs de data I36 à I45

Feuil3 « gbp »

AU DEBUT en comparant la valeur inscrite en A1 et ses suivantes, inscrire en
B2 la valeur extrême <>0.0006 (1ère condition), dès quelle change de 0.0006
(2ème condition).

En A1 s’inscrit 1.7701 en B2 rien
En A2 s’inscrit 1.7725 en B2 rien
En A3 s’inscrit 1.7735 en B2 rien
En A4 s’inscrit 1.7728 en B2 s’inscrit 1.7735
car 1ère condition remplie la valeur extrême <>0.0006 depuis A1
1.7701
2ème condition remplie dès qu'elle change de 0.0006 depuis A3
1.7735

A LA SUITE en comparant colonne A à partir de la valeur qui a était inscrite
en B2 et ses suivantes, inscrire en B2 la valeur extrême <>0.0006 (1ère
condition), dès quelle change de 0.0006 (2ème condition). Et ainsi de suite

La valeur de comparaison devient celle de A3 soit 1.7735 qui a été inscrite
en B2
En A5 s’inscrit 1.7731 en B2 toujours 1.7735
En A6 s’inscrit 1.7733 en B2 toujours 1.7735
En A7 s’inscrit 1.7729 en B2 toujours 1.7735
En A8 s’inscrit 1.7698 en B2 toujours 1.7735
En A9 s’inscrit 1.7701 en B2 toujours 1.7735
En A10 s’inscrit 1.7705 en B2 s’inscrit 1.7698
car 1ère condition remplie la valeur extrême <>0.0006 depuis A3
1.7735
2ème condition remplie dès qu'elle change de 0.0006 depuis A8
1.7698

En A11 ainsi de suite.

STP s'il y a lieu peux-tu me faire les réctifications directement dans le
classeur.

Encore merci de ta disponibilité.

--
bouak



Bonsoir Bouak,
;o) la formule ..hum oui mais...
!!!... surtout n'oublies pas ce qui suivait:
Puis remplacer, respectivement
dans les private sub de chaque feuille.



lSteph


"bouak" a écrit dans le message de news:

Bonsoir LSteph,

J'attends demain de recevoir le flux en temps réel afin de savoir si ça
marche et ensuite s'il y a lieu d'intégrer ta formule

Merci bien et Bonne soirée.
--
bouak



Re,
S'il t'en faut 2 cela ne peut être la même

'******
Public f1Xb
Public f3Xb
Private Sub Workbook_Open()
f1Xb = Feuil1.[b1]
f3Xb = Feuil3.[b1]
end sub
'*******

Puis remplacer, respectivement
dans les private sub de chaque feuille.

lSteph

"bouak" a écrit dans le message de
news:

Bonsoir,

Non c'est pas un choix, c'est le non savoir d'intégrer les 2 en une...

Suite à ton message je viens d'intégrer à ThisWorkbook

***********
Public fiXb
__________________________


End Sub

*************

Ceci est-il la bonne solution.

Encore merci de me guider

A+

--
bouak



Bonsoir,
Cela s'arrange donc!
Bien , tu as appliqué les codes en Private sub dans deux feuilles,
c'est
un
choix, peut-être...
il en résulte que l'initialisation d'une seule variable Publique dans
le
thisworkbook suffit ou non ou
bien en prévoir 2 une pour Feuil1 une pour feuil3 , selon le besoin.

A+

lSteph
"bouak" a écrit dans le message de
news:

Bonjour,

Ca y est j'ai compris le cheminement suite à tes précisions pas à
pas...

J'ai rectifié, en espérant ... comme tu me l'a indiqué...
Le nouveau classeur rectifié est sur http://cjoint.com/?bhqqFNoaas

Ne faut il rien ajouter à ThisWorkbook tenant compte du code Feuil3
que
j'ai
renommée gbp

Je t'avais bien indiqué que j'étais nul... c'est ma PREMIERE fois en
VBA
...

Peux-tu m'aider pour ma demande qui est formulée à la feuille gbp.

Merci et bon Week end


Merci et Bon Week end
--
bouak


Bonsoir Bouak,
J'ai bien vérifier tout et ok.


Aie Aie Ben non! d'après ce que je vois dans l'exemple de ton
nouveau
fil
pas vraiment
une Feuil3 est nommée feuil1
Dans le thisworkbook tu n'as rien mis ....
le modulede la feuil1que tu as nommée "gbp usd" contient tout le
code
dont
une
"private sub thisworkbook" qui ne veut rien dire à la place (je
n'ai
pas
écrit cela)
....bon....pas grave!
........

quand tu es dans excel avec ton classeur ouvert fais alt+f11 pour
ouvrir
VBE
sur ta gauche une fenêtre devrait afficher l'explorateur de projet
sinon
fais Ctrl+r
Tu devrais y trouver le nom de ton classeur en tant que projet,
dedans
doubleclic sur thisworkbook son module s'ouvre à droite y coller
ceci

'''***dans le thisworkbook
Public fiXb

Private Sub Workbook_Open()
fiXb = Feuil1.[b1]
End Sub
'''***

'Ensuite dans le code de Feuil1 celle qui concerne b1 tu garde
juste
ceci
et rien d'autre:

'''***dans le code de feuil1
Private Sub Worksheet_Activate()
fiXb = [b1]
End Sub

Private Sub Worksheet_Calculate()
If fiXb = [b1].Value Then Exit Sub
Application.EnableEvents = False
If Cells([A65000].End(xlUp).Row, 1) = 0 Then
[A1] = [b1]
Else
Cells([A65000].End(xlUp).Row + 1, 1) = [b1]
End If
fiXb = [b1]
Application.EnableEvents = True
End Sub
''''*************************

'profites en également renommer ta feuille3 feuil3 au lieu de
feuil1,
ce
sera plus clair
'cela ne bégaiera plus dès que tu aura reouvert ton classeur ou
déselectionné et sélectionné Feuil1
'...à suivre

'Salutations.

lSteph
'pour le reste je crois que Daniel t'a répondu sur l'autre fil!






"bouak" a écrit dans le message
de
news:

Bonjour LSteph,

J'ai bien vérifier tout et ok.

Pour tester, dans la cellule d'origine d'importation j'ai mis un
nombre
fixe
et il y a toujours bégaiement.

N'est il pas possible que ce soit donc à l'origine de la plage du
flux
importé qui même si le nombre reste le même il est renouvellé
toutes
les X
secondes ???

Encore merci.

J'ai un autre prob, peux-tu encore m'aider...

En Feuille data colonne A s'inscrivent automatiquement des
nombres
différents dans chaque cellule à partir de A55 (A55 = 150, A56 > >> >> >> > 118,
A57
5, le prochain s'inscrit en A58, etc jusqu'à A65000.

Au départ, par comparaison au nombre inscrit en A55, inscrire en
A50
le
prochain nombre extrême dès qu'il est <>6 et dès qu'il diminue de
6
(positivement ou négativement).
Ainsi de suite en comparant le nouveau nombre extrême à chaque
dernier
nombre extrême en A50.

Les variables sont portés dans :

Feuille data colonne A Cellule 50 = nombre extrême et de
comparaison
Feuille data colonne A Cellule 51 = prochain nombre extrême dès
<> 6
Feuille data colonne A Cellule 52 = et dès > 6
Feuille data colonne A Cellule de 55 inscription automatique
des
nombres
Feuille data colonne A Cellule à 65000 inscription automatique
des
nombres

Ou tout autre que tu juges utile.


Ca s'appelle abuser...

Merci
--
bouak



Bonjour Bouak,
????
Par contre le nombre que j'importe en $B$1, se répète
plusieurs
fois
.....

Désolé de venir encore t'importuner.
;o) pas dutout

......

En mettant comme précisé , uniquement dans le thisworkbook
la définition de la variable par rapport à Feuil1!b1 et la
procèdure
_open.,
puis dans le code de "Feuil1", exclusivement les proc _calculate
et
_activate,
je n'ai pas ce bégaiement.

Explication du code:

'''***dans le thisworkbook
Public fiXb ' variable publique(accessible aux autres
modules)

Private Sub Workbook_Open()
'à l'ouverture du classeur
fiXb = Feuil1.[b1]
'la variable prend valeur de b1 de Feuil1
End Sub
'''***
'''***dans le code de feuil1
Private Sub Worksheet_Activate()
'qd on active feuil1, au cas où aussi
fiXb = [b1]
'la variable prend valeur de b1 de Feuil1
End Sub

Private Sub Worksheet_Calculate()



















Avatar
LSteph
Bonsoir,
Oui, c'est mieux de rester sur le même fil ...
....
je vais regarder , tout à l'heure..
a+

"bouak" a écrit dans le message de news:

Bonjour LSteph,

Je reprend le fil, j'ai continué sur l'autre car je ne savais pas si tu
suivais encore sur celle-ci.

****************tu m'indiques:

Bonjour Bouak,

Le pb c'est que je préfèrais rester sur le fil d'origine car ici tu a
ouvert
cet autre fil
pour les conditions que Daniel semble avoir comprises mieux que moi:
on a toujours 1.7702 en Feuil3 et
dans Feuil1 702 (fin de la partie décimale)
avec l'explication qui est dans le cadre "condition extrême"
et "<>6" je comprends encore moins ce que tu veux.

Maintenant puisque on y est restons ici pour cet autre aspect:
amha dans le code il y a encore souci sur les
events car un _change en cohabitation avec le _calculate
il serait bon d'éviter que cela interfère donc dans ce change peut-être
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ValB2 As String

If Target.Column <> 1 Then Exit Sub
If Target.Value = [B3] Then Exit Sub
Application.EnableEvents = False 'au début
'''''la suite
Application.EnableEvents = true 'à la fin
end sub

et surtout attention tu as rajouté un exit sub au milieu du _calculate
qui va te sortir de la macro alors que les événements sont désactivés.
donc pour éviter le cas échéant de rester en carafe ici:
'....
If [b1] = [B3] Then Application.EnableEvents = True: Exit Sub
'Application.EnableEvents = False 'et celuici ne sert à rien puisqu'il
y
en a déjà un au début
'.....
(désolé Daniel je ne souhaite pas empièter sur le reste que tu semble
avoir
pigé mieux que moi,
c'est juste dans le prolongement d'un fil précédent que je finis de
suivre,
je laisse la main....)

a+

lSteph******************

Voici le message que je viens d'envoyer à Daniel suite à ta reflexion.

"Bonjour Daniel,
Dans mes messages du 10.1.06 de 08:59 et 9:02 PST, les valeurs des 2
conditions sont bien 0.0006 et non 6.
Le reste sans changement
Oups...Merci"

Dans Feuil1 702 (fin de la partie décimale) c'est normal car je n'ai
besoin
que des décimales d'où j'ai porté en B1 de cette Feuil1
=gbp!$B$2*10000-17000

Je pense avoir bien fait les rectifications que tu m'indiques, mais aprés
avoir fait un essai en inscrivant successivement à data I20 les valeurs de
data I36 à I45, ça correspond pas, voici le classeur que j'ai encore
surement
mal rectifié.......
http://cjoint.com/?bllzFE2fPX

Je reprends les conditions avec l'exemple des valeurs de data I36 à I45

Feuil3 « gbp »

AU DEBUT en comparant la valeur inscrite en A1 et ses suivantes, inscrire
en
B2 la valeur extrême <>0.0006 (1ère condition), dès quelle change de
0.0006
(2ème condition).

En A1 s'inscrit 1.7701 en B2 rien
En A2 s'inscrit 1.7725 en B2 rien
En A3 s'inscrit 1.7735 en B2 rien
En A4 s'inscrit 1.7728 en B2 s'inscrit 1.7735
car 1ère condition remplie la valeur extrême <>0.0006 depuis A1
1.7701
2ème condition remplie dès qu'elle change de 0.0006 depuis A3
1.7735

A LA SUITE en comparant colonne A à partir de la valeur qui a était
inscrite
en B2 et ses suivantes, inscrire en B2 la valeur extrême <>0.0006 (1ère
condition), dès quelle change de 0.0006 (2ème condition). Et ainsi de
suite

La valeur de comparaison devient celle de A3 soit 1.7735 qui a été
inscrite
en B2
En A5 s'inscrit 1.7731 en B2 toujours 1.7735
En A6 s'inscrit 1.7733 en B2 toujours 1.7735
En A7 s'inscrit 1.7729 en B2 toujours 1.7735
En A8 s'inscrit 1.7698 en B2 toujours 1.7735
En A9 s'inscrit 1.7701 en B2 toujours 1.7735
En A10 s'inscrit 1.7705 en B2 s'inscrit 1.7698
car 1ère condition remplie la valeur extrême <>0.0006 depuis A3
1.7735
2ème condition remplie dès qu'elle change de 0.0006 depuis A8
1.7698

En A11 ainsi de suite.

STP s'il y a lieu peux-tu me faire les réctifications directement dans le
classeur.

Encore merci de ta disponibilité.

--
bouak



Bonsoir Bouak,
;o) la formule ..hum oui mais...
!!!... surtout n'oublies pas ce qui suivait:
Puis remplacer, respectivement
dans les private sub de chaque feuille.



lSteph


"bouak" a écrit dans le message de
news:

Bonsoir LSteph,

J'attends demain de recevoir le flux en temps réel afin de savoir si ça
marche et ensuite s'il y a lieu d'intégrer ta formule

Merci bien et Bonne soirée.
--
bouak



Re,
S'il t'en faut 2 cela ne peut être la même

'******
Public f1Xb
Public f3Xb
Private Sub Workbook_Open()
f1Xb = Feuil1.[b1]
f3Xb = Feuil3.[b1]
end sub
'*******

Puis remplacer, respectivement
dans les private sub de chaque feuille.

lSteph

"bouak" a écrit dans le message de
news:

Bonsoir,

Non c'est pas un choix, c'est le non savoir d'intégrer les 2 en
une...

Suite à ton message je viens d'intégrer à ThisWorkbook

***********
Public fiXb
__________________________


End Sub

*************

Ceci est-il la bonne solution.

Encore merci de me guider

A+

--
bouak



Bonsoir,
Cela s'arrange donc!
Bien , tu as appliqué les codes en Private sub dans deux feuilles,
c'est
un
choix, peut-être...
il en résulte que l'initialisation d'une seule variable Publique
dans
le
thisworkbook suffit ou non ou
bien en prévoir 2 une pour Feuil1 une pour feuil3 , selon le
besoin.

A+

lSteph
"bouak" a écrit dans le message
de
news:

Bonjour,

Ca y est j'ai compris le cheminement suite à tes précisions pas à
pas...

J'ai rectifié, en espérant ... comme tu me l'a indiqué...
Le nouveau classeur rectifié est sur
http://cjoint.com/?bhqqFNoaas

Ne faut il rien ajouter à ThisWorkbook tenant compte du code
Feuil3
que
j'ai
renommée gbp

Je t'avais bien indiqué que j'étais nul... c'est ma PREMIERE fois
en
VBA
...

Peux-tu m'aider pour ma demande qui est formulée à la feuille
gbp.

Merci et bon Week end


Merci et Bon Week end
--
bouak


Bonsoir Bouak,
J'ai bien vérifier tout et ok.


Aie Aie Ben non! d'après ce que je vois dans l'exemple de ton
nouveau
fil
pas vraiment
une Feuil3 est nommée feuil1
Dans le thisworkbook tu n'as rien mis ....
le modulede la feuil1que tu as nommée "gbp usd" contient tout
le
code
dont
une
"private sub thisworkbook" qui ne veut rien dire à la place (je
n'ai
pas
écrit cela)
....bon....pas grave!
........

quand tu es dans excel avec ton classeur ouvert fais alt+f11
pour
ouvrir
VBE
sur ta gauche une fenêtre devrait afficher l'explorateur de
projet
sinon
fais Ctrl+r
Tu devrais y trouver le nom de ton classeur en tant que projet,
dedans
doubleclic sur thisworkbook son module s'ouvre à droite y
coller
ceci

'''***dans le thisworkbook
Public fiXb

Private Sub Workbook_Open()
fiXb = Feuil1.[b1]
End Sub
'''***

'Ensuite dans le code de Feuil1 celle qui concerne b1 tu garde
juste
ceci
et rien d'autre:

'''***dans le code de feuil1
Private Sub Worksheet_Activate()
fiXb = [b1]
End Sub

Private Sub Worksheet_Calculate()
If fiXb = [b1].Value Then Exit Sub
Application.EnableEvents = False
If Cells([A65000].End(xlUp).Row, 1) = 0 Then
[A1] = [b1]
Else
Cells([A65000].End(xlUp).Row + 1, 1) = [b1]
End If
fiXb = [b1]
Application.EnableEvents = True
End Sub
''''*************************

'profites en également renommer ta feuille3 feuil3 au lieu de
feuil1,
ce
sera plus clair
'cela ne bégaiera plus dès que tu aura reouvert ton classeur ou
déselectionné et sélectionné Feuil1
'...à suivre

'Salutations.

lSteph
'pour le reste je crois que Daniel t'a répondu sur l'autre fil!






"bouak" a écrit dans le
message
de
news:

Bonjour LSteph,

J'ai bien vérifier tout et ok.

Pour tester, dans la cellule d'origine d'importation j'ai mis
un
nombre
fixe
et il y a toujours bégaiement.

N'est il pas possible que ce soit donc à l'origine de la plage
du
flux
importé qui même si le nombre reste le même il est renouvellé
toutes
les X
secondes ???

Encore merci.

J'ai un autre prob, peux-tu encore m'aider...

En Feuille data colonne A s'inscrivent automatiquement des
nombres
différents dans chaque cellule à partir de A55 (A55 = 150, A56
118,
A57









5, le prochain s'inscrit en A58, etc jusqu'à A65000.

Au départ, par comparaison au nombre inscrit en A55, inscrire
en
A50
le
prochain nombre extrême dès qu'il est <>6 et dès qu'il diminue
de
6
(positivement ou négativement).
Ainsi de suite en comparant le nouveau nombre extrême à chaque
dernier
nombre extrême en A50.

Les variables sont portés dans :

Feuille data colonne A Cellule 50 = nombre extrême et de
comparaison
Feuille data colonne A Cellule 51 = prochain nombre extrême
dès
<> 6
Feuille data colonne A Cellule 52 = et dès > 6
Feuille data colonne A Cellule de 55 inscription
automatique
des
nombres
Feuille data colonne A Cellule à 65000 inscription automatique
des
nombres

Ou tout autre que tu juges utile.


Ca s'appelle abuser...

Merci
--
bouak



Bonjour Bouak,
????
Par contre le nombre que j'importe en $B$1, se répète
plusieurs
fois
.....

Désolé de venir encore t'importuner.
;o) pas dutout

......

En mettant comme précisé , uniquement dans le thisworkbook
la définition de la variable par rapport à Feuil1!b1 et la
procèdure
_open.,
puis dans le code de "Feuil1", exclusivement les proc
_calculate
et
_activate,
je n'ai pas ce bégaiement.

Explication du code:

'''***dans le thisworkbook
Public fiXb ' variable publique(accessible aux autres
modules)

Private Sub Workbook_Open()
'à l'ouverture du classeur
fiXb = Feuil1.[b1]
'la variable prend valeur de b1 de Feuil1
End Sub
'''***
'''***dans le code de feuil1
Private Sub Worksheet_Activate()
'qd on active feuil1, au cas où aussi
fiXb = [b1]
'la variable prend valeur de b1 de Feuil1
End Sub

Private Sub Worksheet_Calculate()




























Avatar
LSteph
Rebonsoir,
http://cjoint.com/?blwJcdpJP6

Dis moi si cela conviendrait.

lSteph
"bouak" a écrit dans le message de news:

Bonjour LSteph,

Je reprend le fil, j'ai continué sur l'autre car je ne savais pas si tu
suivais encore sur celle-ci.

****************tu m'indiques:

Bonjour Bouak,

Le pb c'est que je préfèrais rester sur le fil d'origine car ici tu a
ouvert
cet autre fil
pour les conditions que Daniel semble avoir comprises mieux que moi:
on a toujours 1.7702 en Feuil3 et
dans Feuil1 702 (fin de la partie décimale)
avec l'explication qui est dans le cadre "condition extrême"
et "<>6" je comprends encore moins ce que tu veux.

Maintenant puisque on y est restons ici pour cet autre aspect:
amha dans le code il y a encore souci sur les
events car un _change en cohabitation avec le _calculate
il serait bon d'éviter que cela interfère donc dans ce change peut-être
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ValB2 As String

If Target.Column <> 1 Then Exit Sub
If Target.Value = [B3] Then Exit Sub
Application.EnableEvents = False 'au début
'''''la suite
Application.EnableEvents = true 'à la fin
end sub

et surtout attention tu as rajouté un exit sub au milieu du _calculate
qui va te sortir de la macro alors que les événements sont désactivés.
donc pour éviter le cas échéant de rester en carafe ici:
'....
If [b1] = [B3] Then Application.EnableEvents = True: Exit Sub
'Application.EnableEvents = False 'et celuici ne sert à rien puisqu'il
y
en a déjà un au début
'.....
(désolé Daniel je ne souhaite pas empièter sur le reste que tu semble
avoir
pigé mieux que moi,
c'est juste dans le prolongement d'un fil précédent que je finis de
suivre,
je laisse la main....)

a+

lSteph******************

Voici le message que je viens d'envoyer à Daniel suite à ta reflexion.

"Bonjour Daniel,
Dans mes messages du 10.1.06 de 08:59 et 9:02 PST, les valeurs des 2
conditions sont bien 0.0006 et non 6.
Le reste sans changement
Oups...Merci"

Dans Feuil1 702 (fin de la partie décimale) c'est normal car je n'ai
besoin
que des décimales d'où j'ai porté en B1 de cette Feuil1
=gbp!$B$2*10000-17000

Je pense avoir bien fait les rectifications que tu m'indiques, mais aprés
avoir fait un essai en inscrivant successivement à data I20 les valeurs de
data I36 à I45, ça correspond pas, voici le classeur que j'ai encore
surement
mal rectifié.......
http://cjoint.com/?bllzFE2fPX

Je reprends les conditions avec l'exemple des valeurs de data I36 à I45

Feuil3 « gbp »

AU DEBUT en comparant la valeur inscrite en A1 et ses suivantes, inscrire
en
B2 la valeur extrême <>0.0006 (1ère condition), dès quelle change de
0.0006
(2ème condition).

En A1 s'inscrit 1.7701 en B2 rien
En A2 s'inscrit 1.7725 en B2 rien
En A3 s'inscrit 1.7735 en B2 rien
En A4 s'inscrit 1.7728 en B2 s'inscrit 1.7735
car 1ère condition remplie la valeur extrême <>0.0006 depuis A1
1.7701
2ème condition remplie dès qu'elle change de 0.0006 depuis A3
1.7735

A LA SUITE en comparant colonne A à partir de la valeur qui a était
inscrite
en B2 et ses suivantes, inscrire en B2 la valeur extrême <>0.0006 (1ère
condition), dès quelle change de 0.0006 (2ème condition). Et ainsi de
suite

La valeur de comparaison devient celle de A3 soit 1.7735 qui a été
inscrite
en B2
En A5 s'inscrit 1.7731 en B2 toujours 1.7735
En A6 s'inscrit 1.7733 en B2 toujours 1.7735
En A7 s'inscrit 1.7729 en B2 toujours 1.7735
En A8 s'inscrit 1.7698 en B2 toujours 1.7735
En A9 s'inscrit 1.7701 en B2 toujours 1.7735
En A10 s'inscrit 1.7705 en B2 s'inscrit 1.7698
car 1ère condition remplie la valeur extrême <>0.0006 depuis A3
1.7735
2ème condition remplie dès qu'elle change de 0.0006 depuis A8
1.7698

En A11 ainsi de suite.

STP s'il y a lieu peux-tu me faire les réctifications directement dans le
classeur.

Encore merci de ta disponibilité.

--
bouak



Bonsoir Bouak,
;o) la formule ..hum oui mais...
!!!... surtout n'oublies pas ce qui suivait:
Puis remplacer, respectivement
dans les private sub de chaque feuille.



lSteph


"bouak" a écrit dans le message de
news:

Bonsoir LSteph,

J'attends demain de recevoir le flux en temps réel afin de savoir si ça
marche et ensuite s'il y a lieu d'intégrer ta formule

Merci bien et Bonne soirée.
--
bouak



Re,
S'il t'en faut 2 cela ne peut être la même

'******
Public f1Xb
Public f3Xb
Private Sub Workbook_Open()
f1Xb = Feuil1.[b1]
f3Xb = Feuil3.[b1]
end sub
'*******

Puis remplacer, respectivement
dans les private sub de chaque feuille.

lSteph

"bouak" a écrit dans le message de
news:

Bonsoir,

Non c'est pas un choix, c'est le non savoir d'intégrer les 2 en
une...

Suite à ton message je viens d'intégrer à ThisWorkbook

***********
Public fiXb
__________________________


End Sub

*************

Ceci est-il la bonne solution.

Encore merci de me guider

A+

--
bouak



Bonsoir,
Cela s'arrange donc!
Bien , tu as appliqué les codes en Private sub dans deux feuilles,
c'est
un
choix, peut-être...
il en résulte que l'initialisation d'une seule variable Publique
dans
le
thisworkbook suffit ou non ou
bien en prévoir 2 une pour Feuil1 une pour feuil3 , selon le
besoin.

A+

lSteph
"bouak" a écrit dans le message
de
news:

Bonjour,

Ca y est j'ai compris le cheminement suite à tes précisions pas à
pas...

J'ai rectifié, en espérant ... comme tu me l'a indiqué...
Le nouveau classeur rectifié est sur
http://cjoint.com/?bhqqFNoaas

Ne faut il rien ajouter à ThisWorkbook tenant compte du code
Feuil3
que
j'ai
renommée gbp

Je t'avais bien indiqué que j'étais nul... c'est ma PREMIERE fois
en
VBA
...

Peux-tu m'aider pour ma demande qui est formulée à la feuille
gbp.

Merci et bon Week end


Merci et Bon Week end
--
bouak


Bonsoir Bouak,
J'ai bien vérifier tout et ok.


Aie Aie Ben non! d'après ce que je vois dans l'exemple de ton
nouveau
fil
pas vraiment
une Feuil3 est nommée feuil1
Dans le thisworkbook tu n'as rien mis ....
le modulede la feuil1que tu as nommée "gbp usd" contient tout
le
code
dont
une
"private sub thisworkbook" qui ne veut rien dire à la place (je
n'ai
pas
écrit cela)
....bon....pas grave!
........

quand tu es dans excel avec ton classeur ouvert fais alt+f11
pour
ouvrir
VBE
sur ta gauche une fenêtre devrait afficher l'explorateur de
projet
sinon
fais Ctrl+r
Tu devrais y trouver le nom de ton classeur en tant que projet,
dedans
doubleclic sur thisworkbook son module s'ouvre à droite y
coller
ceci

'''***dans le thisworkbook
Public fiXb

Private Sub Workbook_Open()
fiXb = Feuil1.[b1]
End Sub
'''***

'Ensuite dans le code de Feuil1 celle qui concerne b1 tu garde
juste
ceci
et rien d'autre:

'''***dans le code de feuil1
Private Sub Worksheet_Activate()
fiXb = [b1]
End Sub

Private Sub Worksheet_Calculate()
If fiXb = [b1].Value Then Exit Sub
Application.EnableEvents = False
If Cells([A65000].End(xlUp).Row, 1) = 0 Then
[A1] = [b1]
Else
Cells([A65000].End(xlUp).Row + 1, 1) = [b1]
End If
fiXb = [b1]
Application.EnableEvents = True
End Sub
''''*************************

'profites en également renommer ta feuille3 feuil3 au lieu de
feuil1,
ce
sera plus clair
'cela ne bégaiera plus dès que tu aura reouvert ton classeur ou
déselectionné et sélectionné Feuil1
'...à suivre

'Salutations.

lSteph
'pour le reste je crois que Daniel t'a répondu sur l'autre fil!






"bouak" a écrit dans le
message
de
news:

Bonjour LSteph,

J'ai bien vérifier tout et ok.

Pour tester, dans la cellule d'origine d'importation j'ai mis
un
nombre
fixe
et il y a toujours bégaiement.

N'est il pas possible que ce soit donc à l'origine de la plage
du
flux
importé qui même si le nombre reste le même il est renouvellé
toutes
les X
secondes ???

Encore merci.

J'ai un autre prob, peux-tu encore m'aider...

En Feuille data colonne A s'inscrivent automatiquement des
nombres
différents dans chaque cellule à partir de A55 (A55 = 150, A56
118,
A57









5, le prochain s'inscrit en A58, etc jusqu'à A65000.

Au départ, par comparaison au nombre inscrit en A55, inscrire
en
A50
le
prochain nombre extrême dès qu'il est <>6 et dès qu'il diminue
de
6
(positivement ou négativement).
Ainsi de suite en comparant le nouveau nombre extrême à chaque
dernier
nombre extrême en A50.

Les variables sont portés dans :

Feuille data colonne A Cellule 50 = nombre extrême et de
comparaison
Feuille data colonne A Cellule 51 = prochain nombre extrême
dès
<> 6
Feuille data colonne A Cellule 52 = et dès > 6
Feuille data colonne A Cellule de 55 inscription
automatique
des
nombres
Feuille data colonne A Cellule à 65000 inscription automatique
des
nombres

Ou tout autre que tu juges utile.


Ca s'appelle abuser...

Merci
--
bouak



Bonjour Bouak,
????
Par contre le nombre que j'importe en $B$1, se répète
plusieurs
fois
.....

Désolé de venir encore t'importuner.
;o) pas dutout

......

En mettant comme précisé , uniquement dans le thisworkbook
la définition de la variable par rapport à Feuil1!b1 et la
procèdure
_open.,
puis dans le code de "Feuil1", exclusivement les proc
_calculate
et
_activate,
je n'ai pas ce bégaiement.

Explication du code:

'''***dans le thisworkbook
Public fiXb ' variable publique(accessible aux autres
modules)

Private Sub Workbook_Open()
'à l'ouverture du classeur
fiXb = Feuil1.[b1]
'la variable prend valeur de b1 de Feuil1
End Sub
'''***
'''***dans le code de feuil1
Private Sub Worksheet_Activate()
'qd on active feuil1, au cas où aussi
fiXb = [b1]
'la variable prend valeur de b1 de Feuil1
End Sub

Private Sub Worksheet_Calculate()




























Avatar
bouak
Re,

Non c'est pas ça.

STP consulte http://cjoint.com/?blxsi7JGfN où j'ai repris tous les paramètres.

Merci
--
bouak



Rebonsoir,
http://cjoint.com/?blwJcdpJP6

Dis moi si cela conviendrait.

lSteph
"bouak" a écrit dans le message de news:

Bonjour LSteph,

Je reprend le fil, j'ai continué sur l'autre car je ne savais pas si tu
suivais encore sur celle-ci.

****************tu m'indiques:

Bonjour Bouak,

Le pb c'est que je préfèrais rester sur le fil d'origine car ici tu a
ouvert
cet autre fil
pour les conditions que Daniel semble avoir comprises mieux que moi:
on a toujours 1.7702 en Feuil3 et
dans Feuil1 702 (fin de la partie décimale)
avec l'explication qui est dans le cadre "condition extrême"
et "<>6" je comprends encore moins ce que tu veux.

Maintenant puisque on y est restons ici pour cet autre aspect:
amha dans le code il y a encore souci sur les
events car un _change en cohabitation avec le _calculate
il serait bon d'éviter que cela interfère donc dans ce change peut-être
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ValB2 As String

If Target.Column <> 1 Then Exit Sub
If Target.Value = [B3] Then Exit Sub
Application.EnableEvents = False 'au début
'''''la suite
Application.EnableEvents = true 'à la fin
end sub

et surtout attention tu as rajouté un exit sub au milieu du _calculate
qui va te sortir de la macro alors que les événements sont désactivés.
donc pour éviter le cas échéant de rester en carafe ici:
'....
If [b1] = [B3] Then Application.EnableEvents = True: Exit Sub
'Application.EnableEvents = False 'et celuici ne sert à rien puisqu'il
y
en a déjà un au début
'.....
(désolé Daniel je ne souhaite pas empièter sur le reste que tu semble
avoir
pigé mieux que moi,
c'est juste dans le prolongement d'un fil précédent que je finis de
suivre,
je laisse la main....)

a+

lSteph******************

Voici le message que je viens d'envoyer à Daniel suite à ta reflexion.

"Bonjour Daniel,
Dans mes messages du 10.1.06 de 08:59 et 9:02 PST, les valeurs des 2
conditions sont bien 0.0006 et non 6.
Le reste sans changement
Oups...Merci"

Dans Feuil1 702 (fin de la partie décimale) c'est normal car je n'ai
besoin
que des décimales d'où j'ai porté en B1 de cette Feuil1
=gbp!$B$2*10000-17000

Je pense avoir bien fait les rectifications que tu m'indiques, mais aprés
avoir fait un essai en inscrivant successivement à data I20 les valeurs de
data I36 à I45, ça correspond pas, voici le classeur que j'ai encore
surement
mal rectifié.......
http://cjoint.com/?bllzFE2fPX

Je reprends les conditions avec l'exemple des valeurs de data I36 à I45

Feuil3 « gbp »

AU DEBUT en comparant la valeur inscrite en A1 et ses suivantes, inscrire
en
B2 la valeur extrême <>0.0006 (1ère condition), dès quelle change de
0.0006
(2ème condition).

En A1 s'inscrit 1.7701 en B2 rien
En A2 s'inscrit 1.7725 en B2 rien
En A3 s'inscrit 1.7735 en B2 rien
En A4 s'inscrit 1.7728 en B2 s'inscrit 1.7735
car 1ère condition remplie la valeur extrême <>0.0006 depuis A1
1.7701
2ème condition remplie dès qu'elle change de 0.0006 depuis A3
1.7735

A LA SUITE en comparant colonne A à partir de la valeur qui a était
inscrite
en B2 et ses suivantes, inscrire en B2 la valeur extrême <>0.0006 (1ère
condition), dès quelle change de 0.0006 (2ème condition). Et ainsi de
suite

La valeur de comparaison devient celle de A3 soit 1.7735 qui a été
inscrite
en B2
En A5 s'inscrit 1.7731 en B2 toujours 1.7735
En A6 s'inscrit 1.7733 en B2 toujours 1.7735
En A7 s'inscrit 1.7729 en B2 toujours 1.7735
En A8 s'inscrit 1.7698 en B2 toujours 1.7735
En A9 s'inscrit 1.7701 en B2 toujours 1.7735
En A10 s'inscrit 1.7705 en B2 s'inscrit 1.7698
car 1ère condition remplie la valeur extrême <>0.0006 depuis A3
1.7735
2ème condition remplie dès qu'elle change de 0.0006 depuis A8
1.7698

En A11 ainsi de suite.

STP s'il y a lieu peux-tu me faire les réctifications directement dans le
classeur.

Encore merci de ta disponibilité.

--
bouak



Bonsoir Bouak,
;o) la formule ..hum oui mais...
!!!... surtout n'oublies pas ce qui suivait:
Puis remplacer, respectivement
dans les private sub de chaque feuille.



lSteph


"bouak" a écrit dans le message de
news:

Bonsoir LSteph,

J'attends demain de recevoir le flux en temps réel afin de savoir si ça
marche et ensuite s'il y a lieu d'intégrer ta formule

Merci bien et Bonne soirée.
--
bouak



Re,
S'il t'en faut 2 cela ne peut être la même

'******
Public f1Xb
Public f3Xb
Private Sub Workbook_Open()
f1Xb = Feuil1.[b1]
f3Xb = Feuil3.[b1]
end sub
'*******

Puis remplacer, respectivement
dans les private sub de chaque feuille.

lSteph

"bouak" a écrit dans le message de
news:

Bonsoir,

Non c'est pas un choix, c'est le non savoir d'intégrer les 2 en
une...

Suite à ton message je viens d'intégrer à ThisWorkbook

***********
Public fiXb
__________________________


End Sub

*************

Ceci est-il la bonne solution.

Encore merci de me guider

A+

--
bouak



Bonsoir,
Cela s'arrange donc!
Bien , tu as appliqué les codes en Private sub dans deux feuilles,
c'est
un
choix, peut-être...
il en résulte que l'initialisation d'une seule variable Publique
dans
le
thisworkbook suffit ou non ou
bien en prévoir 2 une pour Feuil1 une pour feuil3 , selon le
besoin.

A+

lSteph
"bouak" a écrit dans le message
de
news:

Bonjour,

Ca y est j'ai compris le cheminement suite à tes précisions pas à
pas...

J'ai rectifié, en espérant ... comme tu me l'a indiqué...
Le nouveau classeur rectifié est sur
http://cjoint.com/?bhqqFNoaas

Ne faut il rien ajouter à ThisWorkbook tenant compte du code
Feuil3
que
j'ai
renommée gbp

Je t'avais bien indiqué que j'étais nul... c'est ma PREMIERE fois
en
VBA
...

Peux-tu m'aider pour ma demande qui est formulée à la feuille
gbp.

Merci et bon Week end


Merci et Bon Week end
--
bouak


Bonsoir Bouak,
J'ai bien vérifier tout et ok.


Aie Aie Ben non! d'après ce que je vois dans l'exemple de ton
nouveau
fil
pas vraiment
une Feuil3 est nommée feuil1
Dans le thisworkbook tu n'as rien mis ....
le modulede la feuil1que tu as nommée "gbp usd" contient tout
le
code
dont
une
"private sub thisworkbook" qui ne veut rien dire à la place (je
n'ai
pas
écrit cela)
....bon....pas grave!
........

quand tu es dans excel avec ton classeur ouvert fais alt+f11
pour
ouvrir
VBE
sur ta gauche une fenêtre devrait afficher l'explorateur de
projet
sinon
fais Ctrl+r
Tu devrais y trouver le nom de ton classeur en tant que projet,
dedans
doubleclic sur thisworkbook son module s'ouvre à droite y
coller
ceci

'''***dans le thisworkbook
Public fiXb

Private Sub Workbook_Open()
fiXb = Feuil1.[b1]
End Sub
'''***

'Ensuite dans le code de Feuil1 celle qui concerne b1 tu garde
juste



















Avatar
LSteph
Re,
Sur mon précédent post le classeur mis en lien rectifie les erreurs ajoutées
par la suite dans ce que tu indiques comme "Mon dernier classeur suivant les
avis de LSteph " donc suivant ma proposition de code en conservant ce qui
correspondait selon moi à ta demande initiale.
(Un détail aussi avant de rentrer dans le sujet dans excel ou vba, le signe
"<>" veut dire "différent de " c'est ce qui a suscité sans doute une
confusion)..

Donc tu dis:
Je reprends tout depuis le début en faisant abstraction de tous les
précédents
La nouvelle formulation que tu détailles ici s'éloigne effectivement des

précédents.
Cela chamboule complètement ce qui avait été élaboré que ce soit par Daniel
ou moi.
Je crois qu'une bonne part va être à revoir.
Selon ce nouvel énoncé ce n'est plus B1 qui passe en B2
dans gbp mais une valeur de A dont reste qu'il n'est pas évident selon tes
deux exemples
de trouver la logique permettant de savoir jusqu'où il pourrait arriver
d'avoir à remonter et
surtout qd est estimé l'écart supérieur ou inférieur à 0.0006
En A1 s'inscrit 1.7701 en B2 rien

En A2 s'inscrit 1.7725 en B2 rien

En A3 s'inscrit 1.7735 en B2 rien

En A4 s'inscrit 1.7728 en B2 s'inscrit 1.7735


jusque à la logique serait effectivement correcte par rapport au changement
de sens et l'écart en val Abs de 0.0006 respecté entre 1.7725 et 1.7735 et
aussi entre 1.7735 et 1.7728 après cela se complique:

En A5 s'inscrit 1.7731 en B2 toujours 1.7735

En A6 s'inscrit 1.7733 en B2 toujours 1.7735

En A7 s'inscrit 1.7729 en B2 toujours 1.7735

En A8 s'inscrit 1.7698 en B2 toujours 1.7735

En A9 s'inscrit 1.7701 en B2 toujours 1.7735

En A10 s'inscrit 1.7705 en B2 s'inscrit 1.7698


On ne remonte plus d'un cran mais de 2 puisque c'est là que le sens a changé
mais pourquoi réagir à 1.7705 puisque la valeur précédente était 1.7701 donc

là l'écart était 0.0004 et non 0.0006 donc une des conditions non respectée
. Alors effectivement on peut partir du principe qu'il faille remonter là à
la valeur

précédente par rapport à laquelle il serait respecté, là où à lieu le pic .
Ainsi, si l'on a affaire à une plus longue série de valeurs oscillantes et
plus ou moins continues

voilà qui change la donne et requiert sans doute une autre méthode/approche
pour mettre cela en code.

Cela demande donc réflexion .........en attendant.



Bonne nuit.



lSteph





"bouak" a écrit dans le message de news:


Re,

Non c'est pas ça.

STP consulte http://cjoint.com/?blxsi7JGfN où j'ai repris tous les
paramètres.

Merci
--
bouak



Rebonsoir,
http://cjoint.com/?blwJcdpJP6

Dis moi si cela conviendrait.

lSteph
"bouak" a écrit dans le message de
news:

Bonjour LSteph,

Je reprend le fil, j'ai continué sur l'autre car je ne savais pas si tu
suivais encore sur celle-ci.

****************tu m'indiques:

Bonjour Bouak,

Le pb c'est que je préfèrais rester sur le fil d'origine car ici tu a
ouvert
cet autre fil
pour les conditions que Daniel semble avoir comprises mieux que moi:
on a toujours 1.7702 en Feuil3 et
dans Feuil1 702 (fin de la partie décimale)
avec l'explication qui est dans le cadre "condition extrême"
et "<>6" je comprends encore moins ce que tu veux.

Maintenant puisque on y est restons ici pour cet autre aspect:
amha dans le code il y a encore souci sur les
events car un _change en cohabitation avec le _calculate
il serait bon d'éviter que cela interfère donc dans ce change peut-être
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ValB2 As String

If Target.Column <> 1 Then Exit Sub
If Target.Value = [B3] Then Exit Sub
Application.EnableEvents = False 'au début
'''''la suite
Application.EnableEvents = true 'à la fin
end sub

et surtout attention tu as rajouté un exit sub au milieu du _calculate
qui va te sortir de la macro alors que les événements sont désactivés.
donc pour éviter le cas échéant de rester en carafe ici:
'....
If [b1] = [B3] Then Application.EnableEvents = True: Exit Sub
'Application.EnableEvents = False 'et celuici ne sert à rien
puisqu'il
y
en a déjà un au début
'.....
(désolé Daniel je ne souhaite pas empièter sur le reste que tu semble
avoir
pigé mieux que moi,
c'est juste dans le prolongement d'un fil précédent que je finis de
suivre,
je laisse la main....)

a+

lSteph******************

Voici le message que je viens d'envoyer à Daniel suite à ta reflexion.

"Bonjour Daniel,
Dans mes messages du 10.1.06 de 08:59 et 9:02 PST, les valeurs des 2
conditions sont bien 0.0006 et non 6.
Le reste sans changement
Oups...Merci"

Dans Feuil1 702 (fin de la partie décimale) c'est normal car je n'ai
besoin
que des décimales d'où j'ai porté en B1 de cette Feuil1
=gbp!$B$2*10000-17000

Je pense avoir bien fait les rectifications que tu m'indiques, mais
aprés
avoir fait un essai en inscrivant successivement à data I20 les valeurs
de
data I36 à I45, ça correspond pas, voici le classeur que j'ai encore
surement
mal rectifié.......
http://cjoint.com/?bllzFE2fPX

Je reprends les conditions avec l'exemple des valeurs de data I36 à I45

Feuil3 « gbp »

AU DEBUT en comparant la valeur inscrite en A1 et ses suivantes,
inscrire
en
B2 la valeur extrême <>0.0006 (1ère condition), dès quelle change de
0.0006
(2ème condition).

En A1 s'inscrit 1.7701 en B2 rien
En A2 s'inscrit 1.7725 en B2 rien
En A3 s'inscrit 1.7735 en B2 rien
En A4 s'inscrit 1.7728 en B2 s'inscrit 1.7735
car 1ère condition remplie la valeur extrême <>0.0006 depuis
A1
1.7701
2ème condition remplie dès qu'elle change de 0.0006 depuis
A3
1.7735

A LA SUITE en comparant colonne A à partir de la valeur qui a était
inscrite
en B2 et ses suivantes, inscrire en B2 la valeur extrême <>0.0006
(1ère
condition), dès quelle change de 0.0006 (2ème condition). Et ainsi de
suite

La valeur de comparaison devient celle de A3 soit 1.7735 qui a été
inscrite
en B2
En A5 s'inscrit 1.7731 en B2 toujours 1.7735
En A6 s'inscrit 1.7733 en B2 toujours 1.7735
En A7 s'inscrit 1.7729 en B2 toujours 1.7735
En A8 s'inscrit 1.7698 en B2 toujours 1.7735
En A9 s'inscrit 1.7701 en B2 toujours 1.7735
En A10 s'inscrit 1.7705 en B2 s'inscrit 1.7698
car 1ère condition remplie la valeur extrême <>0.0006 depuis A3
1.7735
2ème condition remplie dès qu'elle change de 0.0006 depuis
A8
1.7698

En A11 ainsi de suite.

STP s'il y a lieu peux-tu me faire les réctifications directement dans
le
classeur.

Encore merci de ta disponibilité.

--
bouak



Bonsoir Bouak,
;o) la formule ..hum oui mais...
!!!... surtout n'oublies pas ce qui suivait:
Puis remplacer, respectivement
dans les private sub de chaque feuille.



lSteph


"bouak" a écrit dans le message de
news:

Bonsoir LSteph,

J'attends demain de recevoir le flux en temps réel afin de savoir si
ça
marche et ensuite s'il y a lieu d'intégrer ta formule

Merci bien et Bonne soirée.
--
bouak



Re,
S'il t'en faut 2 cela ne peut être la même

'******
Public f1Xb
Public f3Xb
Private Sub Workbook_Open()
f1Xb = Feuil1.[b1]
f3Xb = Feuil3.[b1]
end sub
'*******

Puis remplacer, respectivement
dans les private sub de chaque feuille.

lSteph

"bouak" a écrit dans le message
de
news:

Bonsoir,

Non c'est pas un choix, c'est le non savoir d'intégrer les 2 en
une...

Suite à ton message je viens d'intégrer à ThisWorkbook

***********
Public fiXb
__________________________


End Sub

*************

Ceci est-il la bonne solution.

Encore merci de me guider

A+

--
bouak



Bonsoir,
Cela s'arrange donc!
Bien , tu as appliqué les codes en Private sub dans deux
feuilles,
c'est
un
choix, peut-être...
il en résulte que l'initialisation d'une seule variable
Publique
dans
le
thisworkbook suffit ou non ou
bien en prévoir 2 une pour Feuil1 une pour feuil3 , selon le
besoin.

A+

lSteph
"bouak" a écrit dans le
message
de
news:

Bonjour,

Ca y est j'ai compris le cheminement suite à tes précisions
pas à
pas...

J'ai rectifié, en espérant ... comme tu me l'a indiqué...
Le nouveau classeur rectifié est sur
http://cjoint.com/?bhqqFNoaas

Ne faut il rien ajouter à ThisWorkbook tenant compte du code
Feuil3
que
j'ai
renommée gbp

Je t'avais bien indiqué que j'étais nul... c'est ma PREMIERE
fois
en
VBA
...

Peux-tu m'aider pour ma demande qui est formulée à la feuille
gbp.

Merci et bon Week end


Merci et Bon Week end
--
bouak


Bonsoir Bouak,
J'ai bien vérifier tout et ok.


Aie Aie Ben non! d'après ce que je vois dans l'exemple de ton
nouveau
fil
pas vraiment
une Feuil3 est nommée feuil1
Dans le thisworkbook tu n'as rien mis ....
le modulede la feuil1que tu as nommée "gbp usd" contient
tout
le
code
dont
une
"private sub thisworkbook" qui ne veut rien dire à la place
(je
n'ai
pas
écrit cela)
....bon....pas grave!
........

quand tu es dans excel avec ton classeur ouvert fais alt+f11
pour
ouvrir
VBE
sur ta gauche une fenêtre devrait afficher l'explorateur de
projet
sinon
fais Ctrl+r
Tu devrais y trouver le nom de ton classeur en tant que
projet,
dedans
doubleclic sur thisworkbook son module s'ouvre à droite y
coller
ceci

'''***dans le thisworkbook
Public fiXb

Private Sub Workbook_Open()
fiXb = Feuil1.[b1]
End Sub
'''***

'Ensuite dans le code de Feuil1 celle qui concerne b1 tu
garde
juste





















1 2 3