Je voudrais cr=E9e deux colonnes num=E9riques et tester l'une=20
d'entre-elle.
Je m'explique:
Dans la premi=E8re colonne qui contient le champ PRIX et=20
dans la deuxi=E8me le champ NOUVEAU_PRIX et je voudrais d=E8s=20
que l'on saisi le nouveau prix dans la deuxi=E8me colonne=20
on apllique un test:
Le nouveau prix ne doit pas descendre en dessous du prix=20
actuel(premi=E8re colonne), donc si saisit un nouveau prix=20
inf=E9rieur =E0 l'ancien dans la deuxi=E8me colonne, on=20
applique par d=E9faut le prix de la premi=E8re colonne, sinon=20
si c'est sup=E9rieur on le laisse.
Par exemple:
L'ancien prix est 45, dans le nouveau si c'est > 45(par=20
ex. 69), on ne fait rien, sinon si(on tape 12 par ex.),=20
on met l'ancien prix c'est-=E0-dire 45!
Une fonction SI du genre:
=3DSI(A2>B2;A2;B2), =E7a ne marche pas!!!
Mais cela provoque quand même une erreur avec une sélection multiple avec une validation par un clique sur une autre cellule.
Heu.. je vois pas très bien ce que tu veux dire ... Tu peux être plus précis ?
AV
Jacky
Tu peux être plus précis ?
Je sélectionne b2:c3 J'entre une donnée Je confirme par entrer Cela fonctionne Mais si au lieu de confirmer par entrer, je clique sur une autre cellule, cela provoque une erreur. JJ
"AV" a écrit dans le message de news:
Mais cela provoque quand même une erreur avec une sélection multiple avec
une validation par un clique sur une autre cellule.
Heu.. je vois pas très bien ce que tu veux dire ... Tu peux être plus précis ?
AV
Tu peux être plus précis ?
Je sélectionne b2:c3
J'entre une donnée
Je confirme par entrer
Cela fonctionne
Mais si au lieu de confirmer par entrer, je clique sur une autre cellule,
cela provoque une erreur.
JJ
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message de
news:eXCYUoTWEHA.3200@TK2MSFTNGP09.phx.gbl...
Mais cela provoque quand même une erreur avec une sélection multiple
avec
une validation par un clique sur une autre cellule.
Heu.. je vois pas très bien ce que tu veux dire ...
Tu peux être plus précis ?
Je sélectionne b2:c3 J'entre une donnée Je confirme par entrer Cela fonctionne Mais si au lieu de confirmer par entrer, je clique sur une autre cellule, cela provoque une erreur. JJ
"AV" a écrit dans le message de news:
Mais cela provoque quand même une erreur avec une sélection multiple avec
une validation par un clique sur une autre cellule.
Heu.. je vois pas très bien ce que tu veux dire ... Tu peux être plus précis ?
AV
AV
Heu... avec la manip que tu indiques, je n'ai pas d'erreur ! T'es sur que tu as réactivé les évènements ? Pour plus de sureté (avant tests), exécute la petite macro suivante :
Sub zzz() Application.EnableEvents = True End Sub
AV
Heu... avec la manip que tu indiques, je n'ai pas d'erreur !
T'es sur que tu as réactivé les évènements ?
Pour plus de sureté (avant tests), exécute la petite macro suivante :
Heu... avec la manip que tu indiques, je n'ai pas d'erreur ! T'es sur que tu as réactivé les évènements ? Pour plus de sureté (avant tests), exécute la petite macro suivante :
Sub zzz() Application.EnableEvents = True End Sub
AV
Jacky
Re.. Erreur d'exécution '13', Type incompatible Sur la ligne: If zz.Value < zz.Offset(0, -1).Value Then
J'avoue que je ne comprend pas pourquoi, même avec: Application.EnableEvents = True en debut de macro
JJ
"AV" a écrit dans le message de news:
Heu... avec la manip que tu indiques, je n'ai pas d'erreur ! T'es sur que tu as réactivé les évènements ? Pour plus de sureté (avant tests), exécute la petite macro suivante :
Sub zzz() Application.EnableEvents = True End Sub
AV
Re..
Erreur d'exécution '13', Type incompatible
Sur la ligne:
If zz.Value < zz.Offset(0, -1).Value Then
J'avoue que je ne comprend pas pourquoi, même avec:
Application.EnableEvents = True
en debut de macro
JJ
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message de
news:uPvsLyTWEHA.1656@TK2MSFTNGP09.phx.gbl...
Heu... avec la manip que tu indiques, je n'ai pas d'erreur !
T'es sur que tu as réactivé les évènements ?
Pour plus de sureté (avant tests), exécute la petite macro suivante :
Re.. Erreur d'exécution '13', Type incompatible Sur la ligne: If zz.Value < zz.Offset(0, -1).Value Then
J'avoue que je ne comprend pas pourquoi, même avec: Application.EnableEvents = True en debut de macro
JJ
"AV" a écrit dans le message de news:
Heu... avec la manip que tu indiques, je n'ai pas d'erreur ! T'es sur que tu as réactivé les évènements ? Pour plus de sureté (avant tests), exécute la petite macro suivante :
Sub zzz() Application.EnableEvents = True End Sub
AV
AV
J'avoue que je ne comprend pas pourquoi, même avec:
J'avoue aussi ! ;-)
AV
J'avoue que je ne comprend pas pourquoi, même avec:
J'avoue que je ne comprend pas pourquoi, même avec:
J'avoue aussi ! ;-)
AV
Jacky
RE.... En enlevant tous les: Application.EnableEvents Excel vient de me provoquer une erreur de type 'violation de ........ et ma gentiment éjecté de l'application.(Et cela sur un autre ordinateur) Je vais voir cela de plus près demain. Bonne soirée JJ
"AV" a écrit dans le message de news:%
J'avoue que je ne comprend pas pourquoi, même avec:
J'avoue aussi ! ;-)
AV
RE....
En enlevant tous les:
Application.EnableEvents
Excel vient de me provoquer une erreur de type 'violation de ........
et ma gentiment éjecté de l'application.(Et cela sur un autre ordinateur)
Je vais voir cela de plus près demain.
Bonne soirée
JJ
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message de
news:%23WhyIWUWEHA.3596@tk2msftngp13.phx.gbl...
J'avoue que je ne comprend pas pourquoi, même avec:
RE.... En enlevant tous les: Application.EnableEvents Excel vient de me provoquer une erreur de type 'violation de ........ et ma gentiment éjecté de l'application.(Et cela sur un autre ordinateur) Je vais voir cela de plus près demain. Bonne soirée JJ
"AV" a écrit dans le message de news:%
J'avoue que je ne comprend pas pourquoi, même avec:
J'avoue aussi ! ;-)
AV
Daniel.M
Bonjour,
Erreur d'exécution '13', Type incompatible Sur la ligne: If zz.Value < zz.Offset(0, -1).Value Then
La cellule zz ou zz.Offset(0,-1) contient une valeur d'erreur.
La comparaison entre un nombre et une valeur d'erreur te génère une erreur 13.
If IsError(zz.Value) Or IsError(zz(1,-2).Value) Then ' on ne compare pas ElseIf zz.Value < zz(1,-2).Value Then ' ton ancien code
... End If
Salutations,
Daniel M.
Bonjour,
Erreur d'exécution '13', Type incompatible
Sur la ligne:
If zz.Value < zz.Offset(0, -1).Value Then
La cellule zz ou zz.Offset(0,-1) contient une valeur d'erreur.
La comparaison entre un nombre et une valeur d'erreur te génère une erreur 13.
If IsError(zz.Value) Or IsError(zz(1,-2).Value) Then
' on ne compare pas
ElseIf zz.Value < zz(1,-2).Value Then
' ton ancien code
If IsError(zz.Value) Or IsError(zz(1,-2).Value) Then ' on ne compare pas ElseIf zz.Value < zz(1,-2).Value Then
Pas zz(1,-2).Value mais bien zz(1,0).Value À corriger 2 fois.
Daniel M.
Jacky
Bonjour Daniel Désolé, mais cela provoque la même erreur en cas de selection multiple. If IsError(zz.Value) Or IsError(zz(1, 0).Value) Then ElseIf zz.Value < zz(1, 0).Value Then zz = zz.Offset(0, -1).Value End If
****<zz(1, 0).Value ****Je ne comprend pas ceci Salutations
JJ
"Daniel.M" a écrit dans le message de news:%
If IsError(zz.Value) Or IsError(zz(1,-2).Value) Then ' on ne compare pas ElseIf zz.Value < zz(1,-2).Value Then
Pas zz(1,-2).Value mais bien zz(1,0).Value À corriger 2 fois.
Daniel M.
Bonjour Daniel
Désolé, mais cela provoque la même erreur en cas de selection multiple.
If IsError(zz.Value) Or IsError(zz(1, 0).Value) Then
ElseIf zz.Value < zz(1, 0).Value Then
zz = zz.Offset(0, -1).Value
End If
****<zz(1, 0).Value ****Je ne comprend pas ceci
Salutations
JJ
"Daniel.M" <prenom.maher@bigfoot.inutil.com> a écrit dans le message de
news:%23ShyX4UWEHA.1952@TK2MSFTNGP12.phx.gbl...
If IsError(zz.Value) Or IsError(zz(1,-2).Value) Then
' on ne compare pas
ElseIf zz.Value < zz(1,-2).Value Then
Pas zz(1,-2).Value mais bien zz(1,0).Value
À corriger 2 fois.
Bonjour Daniel Désolé, mais cela provoque la même erreur en cas de selection multiple. If IsError(zz.Value) Or IsError(zz(1, 0).Value) Then ElseIf zz.Value < zz(1, 0).Value Then zz = zz.Offset(0, -1).Value End If
****<zz(1, 0).Value ****Je ne comprend pas ceci Salutations
JJ
"Daniel.M" a écrit dans le message de news:%
If IsError(zz.Value) Or IsError(zz(1,-2).Value) Then ' on ne compare pas ElseIf zz.Value < zz(1,-2).Value Then
Pas zz(1,-2).Value mais bien zz(1,0).Value À corriger 2 fois.
Daniel M.
Daniel.M
Salut Jacky,
Désolé, mais cela provoque la même erreur en cas de selection multiple.
C'était juste une précaution supplémentaire. Pour ma part, le code (ni celui d'AV) ne provoque pas d'erreur chez moi mais si je fais des sélections multiples.
Private Sub Worksheet_Change(ByVal zz As Excel.Range) If zz.Column <> 2 Then Exit Sub If Selection.Count > 1 Then Exit Sub
If IsError(zz(1, 1).Value) Or IsError(zz(1, 0).Value) Then ' on ne compare pas Debug.Print "on avait une erreur dans col a ou col b" ElseIf zz(1, 1).Value < zz(1, 0).Value Then ' ton ancien code Application.EnableEvents = False zz = zz.Offset(0, -1).Value Application.EnableEvents = True End If
End Sub
****<zz(1, 0).Value ****Je ne comprend pas ceci
La méthode Offset déplace la plage au complet. La méthode .Cells (implicite ici) se situe par rapport à la première cellule. Mais les compteurs ne sont pas les mêmes. Offset() commence à zéro alors que Cells() commence à 1.
Salutations,
Daniel M.
Salut Jacky,
Désolé, mais cela provoque la même erreur en cas de selection multiple.
C'était juste une précaution supplémentaire.
Pour ma part, le code (ni celui d'AV) ne provoque pas d'erreur chez moi mais si
je fais des sélections multiples.
Private Sub Worksheet_Change(ByVal zz As Excel.Range)
If zz.Column <> 2 Then Exit Sub
If Selection.Count > 1 Then Exit Sub
If IsError(zz(1, 1).Value) Or IsError(zz(1, 0).Value) Then
' on ne compare pas
Debug.Print "on avait une erreur dans col a ou col b"
ElseIf zz(1, 1).Value < zz(1, 0).Value Then
' ton ancien code
Application.EnableEvents = False
zz = zz.Offset(0, -1).Value
Application.EnableEvents = True
End If
End Sub
****<zz(1, 0).Value ****Je ne comprend pas ceci
La méthode Offset déplace la plage au complet. La méthode .Cells (implicite ici)
se situe par rapport à la première cellule. Mais les compteurs ne sont pas les
mêmes.
Offset() commence à zéro alors que Cells() commence à 1.
Désolé, mais cela provoque la même erreur en cas de selection multiple.
C'était juste une précaution supplémentaire. Pour ma part, le code (ni celui d'AV) ne provoque pas d'erreur chez moi mais si je fais des sélections multiples.
Private Sub Worksheet_Change(ByVal zz As Excel.Range) If zz.Column <> 2 Then Exit Sub If Selection.Count > 1 Then Exit Sub
If IsError(zz(1, 1).Value) Or IsError(zz(1, 0).Value) Then ' on ne compare pas Debug.Print "on avait une erreur dans col a ou col b" ElseIf zz(1, 1).Value < zz(1, 0).Value Then ' ton ancien code Application.EnableEvents = False zz = zz.Offset(0, -1).Value Application.EnableEvents = True End If
End Sub
****<zz(1, 0).Value ****Je ne comprend pas ceci
La méthode Offset déplace la plage au complet. La méthode .Cells (implicite ici) se situe par rapport à la première cellule. Mais les compteurs ne sont pas les mêmes. Offset() commence à zéro alors que Cells() commence à 1.