J'aimerais que l'utilisateur puisse soit rentrer B11 et B12 pour calculer
B15 et B16, soit faire le contraire.
J'aimerais que l'utilisateur puisse soit rentrer B11 et B12 pour calculer
B15 et B16, soit faire le contraire.
J'aimerais que l'utilisateur puisse soit rentrer B11 et B12 pour calculer
B15 et B16, soit faire le contraire.
"Florent149" a écrit ...J'aimerais que l'utilisateur puisse soit rentrer B11 et B12 pour calculer
B15 et B16, soit faire le contraire.
Bonjour,
Voir peut-être aussi du côté du "solveur" ?
"Florent149" a écrit ...
J'aimerais que l'utilisateur puisse soit rentrer B11 et B12 pour calculer
B15 et B16, soit faire le contraire.
Bonjour,
Voir peut-être aussi du côté du "solveur" ?
"Florent149" a écrit ...J'aimerais que l'utilisateur puisse soit rentrer B11 et B12 pour calculer
B15 et B16, soit faire le contraire.
Bonjour,
Voir peut-être aussi du côté du "solveur" ?
Cette methode semble tourner en boucle, l'affichage des cellules change a
toute vitesse, avant de me dire que je divise par 0.
Bonjour a tous,
J'espere que cette question n'a pas ete deja posee, mais mes recherches
sur
le forum ne m'ont rien donne donc je me decide a vous poser la question.
J'utilise Excel 2003.
Je dispose de quatre cellules qui vont "de paire", B11-B12 et B15-B16.
B11 se calcule a partir de B15 et B16
B12 se calcule a partir de B15 et B16
B15 se calcule a partir de B11 et B12
B16 se calcule a partir de B11 et B12
J'aimerais que l'utilisateur puisse soit rentrer B11 et B12 pour calculer
B15 et B16, soit faire le contraire.
Le probleme se complique puisqu'il y a des valeurs qui posent probleme
donc
il faut faire des cas particuliers. (principalement lorsque la valeur
d'une
ou plusieurs des cellules est nulle)
Voici ce que j'ai essaye de faire, et qui me donne des problemes
d'overflow
quelle que soit la valeur que je donne: (dans le code de la page)
Code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B11]) Is Nothing Then
If [B11] = 0 Then [B15] = 0
Else: [B15] = Atn(Cos(WorksheetFunction.Radians([B12])) *
Tan(WorksheetFunction.Radians([B11]))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B15]) Is Nothing Then
If [B15] = 0 Then [B11] = 0
Else: [B11] = Atn(Tan(WorksheetFunction.Radians([B16])) /
Sin(Atn(Tan(WorksheetFunction.Radians([B16])) /
Tan(WorksheetFunction.Radians([B15]))))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B12]) Is Nothing Then
If [B12] = 0 Then [B16] = 0
Else: [B16] = Atn(Sin(WorksheetFunction.Radians([B12])) *
Tan(WorksheetFunction.Radians([B11]))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B16]) Is Nothing Then
If [B16] = 0 Then [B12] = 0
Else: [B12] = Atn(Tan(WorksheetFunction.Radians([B16])) /
Tan(WorksheetFunction.Radians([B15]))) * Application.Pi() / 180
End If
End Sub
Cette methode semble tourner en boucle, l'affichage des cellules change a
toute vitesse, avant de me dire que je divise par 0.
Si vous avez des idees, suggestions, merci de votre aide!
--
Flo
Cette methode semble tourner en boucle, l'affichage des cellules change a
toute vitesse, avant de me dire que je divise par 0.
Bonjour a tous,
J'espere que cette question n'a pas ete deja posee, mais mes recherches
sur
le forum ne m'ont rien donne donc je me decide a vous poser la question.
J'utilise Excel 2003.
Je dispose de quatre cellules qui vont "de paire", B11-B12 et B15-B16.
B11 se calcule a partir de B15 et B16
B12 se calcule a partir de B15 et B16
B15 se calcule a partir de B11 et B12
B16 se calcule a partir de B11 et B12
J'aimerais que l'utilisateur puisse soit rentrer B11 et B12 pour calculer
B15 et B16, soit faire le contraire.
Le probleme se complique puisqu'il y a des valeurs qui posent probleme
donc
il faut faire des cas particuliers. (principalement lorsque la valeur
d'une
ou plusieurs des cellules est nulle)
Voici ce que j'ai essaye de faire, et qui me donne des problemes
d'overflow
quelle que soit la valeur que je donne: (dans le code de la page)
Code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B11]) Is Nothing Then
If [B11] = 0 Then [B15] = 0
Else: [B15] = Atn(Cos(WorksheetFunction.Radians([B12])) *
Tan(WorksheetFunction.Radians([B11]))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B15]) Is Nothing Then
If [B15] = 0 Then [B11] = 0
Else: [B11] = Atn(Tan(WorksheetFunction.Radians([B16])) /
Sin(Atn(Tan(WorksheetFunction.Radians([B16])) /
Tan(WorksheetFunction.Radians([B15]))))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B12]) Is Nothing Then
If [B12] = 0 Then [B16] = 0
Else: [B16] = Atn(Sin(WorksheetFunction.Radians([B12])) *
Tan(WorksheetFunction.Radians([B11]))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B16]) Is Nothing Then
If [B16] = 0 Then [B12] = 0
Else: [B12] = Atn(Tan(WorksheetFunction.Radians([B16])) /
Tan(WorksheetFunction.Radians([B15]))) * Application.Pi() / 180
End If
End Sub
Cette methode semble tourner en boucle, l'affichage des cellules change a
toute vitesse, avant de me dire que je divise par 0.
Si vous avez des idees, suggestions, merci de votre aide!
--
Flo
Cette methode semble tourner en boucle, l'affichage des cellules change a
toute vitesse, avant de me dire que je divise par 0.
Bonjour a tous,
J'espere que cette question n'a pas ete deja posee, mais mes recherches
sur
le forum ne m'ont rien donne donc je me decide a vous poser la question.
J'utilise Excel 2003.
Je dispose de quatre cellules qui vont "de paire", B11-B12 et B15-B16.
B11 se calcule a partir de B15 et B16
B12 se calcule a partir de B15 et B16
B15 se calcule a partir de B11 et B12
B16 se calcule a partir de B11 et B12
J'aimerais que l'utilisateur puisse soit rentrer B11 et B12 pour calculer
B15 et B16, soit faire le contraire.
Le probleme se complique puisqu'il y a des valeurs qui posent probleme
donc
il faut faire des cas particuliers. (principalement lorsque la valeur
d'une
ou plusieurs des cellules est nulle)
Voici ce que j'ai essaye de faire, et qui me donne des problemes
d'overflow
quelle que soit la valeur que je donne: (dans le code de la page)
Code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B11]) Is Nothing Then
If [B11] = 0 Then [B15] = 0
Else: [B15] = Atn(Cos(WorksheetFunction.Radians([B12])) *
Tan(WorksheetFunction.Radians([B11]))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B15]) Is Nothing Then
If [B15] = 0 Then [B11] = 0
Else: [B11] = Atn(Tan(WorksheetFunction.Radians([B16])) /
Sin(Atn(Tan(WorksheetFunction.Radians([B16])) /
Tan(WorksheetFunction.Radians([B15]))))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B12]) Is Nothing Then
If [B12] = 0 Then [B16] = 0
Else: [B16] = Atn(Sin(WorksheetFunction.Radians([B12])) *
Tan(WorksheetFunction.Radians([B11]))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B16]) Is Nothing Then
If [B16] = 0 Then [B12] = 0
Else: [B12] = Atn(Tan(WorksheetFunction.Radians([B16])) /
Tan(WorksheetFunction.Radians([B15]))) * Application.Pi() / 180
End If
End Sub
Cette methode semble tourner en boucle, l'affichage des cellules change a
toute vitesse, avant de me dire que je divise par 0.
Si vous avez des idees, suggestions, merci de votre aide!
--
Flo
Bonjour,Cette methode semble tourner en boucle, l'affichage des cellules change a
toute vitesse, avant de me dire que je divise par 0.
Il faut modifier ta procédure pour éviter les appels récursifs:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEventsúlse
'code
Application.EnableEvents=True
End Sub
Cordialement,
Manu/
"Florent149" a écrit dans le message de
news:Bonjour a tous,
J'espere que cette question n'a pas ete deja posee, mais mes recherches
sur
le forum ne m'ont rien donne donc je me decide a vous poser la question.
J'utilise Excel 2003.
Je dispose de quatre cellules qui vont "de paire", B11-B12 et B15-B16.
B11 se calcule a partir de B15 et B16
B12 se calcule a partir de B15 et B16
B15 se calcule a partir de B11 et B12
B16 se calcule a partir de B11 et B12
J'aimerais que l'utilisateur puisse soit rentrer B11 et B12 pour calculer
B15 et B16, soit faire le contraire.
Le probleme se complique puisqu'il y a des valeurs qui posent probleme
donc
il faut faire des cas particuliers. (principalement lorsque la valeur
d'une
ou plusieurs des cellules est nulle)
Voici ce que j'ai essaye de faire, et qui me donne des problemes
d'overflow
quelle que soit la valeur que je donne: (dans le code de la page)
Code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B11]) Is Nothing Then
If [B11] = 0 Then [B15] = 0
Else: [B15] = Atn(Cos(WorksheetFunction.Radians([B12])) *
Tan(WorksheetFunction.Radians([B11]))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B15]) Is Nothing Then
If [B15] = 0 Then [B11] = 0
Else: [B11] = Atn(Tan(WorksheetFunction.Radians([B16])) /
Sin(Atn(Tan(WorksheetFunction.Radians([B16])) /
Tan(WorksheetFunction.Radians([B15]))))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B12]) Is Nothing Then
If [B12] = 0 Then [B16] = 0
Else: [B16] = Atn(Sin(WorksheetFunction.Radians([B12])) *
Tan(WorksheetFunction.Radians([B11]))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B16]) Is Nothing Then
If [B16] = 0 Then [B12] = 0
Else: [B12] = Atn(Tan(WorksheetFunction.Radians([B16])) /
Tan(WorksheetFunction.Radians([B15]))) * Application.Pi() / 180
End If
End Sub
Cette methode semble tourner en boucle, l'affichage des cellules change a
toute vitesse, avant de me dire que je divise par 0.
Si vous avez des idees, suggestions, merci de votre aide!
--
Flo
Bonjour,
Cette methode semble tourner en boucle, l'affichage des cellules change a
toute vitesse, avant de me dire que je divise par 0.
Il faut modifier ta procédure pour éviter les appels récursifs:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEventsúlse
'code
Application.EnableEvents=True
End Sub
Cordialement,
Manu/
"Florent149" <FHuraultNONAUSPAM@technip.com> a écrit dans le message de
news: D77718E4-459C-479F-A8ED-20C88FC37B8F@microsoft.com...
Bonjour a tous,
J'espere que cette question n'a pas ete deja posee, mais mes recherches
sur
le forum ne m'ont rien donne donc je me decide a vous poser la question.
J'utilise Excel 2003.
Je dispose de quatre cellules qui vont "de paire", B11-B12 et B15-B16.
B11 se calcule a partir de B15 et B16
B12 se calcule a partir de B15 et B16
B15 se calcule a partir de B11 et B12
B16 se calcule a partir de B11 et B12
J'aimerais que l'utilisateur puisse soit rentrer B11 et B12 pour calculer
B15 et B16, soit faire le contraire.
Le probleme se complique puisqu'il y a des valeurs qui posent probleme
donc
il faut faire des cas particuliers. (principalement lorsque la valeur
d'une
ou plusieurs des cellules est nulle)
Voici ce que j'ai essaye de faire, et qui me donne des problemes
d'overflow
quelle que soit la valeur que je donne: (dans le code de la page)
Code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B11]) Is Nothing Then
If [B11] = 0 Then [B15] = 0
Else: [B15] = Atn(Cos(WorksheetFunction.Radians([B12])) *
Tan(WorksheetFunction.Radians([B11]))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B15]) Is Nothing Then
If [B15] = 0 Then [B11] = 0
Else: [B11] = Atn(Tan(WorksheetFunction.Radians([B16])) /
Sin(Atn(Tan(WorksheetFunction.Radians([B16])) /
Tan(WorksheetFunction.Radians([B15]))))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B12]) Is Nothing Then
If [B12] = 0 Then [B16] = 0
Else: [B16] = Atn(Sin(WorksheetFunction.Radians([B12])) *
Tan(WorksheetFunction.Radians([B11]))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B16]) Is Nothing Then
If [B16] = 0 Then [B12] = 0
Else: [B12] = Atn(Tan(WorksheetFunction.Radians([B16])) /
Tan(WorksheetFunction.Radians([B15]))) * Application.Pi() / 180
End If
End Sub
Cette methode semble tourner en boucle, l'affichage des cellules change a
toute vitesse, avant de me dire que je divise par 0.
Si vous avez des idees, suggestions, merci de votre aide!
--
Flo
Bonjour,Cette methode semble tourner en boucle, l'affichage des cellules change a
toute vitesse, avant de me dire que je divise par 0.
Il faut modifier ta procédure pour éviter les appels récursifs:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEventsúlse
'code
Application.EnableEvents=True
End Sub
Cordialement,
Manu/
"Florent149" a écrit dans le message de
news:Bonjour a tous,
J'espere que cette question n'a pas ete deja posee, mais mes recherches
sur
le forum ne m'ont rien donne donc je me decide a vous poser la question.
J'utilise Excel 2003.
Je dispose de quatre cellules qui vont "de paire", B11-B12 et B15-B16.
B11 se calcule a partir de B15 et B16
B12 se calcule a partir de B15 et B16
B15 se calcule a partir de B11 et B12
B16 se calcule a partir de B11 et B12
J'aimerais que l'utilisateur puisse soit rentrer B11 et B12 pour calculer
B15 et B16, soit faire le contraire.
Le probleme se complique puisqu'il y a des valeurs qui posent probleme
donc
il faut faire des cas particuliers. (principalement lorsque la valeur
d'une
ou plusieurs des cellules est nulle)
Voici ce que j'ai essaye de faire, et qui me donne des problemes
d'overflow
quelle que soit la valeur que je donne: (dans le code de la page)
Code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B11]) Is Nothing Then
If [B11] = 0 Then [B15] = 0
Else: [B15] = Atn(Cos(WorksheetFunction.Radians([B12])) *
Tan(WorksheetFunction.Radians([B11]))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B15]) Is Nothing Then
If [B15] = 0 Then [B11] = 0
Else: [B11] = Atn(Tan(WorksheetFunction.Radians([B16])) /
Sin(Atn(Tan(WorksheetFunction.Radians([B16])) /
Tan(WorksheetFunction.Radians([B15]))))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B12]) Is Nothing Then
If [B12] = 0 Then [B16] = 0
Else: [B16] = Atn(Sin(WorksheetFunction.Radians([B12])) *
Tan(WorksheetFunction.Radians([B11]))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B16]) Is Nothing Then
If [B16] = 0 Then [B12] = 0
Else: [B12] = Atn(Tan(WorksheetFunction.Radians([B16])) /
Tan(WorksheetFunction.Radians([B15]))) * Application.Pi() / 180
End If
End Sub
Cette methode semble tourner en boucle, l'affichage des cellules change a
toute vitesse, avant de me dire que je divise par 0.
Si vous avez des idees, suggestions, merci de votre aide!
--
Flo
Merci Emmanuel, il y a deja une petite avancee dans le sens ou ca ne
plante
plus a chaque fois. Par contre ca ne marche pas puisque le changement
d'une
cellule ne declenche pas le changement de celle qui est supposee recevoir
la
formule adequat...
Les cellules semblent donc etre completement independantes, etrange!
--
Flo
"tissot.emmanuel" wrote:Bonjour,Cette methode semble tourner en boucle, l'affichage des cellules change
a
toute vitesse, avant de me dire que je divise par 0.
Il faut modifier ta procédure pour éviter les appels récursifs:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEventsúlse
'code
Application.EnableEvents=True
End Sub
Cordialement,
Manu/
"Florent149" a écrit dans le message de
news:Bonjour a tous,
J'espere que cette question n'a pas ete deja posee, mais mes recherches
sur
le forum ne m'ont rien donne donc je me decide a vous poser la
question.
J'utilise Excel 2003.
Je dispose de quatre cellules qui vont "de paire", B11-B12 et B15-B16.
B11 se calcule a partir de B15 et B16
B12 se calcule a partir de B15 et B16
B15 se calcule a partir de B11 et B12
B16 se calcule a partir de B11 et B12
J'aimerais que l'utilisateur puisse soit rentrer B11 et B12 pour
calculer
B15 et B16, soit faire le contraire.
Le probleme se complique puisqu'il y a des valeurs qui posent probleme
donc
il faut faire des cas particuliers. (principalement lorsque la valeur
d'une
ou plusieurs des cellules est nulle)
Voici ce que j'ai essaye de faire, et qui me donne des problemes
d'overflow
quelle que soit la valeur que je donne: (dans le code de la page)
Code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B11]) Is Nothing Then
If [B11] = 0 Then [B15] = 0
Else: [B15] = Atn(Cos(WorksheetFunction.Radians([B12])) *
Tan(WorksheetFunction.Radians([B11]))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B15]) Is Nothing Then
If [B15] = 0 Then [B11] = 0
Else: [B11] = Atn(Tan(WorksheetFunction.Radians([B16])) /
Sin(Atn(Tan(WorksheetFunction.Radians([B16])) /
Tan(WorksheetFunction.Radians([B15]))))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B12]) Is Nothing Then
If [B12] = 0 Then [B16] = 0
Else: [B16] = Atn(Sin(WorksheetFunction.Radians([B12])) *
Tan(WorksheetFunction.Radians([B11]))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B16]) Is Nothing Then
If [B16] = 0 Then [B12] = 0
Else: [B12] = Atn(Tan(WorksheetFunction.Radians([B16])) /
Tan(WorksheetFunction.Radians([B15]))) * Application.Pi() / 180
End If
End Sub
Cette methode semble tourner en boucle, l'affichage des cellules change
a
toute vitesse, avant de me dire que je divise par 0.
Si vous avez des idees, suggestions, merci de votre aide!
--
Flo
Merci Emmanuel, il y a deja une petite avancee dans le sens ou ca ne
plante
plus a chaque fois. Par contre ca ne marche pas puisque le changement
d'une
cellule ne declenche pas le changement de celle qui est supposee recevoir
la
formule adequat...
Les cellules semblent donc etre completement independantes, etrange!
--
Flo
"tissot.emmanuel" wrote:
Bonjour,
Cette methode semble tourner en boucle, l'affichage des cellules change
a
toute vitesse, avant de me dire que je divise par 0.
Il faut modifier ta procédure pour éviter les appels récursifs:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEventsúlse
'code
Application.EnableEvents=True
End Sub
Cordialement,
Manu/
"Florent149" <FHuraultNONAUSPAM@technip.com> a écrit dans le message de
news: D77718E4-459C-479F-A8ED-20C88FC37B8F@microsoft.com...
Bonjour a tous,
J'espere que cette question n'a pas ete deja posee, mais mes recherches
sur
le forum ne m'ont rien donne donc je me decide a vous poser la
question.
J'utilise Excel 2003.
Je dispose de quatre cellules qui vont "de paire", B11-B12 et B15-B16.
B11 se calcule a partir de B15 et B16
B12 se calcule a partir de B15 et B16
B15 se calcule a partir de B11 et B12
B16 se calcule a partir de B11 et B12
J'aimerais que l'utilisateur puisse soit rentrer B11 et B12 pour
calculer
B15 et B16, soit faire le contraire.
Le probleme se complique puisqu'il y a des valeurs qui posent probleme
donc
il faut faire des cas particuliers. (principalement lorsque la valeur
d'une
ou plusieurs des cellules est nulle)
Voici ce que j'ai essaye de faire, et qui me donne des problemes
d'overflow
quelle que soit la valeur que je donne: (dans le code de la page)
Code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B11]) Is Nothing Then
If [B11] = 0 Then [B15] = 0
Else: [B15] = Atn(Cos(WorksheetFunction.Radians([B12])) *
Tan(WorksheetFunction.Radians([B11]))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B15]) Is Nothing Then
If [B15] = 0 Then [B11] = 0
Else: [B11] = Atn(Tan(WorksheetFunction.Radians([B16])) /
Sin(Atn(Tan(WorksheetFunction.Radians([B16])) /
Tan(WorksheetFunction.Radians([B15]))))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B12]) Is Nothing Then
If [B12] = 0 Then [B16] = 0
Else: [B16] = Atn(Sin(WorksheetFunction.Radians([B12])) *
Tan(WorksheetFunction.Radians([B11]))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B16]) Is Nothing Then
If [B16] = 0 Then [B12] = 0
Else: [B12] = Atn(Tan(WorksheetFunction.Radians([B16])) /
Tan(WorksheetFunction.Radians([B15]))) * Application.Pi() / 180
End If
End Sub
Cette methode semble tourner en boucle, l'affichage des cellules change
a
toute vitesse, avant de me dire que je divise par 0.
Si vous avez des idees, suggestions, merci de votre aide!
--
Flo
Merci Emmanuel, il y a deja une petite avancee dans le sens ou ca ne
plante
plus a chaque fois. Par contre ca ne marche pas puisque le changement
d'une
cellule ne declenche pas le changement de celle qui est supposee recevoir
la
formule adequat...
Les cellules semblent donc etre completement independantes, etrange!
--
Flo
"tissot.emmanuel" wrote:Bonjour,Cette methode semble tourner en boucle, l'affichage des cellules change
a
toute vitesse, avant de me dire que je divise par 0.
Il faut modifier ta procédure pour éviter les appels récursifs:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEventsúlse
'code
Application.EnableEvents=True
End Sub
Cordialement,
Manu/
"Florent149" a écrit dans le message de
news:Bonjour a tous,
J'espere que cette question n'a pas ete deja posee, mais mes recherches
sur
le forum ne m'ont rien donne donc je me decide a vous poser la
question.
J'utilise Excel 2003.
Je dispose de quatre cellules qui vont "de paire", B11-B12 et B15-B16.
B11 se calcule a partir de B15 et B16
B12 se calcule a partir de B15 et B16
B15 se calcule a partir de B11 et B12
B16 se calcule a partir de B11 et B12
J'aimerais que l'utilisateur puisse soit rentrer B11 et B12 pour
calculer
B15 et B16, soit faire le contraire.
Le probleme se complique puisqu'il y a des valeurs qui posent probleme
donc
il faut faire des cas particuliers. (principalement lorsque la valeur
d'une
ou plusieurs des cellules est nulle)
Voici ce que j'ai essaye de faire, et qui me donne des problemes
d'overflow
quelle que soit la valeur que je donne: (dans le code de la page)
Code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B11]) Is Nothing Then
If [B11] = 0 Then [B15] = 0
Else: [B15] = Atn(Cos(WorksheetFunction.Radians([B12])) *
Tan(WorksheetFunction.Radians([B11]))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B15]) Is Nothing Then
If [B15] = 0 Then [B11] = 0
Else: [B11] = Atn(Tan(WorksheetFunction.Radians([B16])) /
Sin(Atn(Tan(WorksheetFunction.Radians([B16])) /
Tan(WorksheetFunction.Radians([B15]))))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B12]) Is Nothing Then
If [B12] = 0 Then [B16] = 0
Else: [B16] = Atn(Sin(WorksheetFunction.Radians([B12])) *
Tan(WorksheetFunction.Radians([B11]))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B16]) Is Nothing Then
If [B16] = 0 Then [B12] = 0
Else: [B12] = Atn(Tan(WorksheetFunction.Radians([B16])) /
Tan(WorksheetFunction.Radians([B15]))) * Application.Pi() / 180
End If
End Sub
Cette methode semble tourner en boucle, l'affichage des cellules change
a
toute vitesse, avant de me dire que je divise par 0.
Si vous avez des idees, suggestions, merci de votre aide!
--
Flo
Bonjour et merci de ta reponse si rapide, mais peut tu preciser tes pensees
s'il te plait?
Je ne connais pas le solveur en question. (j'avoue que mes connaissances
sont assez limitees...)
Bonjour et merci de ta reponse si rapide, mais peut tu preciser tes pensees
s'il te plait?
Je ne connais pas le solveur en question. (j'avoue que mes connaissances
sont assez limitees...)
Bonjour et merci de ta reponse si rapide, mais peut tu preciser tes pensees
s'il te plait?
Je ne connais pas le solveur en question. (j'avoue que mes connaissances
sont assez limitees...)
Re-bonjour,
Peut etre comme ceci:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, Range("B11:B16")) Is Nothing And Target.Count =
1 Then
Select Case Target.Address
Case "$B$11"
'Tes calculs
Case "$B$12"
'Tes calculs
Case "$B$15"
'Tes calculs
Case "$B$16"
'Tes calculs
Case Else
'rien
End Select
End If
Application.EnableEvents = True
End Sub
Cordialement,
Manu/
"Florent149" a écrit dans le message de
news:Merci Emmanuel, il y a deja une petite avancee dans le sens ou ca ne
plante
plus a chaque fois. Par contre ca ne marche pas puisque le changement
d'une
cellule ne declenche pas le changement de celle qui est supposee recevoir
la
formule adequat...
Les cellules semblent donc etre completement independantes, etrange!
--
Flo
"tissot.emmanuel" wrote:Bonjour,Cette methode semble tourner en boucle, l'affichage des cellules change
a
toute vitesse, avant de me dire que je divise par 0.
Il faut modifier ta procédure pour éviter les appels récursifs:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEventsúlse
'code
Application.EnableEvents=True
End Sub
Cordialement,
Manu/
"Florent149" a écrit dans le message de
news:Bonjour a tous,
J'espere que cette question n'a pas ete deja posee, mais mes recherches
sur
le forum ne m'ont rien donne donc je me decide a vous poser la
question.
J'utilise Excel 2003.
Je dispose de quatre cellules qui vont "de paire", B11-B12 et B15-B16.
B11 se calcule a partir de B15 et B16
B12 se calcule a partir de B15 et B16
B15 se calcule a partir de B11 et B12
B16 se calcule a partir de B11 et B12
J'aimerais que l'utilisateur puisse soit rentrer B11 et B12 pour
calculer
B15 et B16, soit faire le contraire.
Le probleme se complique puisqu'il y a des valeurs qui posent probleme
donc
il faut faire des cas particuliers. (principalement lorsque la valeur
d'une
ou plusieurs des cellules est nulle)
Voici ce que j'ai essaye de faire, et qui me donne des problemes
d'overflow
quelle que soit la valeur que je donne: (dans le code de la page)
Code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B11]) Is Nothing Then
If [B11] = 0 Then [B15] = 0
Else: [B15] = Atn(Cos(WorksheetFunction.Radians([B12])) *
Tan(WorksheetFunction.Radians([B11]))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B15]) Is Nothing Then
If [B15] = 0 Then [B11] = 0
Else: [B11] = Atn(Tan(WorksheetFunction.Radians([B16])) /
Sin(Atn(Tan(WorksheetFunction.Radians([B16])) /
Tan(WorksheetFunction.Radians([B15]))))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B12]) Is Nothing Then
If [B12] = 0 Then [B16] = 0
Else: [B16] = Atn(Sin(WorksheetFunction.Radians([B12])) *
Tan(WorksheetFunction.Radians([B11]))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B16]) Is Nothing Then
If [B16] = 0 Then [B12] = 0
Else: [B12] = Atn(Tan(WorksheetFunction.Radians([B16])) /
Tan(WorksheetFunction.Radians([B15]))) * Application.Pi() / 180
End If
End Sub
Cette methode semble tourner en boucle, l'affichage des cellules change
a
toute vitesse, avant de me dire que je divise par 0.
Si vous avez des idees, suggestions, merci de votre aide!
--
Flo
Re-bonjour,
Peut etre comme ceci:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, Range("B11:B16")) Is Nothing And Target.Count =
1 Then
Select Case Target.Address
Case "$B$11"
'Tes calculs
Case "$B$12"
'Tes calculs
Case "$B$15"
'Tes calculs
Case "$B$16"
'Tes calculs
Case Else
'rien
End Select
End If
Application.EnableEvents = True
End Sub
Cordialement,
Manu/
"Florent149" <FHuraultNONAUSPAM@technip.com> a écrit dans le message de
news: 7B1B693B-D739-4021-B89D-16143BCBFBF3@microsoft.com...
Merci Emmanuel, il y a deja une petite avancee dans le sens ou ca ne
plante
plus a chaque fois. Par contre ca ne marche pas puisque le changement
d'une
cellule ne declenche pas le changement de celle qui est supposee recevoir
la
formule adequat...
Les cellules semblent donc etre completement independantes, etrange!
--
Flo
"tissot.emmanuel" wrote:
Bonjour,
Cette methode semble tourner en boucle, l'affichage des cellules change
a
toute vitesse, avant de me dire que je divise par 0.
Il faut modifier ta procédure pour éviter les appels récursifs:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEventsúlse
'code
Application.EnableEvents=True
End Sub
Cordialement,
Manu/
"Florent149" <FHuraultNONAUSPAM@technip.com> a écrit dans le message de
news: D77718E4-459C-479F-A8ED-20C88FC37B8F@microsoft.com...
Bonjour a tous,
J'espere que cette question n'a pas ete deja posee, mais mes recherches
sur
le forum ne m'ont rien donne donc je me decide a vous poser la
question.
J'utilise Excel 2003.
Je dispose de quatre cellules qui vont "de paire", B11-B12 et B15-B16.
B11 se calcule a partir de B15 et B16
B12 se calcule a partir de B15 et B16
B15 se calcule a partir de B11 et B12
B16 se calcule a partir de B11 et B12
J'aimerais que l'utilisateur puisse soit rentrer B11 et B12 pour
calculer
B15 et B16, soit faire le contraire.
Le probleme se complique puisqu'il y a des valeurs qui posent probleme
donc
il faut faire des cas particuliers. (principalement lorsque la valeur
d'une
ou plusieurs des cellules est nulle)
Voici ce que j'ai essaye de faire, et qui me donne des problemes
d'overflow
quelle que soit la valeur que je donne: (dans le code de la page)
Code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B11]) Is Nothing Then
If [B11] = 0 Then [B15] = 0
Else: [B15] = Atn(Cos(WorksheetFunction.Radians([B12])) *
Tan(WorksheetFunction.Radians([B11]))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B15]) Is Nothing Then
If [B15] = 0 Then [B11] = 0
Else: [B11] = Atn(Tan(WorksheetFunction.Radians([B16])) /
Sin(Atn(Tan(WorksheetFunction.Radians([B16])) /
Tan(WorksheetFunction.Radians([B15]))))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B12]) Is Nothing Then
If [B12] = 0 Then [B16] = 0
Else: [B16] = Atn(Sin(WorksheetFunction.Radians([B12])) *
Tan(WorksheetFunction.Radians([B11]))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B16]) Is Nothing Then
If [B16] = 0 Then [B12] = 0
Else: [B12] = Atn(Tan(WorksheetFunction.Radians([B16])) /
Tan(WorksheetFunction.Radians([B15]))) * Application.Pi() / 180
End If
End Sub
Cette methode semble tourner en boucle, l'affichage des cellules change
a
toute vitesse, avant de me dire que je divise par 0.
Si vous avez des idees, suggestions, merci de votre aide!
--
Flo
Re-bonjour,
Peut etre comme ceci:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, Range("B11:B16")) Is Nothing And Target.Count =
1 Then
Select Case Target.Address
Case "$B$11"
'Tes calculs
Case "$B$12"
'Tes calculs
Case "$B$15"
'Tes calculs
Case "$B$16"
'Tes calculs
Case Else
'rien
End Select
End If
Application.EnableEvents = True
End Sub
Cordialement,
Manu/
"Florent149" a écrit dans le message de
news:Merci Emmanuel, il y a deja une petite avancee dans le sens ou ca ne
plante
plus a chaque fois. Par contre ca ne marche pas puisque le changement
d'une
cellule ne declenche pas le changement de celle qui est supposee recevoir
la
formule adequat...
Les cellules semblent donc etre completement independantes, etrange!
--
Flo
"tissot.emmanuel" wrote:Bonjour,Cette methode semble tourner en boucle, l'affichage des cellules change
a
toute vitesse, avant de me dire que je divise par 0.
Il faut modifier ta procédure pour éviter les appels récursifs:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEventsúlse
'code
Application.EnableEvents=True
End Sub
Cordialement,
Manu/
"Florent149" a écrit dans le message de
news:Bonjour a tous,
J'espere que cette question n'a pas ete deja posee, mais mes recherches
sur
le forum ne m'ont rien donne donc je me decide a vous poser la
question.
J'utilise Excel 2003.
Je dispose de quatre cellules qui vont "de paire", B11-B12 et B15-B16.
B11 se calcule a partir de B15 et B16
B12 se calcule a partir de B15 et B16
B15 se calcule a partir de B11 et B12
B16 se calcule a partir de B11 et B12
J'aimerais que l'utilisateur puisse soit rentrer B11 et B12 pour
calculer
B15 et B16, soit faire le contraire.
Le probleme se complique puisqu'il y a des valeurs qui posent probleme
donc
il faut faire des cas particuliers. (principalement lorsque la valeur
d'une
ou plusieurs des cellules est nulle)
Voici ce que j'ai essaye de faire, et qui me donne des problemes
d'overflow
quelle que soit la valeur que je donne: (dans le code de la page)
Code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B11]) Is Nothing Then
If [B11] = 0 Then [B15] = 0
Else: [B15] = Atn(Cos(WorksheetFunction.Radians([B12])) *
Tan(WorksheetFunction.Radians([B11]))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B15]) Is Nothing Then
If [B15] = 0 Then [B11] = 0
Else: [B11] = Atn(Tan(WorksheetFunction.Radians([B16])) /
Sin(Atn(Tan(WorksheetFunction.Radians([B16])) /
Tan(WorksheetFunction.Radians([B15]))))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B12]) Is Nothing Then
If [B12] = 0 Then [B16] = 0
Else: [B16] = Atn(Sin(WorksheetFunction.Radians([B12])) *
Tan(WorksheetFunction.Radians([B11]))) * Application.Pi() / 180
End If
If Not Intersect(Target, [B16]) Is Nothing Then
If [B16] = 0 Then [B12] = 0
Else: [B12] = Atn(Tan(WorksheetFunction.Radians([B16])) /
Tan(WorksheetFunction.Radians([B15]))) * Application.Pi() / 180
End If
End Sub
Cette methode semble tourner en boucle, l'affichage des cellules change
a
toute vitesse, avant de me dire que je divise par 0.
Si vous avez des idees, suggestions, merci de votre aide!
--
Flo