J'ai fait cet exemple, dans lequel j'ai le prix unitaire, quantit=E9 et
total par prix unitaire.
Mais j'=E9prouve des difficult=E9s pour la formule en B qui me donne des
z=E9ros dans B si la condition n'est pas remplie, or j'aimerai avoir une
cellule vide =E0 la place.
Un deuxi=E8me probl=E8me, je le rencontre pour totaliser la colonne B
ainsi que la colonne C.
Private Sub Worksheet_Change(ByVal Target As Range) 'MPFE le 21/10/2007 If Target.Count > 1 Then Exit Sub li = Target.Row If li > 9 Or li = 1 Then Exit Sub ' MsgBox "A=" & Range("A" & li) & " B=" & Range("B" & li) & " C=" & Range("C" & li)
' C & B renseignées, A? If Range("B" & li) <> "" And Range("C" & li) <> "" Then Application.EnableEvents = False Range("A" & li) = Range("C" & li) / Range("B" & li) Application.EnableEvents = True End If
' A & C renseignées, B? If Range("A" & li) <> "" And Range("C" & li) <> "" Then Application.EnableEvents = False Range("B" & li) = Range("C" & li) / Range("A" & li) If Range("B" & li) - Int(Range("B" & li)) > 0 Then Range("B" & li).NumberFormat = "0.0#" Else Range("B" & li).NumberFormat = "General"
End If Application.EnableEvents = True End If
' A & B renseignées, C? If Range("A" & li) <> "" And Range("B" & li) <> "" Then Application.EnableEvents = False Range("C" & li) = Range("A" & li) * Range("B" & li) ' coul Application.EnableEvents = True End If
'A, B & C renseignées '> Lorsque tu reviens pour corriger une saisie, par exemple en C, '> que faut il considérer, qu'on recherchait A ou B par calcul ? ' 'C'est pour calculer B, bien sur si A est connue 'Si on veut calculer A il faut effacer egalement B ' 'Si on veut calculer A on doit effacer B et C ' 'Quand on rectifie A, les deux autres cellules B & C s'effaceront 'automatiquement. On devra ressaisir ensuite B et C
If Range("A" & li) <> "" And Range("B" & li) <> "" _ And Range("C" & li) <> "" Then Application.EnableEvents = False If Target.Column = 1 Then Union(Range("B" & li), Range("C" & li)).ClearContents MsgBox "Merci de resaisir l'autre bonne valeur connue", _ vbInformation, "MPFE" ElseIf Target.Column = 3 Then Range("B" & li) = Range("C" & li) / Range("A" & li) If Range("B" & li) - Int(Range("B" & li)) > 0 Then Range("B" & li).NumberFormat = "0.0#" Else Range("B" & li).NumberFormat = "General" End If ElseIf Target.Column = 2 Then Application.EnableEvents = False Range("C" & li) = Range("A" & li) * Range("B" & li) End If Application.EnableEvents = True End If
End Sub
-- http://www.excelabo.net/mpfe/connexion.php http://dj.joss.free.fr/trombine.htm Avec plaisir Philippe.R "Apitos" a écrit dans le message de news: Bonjour,
Lorsque tu reviens pour corriger une saisie, par exemple en C, que faut il considérer, qu'on recherchait A ou B par calcul ?
C'est pour calculer B, bien sur si A est connue
Si on veut calculer A il faut effacer egalement B
Le plus simple avec le code que tu publies serait d'effacer au moins deux valeurs (dont celle à calculer) avant de ressaisir la bonne valeur.
Si on veut calculer A on doit effacer B et C
Quand on rectifie A, les deux autres cellules B & C s'effaceront automatiquement. On devra ressaisir ensuite B et C
Merci.
Bonjour,
Comme ceci ?
Private Sub Worksheet_Change(ByVal Target As Range)
'MPFE le 21/10/2007
If Target.Count > 1 Then Exit Sub
li = Target.Row
If li > 9 Or li = 1 Then Exit Sub
' MsgBox "A=" & Range("A" & li) & " B=" & Range("B" & li) & " C=" &
Range("C" & li)
' C & B renseignées, A?
If Range("B" & li) <> "" And Range("C" & li) <> "" Then
Application.EnableEvents = False
Range("A" & li) = Range("C" & li) / Range("B" & li)
Application.EnableEvents = True
End If
' A & C renseignées, B?
If Range("A" & li) <> "" And Range("C" & li) <> "" Then
Application.EnableEvents = False
Range("B" & li) = Range("C" & li) / Range("A" & li)
If Range("B" & li) - Int(Range("B" & li)) > 0 Then
Range("B" & li).NumberFormat = "0.0#"
Else
Range("B" & li).NumberFormat = "General"
End If
Application.EnableEvents = True
End If
' A & B renseignées, C?
If Range("A" & li) <> "" And Range("B" & li) <> "" Then
Application.EnableEvents = False
Range("C" & li) = Range("A" & li) * Range("B" & li)
' coul
Application.EnableEvents = True
End If
'A, B & C renseignées
'> Lorsque tu reviens pour corriger une saisie, par exemple en C,
'> que faut il considérer, qu'on recherchait A ou B par calcul ?
'
'C'est pour calculer B, bien sur si A est connue
'Si on veut calculer A il faut effacer egalement B
'
'Si on veut calculer A on doit effacer B et C
'
'Quand on rectifie A, les deux autres cellules B & C s'effaceront
'automatiquement. On devra ressaisir ensuite B et C
If Range("A" & li) <> "" And Range("B" & li) <> "" _
And Range("C" & li) <> "" Then
Application.EnableEvents = False
If Target.Column = 1 Then
Union(Range("B" & li), Range("C" & li)).ClearContents
MsgBox "Merci de resaisir l'autre bonne valeur connue", _
vbInformation, "MPFE"
ElseIf Target.Column = 3 Then
Range("B" & li) = Range("C" & li) / Range("A" & li)
If Range("B" & li) - Int(Range("B" & li)) > 0 Then
Range("B" & li).NumberFormat = "0.0#"
Else
Range("B" & li).NumberFormat = "General"
End If
ElseIf Target.Column = 2 Then
Application.EnableEvents = False
Range("C" & li) = Range("A" & li) * Range("B" & li)
End If
Application.EnableEvents = True
End If
End Sub
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"Apitos" <apitos@gmail.com> a écrit dans le message de
news:1192579873.928535.305230@i38g2000prf.googlegroups.com...
Bonjour,
Lorsque tu reviens pour corriger une saisie, par exemple en C, que faut il
considérer, qu'on recherchait A ou B par calcul ?
C'est pour calculer B, bien sur si A est connue
Si on veut calculer A il faut effacer egalement B
Le plus simple avec le code que tu publies serait d'effacer au moins deux
valeurs (dont celle à calculer) avant de ressaisir la bonne valeur.
Si on veut calculer A on doit effacer B et C
Quand on rectifie A, les deux autres cellules B & C s'effaceront
automatiquement. On devra ressaisir ensuite B et C
Private Sub Worksheet_Change(ByVal Target As Range) 'MPFE le 21/10/2007 If Target.Count > 1 Then Exit Sub li = Target.Row If li > 9 Or li = 1 Then Exit Sub ' MsgBox "A=" & Range("A" & li) & " B=" & Range("B" & li) & " C=" & Range("C" & li)
' C & B renseignées, A? If Range("B" & li) <> "" And Range("C" & li) <> "" Then Application.EnableEvents = False Range("A" & li) = Range("C" & li) / Range("B" & li) Application.EnableEvents = True End If
' A & C renseignées, B? If Range("A" & li) <> "" And Range("C" & li) <> "" Then Application.EnableEvents = False Range("B" & li) = Range("C" & li) / Range("A" & li) If Range("B" & li) - Int(Range("B" & li)) > 0 Then Range("B" & li).NumberFormat = "0.0#" Else Range("B" & li).NumberFormat = "General"
End If Application.EnableEvents = True End If
' A & B renseignées, C? If Range("A" & li) <> "" And Range("B" & li) <> "" Then Application.EnableEvents = False Range("C" & li) = Range("A" & li) * Range("B" & li) ' coul Application.EnableEvents = True End If
'A, B & C renseignées '> Lorsque tu reviens pour corriger une saisie, par exemple en C, '> que faut il considérer, qu'on recherchait A ou B par calcul ? ' 'C'est pour calculer B, bien sur si A est connue 'Si on veut calculer A il faut effacer egalement B ' 'Si on veut calculer A on doit effacer B et C ' 'Quand on rectifie A, les deux autres cellules B & C s'effaceront 'automatiquement. On devra ressaisir ensuite B et C
If Range("A" & li) <> "" And Range("B" & li) <> "" _ And Range("C" & li) <> "" Then Application.EnableEvents = False If Target.Column = 1 Then Union(Range("B" & li), Range("C" & li)).ClearContents MsgBox "Merci de resaisir l'autre bonne valeur connue", _ vbInformation, "MPFE" ElseIf Target.Column = 3 Then Range("B" & li) = Range("C" & li) / Range("A" & li) If Range("B" & li) - Int(Range("B" & li)) > 0 Then Range("B" & li).NumberFormat = "0.0#" Else Range("B" & li).NumberFormat = "General" End If ElseIf Target.Column = 2 Then Application.EnableEvents = False Range("C" & li) = Range("A" & li) * Range("B" & li) End If Application.EnableEvents = True End If
End Sub
-- http://www.excelabo.net/mpfe/connexion.php http://dj.joss.free.fr/trombine.htm Avec plaisir Philippe.R "Apitos" a écrit dans le message de news: Bonjour,
Lorsque tu reviens pour corriger une saisie, par exemple en C, que faut il considérer, qu'on recherchait A ou B par calcul ?
C'est pour calculer B, bien sur si A est connue
Si on veut calculer A il faut effacer egalement B
Le plus simple avec le code que tu publies serait d'effacer au moins deux valeurs (dont celle à calculer) avant de ressaisir la bonne valeur.
Si on veut calculer A on doit effacer B et C
Quand on rectifie A, les deux autres cellules B & C s'effaceront automatiquement. On devra ressaisir ensuite B et C
Bonsoir, A part retirer les lignes de commentaire correspondant à l'échange fait ici et que j'avais reprises ainsi dans le code, je ne vois pas trop. -- http://www.excelabo.net/mpfe/connexion.php http://dj.joss.free.fr/trombine.htm Avec plaisir Philippe.R "Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de news:
Bonjour,
Comme ceci ?
Private Sub Worksheet_Change(ByVal Target As Range) 'MPFE le 21/10/2007 If Target.Count > 1 Then Exit Sub li = Target.Row If li > 9 Or li = 1 Then Exit Sub ' MsgBox "A=" & Range("A" & li) & " B=" & Range("B" & li) & " C=" & Range("C" & li)
' C & B renseignées, A? If Range("B" & li) <> "" And Range("C" & li) <> "" Then Application.EnableEvents = False Range("A" & li) = Range("C" & li) / Range("B" & li) Application.EnableEvents = True End If
' A & C renseignées, B? If Range("A" & li) <> "" And Range("C" & li) <> "" Then Application.EnableEvents = False Range("B" & li) = Range("C" & li) / Range("A" & li) If Range("B" & li) - Int(Range("B" & li)) > 0 Then Range("B" & li).NumberFormat = "0.0#" Else Range("B" & li).NumberFormat = "General"
End If Application.EnableEvents = True End If
' A & B renseignées, C? If Range("A" & li) <> "" And Range("B" & li) <> "" Then Application.EnableEvents = False Range("C" & li) = Range("A" & li) * Range("B" & li) ' coul Application.EnableEvents = True End If
'A, B & C renseignées '> Lorsque tu reviens pour corriger une saisie, par exemple en C, '> que faut il considérer, qu'on recherchait A ou B par calcul ? ' 'C'est pour calculer B, bien sur si A est connue 'Si on veut calculer A il faut effacer egalement B ' 'Si on veut calculer A on doit effacer B et C ' 'Quand on rectifie A, les deux autres cellules B & C s'effaceront 'automatiquement. On devra ressaisir ensuite B et C
If Range("A" & li) <> "" And Range("B" & li) <> "" _ And Range("C" & li) <> "" Then Application.EnableEvents = False If Target.Column = 1 Then Union(Range("B" & li), Range("C" & li)).ClearContents MsgBox "Merci de resaisir l'autre bonne valeur connue", _ vbInformation, "MPFE" ElseIf Target.Column = 3 Then Range("B" & li) = Range("C" & li) / Range("A" & li) If Range("B" & li) - Int(Range("B" & li)) > 0 Then Range("B" & li).NumberFormat = "0.0#" Else Range("B" & li).NumberFormat = "General" End If ElseIf Target.Column = 2 Then Application.EnableEvents = False Range("C" & li) = Range("A" & li) * Range("B" & li) End If Application.EnableEvents = True End If
End Sub
-- http://www.excelabo.net/mpfe/connexion.php http://dj.joss.free.fr/trombine.htm Avec plaisir Philippe.R "Apitos" a écrit dans le message de news: Bonjour,
Lorsque tu reviens pour corriger une saisie, par exemple en C, que faut il considérer, qu'on recherchait A ou B par calcul ?
C'est pour calculer B, bien sur si A est connue
Si on veut calculer A il faut effacer egalement B
Le plus simple avec le code que tu publies serait d'effacer au moins deux valeurs (dont celle à calculer) avant de ressaisir la bonne valeur.
Si on veut calculer A on doit effacer B et C
Quand on rectifie A, les deux autres cellules B & C s'effaceront automatiquement. On devra ressaisir ensuite B et C
Merci.
Bonsoir,
A part retirer les lignes de commentaire correspondant à l'échange fait ici
et que j'avais reprises ainsi dans le code, je ne vois pas trop.
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de
news:u7YF1G7EIHA.748@TK2MSFTNGP04.phx.gbl...
Bonjour,
Comme ceci ?
Private Sub Worksheet_Change(ByVal Target As Range)
'MPFE le 21/10/2007
If Target.Count > 1 Then Exit Sub
li = Target.Row
If li > 9 Or li = 1 Then Exit Sub
' MsgBox "A=" & Range("A" & li) & " B=" & Range("B" & li) & " C=" &
Range("C" & li)
' C & B renseignées, A?
If Range("B" & li) <> "" And Range("C" & li) <> "" Then
Application.EnableEvents = False
Range("A" & li) = Range("C" & li) / Range("B" & li)
Application.EnableEvents = True
End If
' A & C renseignées, B?
If Range("A" & li) <> "" And Range("C" & li) <> "" Then
Application.EnableEvents = False
Range("B" & li) = Range("C" & li) / Range("A" & li)
If Range("B" & li) - Int(Range("B" & li)) > 0 Then
Range("B" & li).NumberFormat = "0.0#"
Else
Range("B" & li).NumberFormat = "General"
End If
Application.EnableEvents = True
End If
' A & B renseignées, C?
If Range("A" & li) <> "" And Range("B" & li) <> "" Then
Application.EnableEvents = False
Range("C" & li) = Range("A" & li) * Range("B" & li)
' coul
Application.EnableEvents = True
End If
'A, B & C renseignées
'> Lorsque tu reviens pour corriger une saisie, par exemple en C,
'> que faut il considérer, qu'on recherchait A ou B par calcul ?
'
'C'est pour calculer B, bien sur si A est connue
'Si on veut calculer A il faut effacer egalement B
'
'Si on veut calculer A on doit effacer B et C
'
'Quand on rectifie A, les deux autres cellules B & C s'effaceront
'automatiquement. On devra ressaisir ensuite B et C
If Range("A" & li) <> "" And Range("B" & li) <> "" _
And Range("C" & li) <> "" Then
Application.EnableEvents = False
If Target.Column = 1 Then
Union(Range("B" & li), Range("C" & li)).ClearContents
MsgBox "Merci de resaisir l'autre bonne valeur connue", _
vbInformation, "MPFE"
ElseIf Target.Column = 3 Then
Range("B" & li) = Range("C" & li) / Range("A" & li)
If Range("B" & li) - Int(Range("B" & li)) > 0 Then
Range("B" & li).NumberFormat = "0.0#"
Else
Range("B" & li).NumberFormat = "General"
End If
ElseIf Target.Column = 2 Then
Application.EnableEvents = False
Range("C" & li) = Range("A" & li) * Range("B" & li)
End If
Application.EnableEvents = True
End If
End Sub
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"Apitos" <apitos@gmail.com> a écrit dans le message de
news:1192579873.928535.305230@i38g2000prf.googlegroups.com...
Bonjour,
Lorsque tu reviens pour corriger une saisie, par exemple en C, que faut
il
considérer, qu'on recherchait A ou B par calcul ?
C'est pour calculer B, bien sur si A est connue
Si on veut calculer A il faut effacer egalement B
Le plus simple avec le code que tu publies serait d'effacer au moins deux
valeurs (dont celle à calculer) avant de ressaisir la bonne valeur.
Si on veut calculer A on doit effacer B et C
Quand on rectifie A, les deux autres cellules B & C s'effaceront
automatiquement. On devra ressaisir ensuite B et C
Bonsoir, A part retirer les lignes de commentaire correspondant à l'échange fait ici et que j'avais reprises ainsi dans le code, je ne vois pas trop. -- http://www.excelabo.net/mpfe/connexion.php http://dj.joss.free.fr/trombine.htm Avec plaisir Philippe.R "Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de news:
Bonjour,
Comme ceci ?
Private Sub Worksheet_Change(ByVal Target As Range) 'MPFE le 21/10/2007 If Target.Count > 1 Then Exit Sub li = Target.Row If li > 9 Or li = 1 Then Exit Sub ' MsgBox "A=" & Range("A" & li) & " B=" & Range("B" & li) & " C=" & Range("C" & li)
' C & B renseignées, A? If Range("B" & li) <> "" And Range("C" & li) <> "" Then Application.EnableEvents = False Range("A" & li) = Range("C" & li) / Range("B" & li) Application.EnableEvents = True End If
' A & C renseignées, B? If Range("A" & li) <> "" And Range("C" & li) <> "" Then Application.EnableEvents = False Range("B" & li) = Range("C" & li) / Range("A" & li) If Range("B" & li) - Int(Range("B" & li)) > 0 Then Range("B" & li).NumberFormat = "0.0#" Else Range("B" & li).NumberFormat = "General"
End If Application.EnableEvents = True End If
' A & B renseignées, C? If Range("A" & li) <> "" And Range("B" & li) <> "" Then Application.EnableEvents = False Range("C" & li) = Range("A" & li) * Range("B" & li) ' coul Application.EnableEvents = True End If
'A, B & C renseignées '> Lorsque tu reviens pour corriger une saisie, par exemple en C, '> que faut il considérer, qu'on recherchait A ou B par calcul ? ' 'C'est pour calculer B, bien sur si A est connue 'Si on veut calculer A il faut effacer egalement B ' 'Si on veut calculer A on doit effacer B et C ' 'Quand on rectifie A, les deux autres cellules B & C s'effaceront 'automatiquement. On devra ressaisir ensuite B et C
If Range("A" & li) <> "" And Range("B" & li) <> "" _ And Range("C" & li) <> "" Then Application.EnableEvents = False If Target.Column = 1 Then Union(Range("B" & li), Range("C" & li)).ClearContents MsgBox "Merci de resaisir l'autre bonne valeur connue", _ vbInformation, "MPFE" ElseIf Target.Column = 3 Then Range("B" & li) = Range("C" & li) / Range("A" & li) If Range("B" & li) - Int(Range("B" & li)) > 0 Then Range("B" & li).NumberFormat = "0.0#" Else Range("B" & li).NumberFormat = "General" End If ElseIf Target.Column = 2 Then Application.EnableEvents = False Range("C" & li) = Range("A" & li) * Range("B" & li) End If Application.EnableEvents = True End If
End Sub
-- http://www.excelabo.net/mpfe/connexion.php http://dj.joss.free.fr/trombine.htm Avec plaisir Philippe.R "Apitos" a écrit dans le message de news: Bonjour,
Lorsque tu reviens pour corriger une saisie, par exemple en C, que faut il considérer, qu'on recherchait A ou B par calcul ?
C'est pour calculer B, bien sur si A est connue
Si on veut calculer A il faut effacer egalement B
Le plus simple avec le code que tu publies serait d'effacer au moins deux valeurs (dont celle à calculer) avant de ressaisir la bonne valeur.
Si on veut calculer A on doit effacer B et C
Quand on rectifie A, les deux autres cellules B & C s'effaceront automatiquement. On devra ressaisir ensuite B et C
Merci.
Apitos
Bonsoir Philippe,
Pas grave ...
Merci de suivre ce fil et d'être présent tous ces jours.
Bonsoir Philippe,
Pas grave ...
Merci de suivre ce fil et d'être présent tous ces jours.