mon soucis ....... j'ai une feuille execl que je change et renomme tous les
jours en partant d'une feuille de base comportant 3 colonnes ... ref,
désignation, qté. .... .... qté vierge ......... bon , ça, c'est ok !
j'aimerais en cliquant dans n'importe quelle cellule "qté", ajouter une
nouvelle valeur a cette cellule. quand j'en ressors, si elle était vide,
j'ai la quantité inscrite, (normal ! ) mais si elle était déjà remplie, il
apparaît le vrai total .... ex:
qté 3 ..... je clique ... la cellule devient vide ... je tape 7 et je vais
voir une autre ref ..... il apparaît ( a la place de 7 ) ....10 ... si
j'avais tapé -2 .... sur l'évenemet on excite ... il apparaît 1.
D'abord, j'aimerais savoir si cette pratique est possible ? ...on activate
et on excite.
on activate, je récupère la vieille valeur ... 3 ou 0 si elle est vierge ..
dans une variable et ça clear la cellule,
je tape ma nouvelle valeur, je resors en cliquant ailleurs ( donc sur le
onexcite) ... j'obtiens mon addition ou ma soustraction de ma nouvelle
valeur.
ou faut il passer par une 4 ème colonne ? ............... j'y mets ma
valeur ...+7 ou -2 et quand je vais autre part .... je fais
l'addition dans la cellule "qté" et je clear celle où j'avais +7 ou -2
laquelle est la bonne solution ? et auriez vous un bout de code pour
m'aiguiller ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Hervé
Salut Jpp, Regarde si cela convient ! En sopposant que la colonne qté soit la C : A mettre dans le module de ta feuille :
Dim Valeur As Double
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, [C:C]) Is Nothing Then On Error Resume Next Application.EnableEvents = False Target.Value = Target.Value + Valeur If Err.Number <> 0 Then Valeur = 0 Application.EnableEvents = True End If End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Target, [C:C]) Is Nothing Then On Error Resume Next Valeur = Target.Value If Err.Number <> 0 Then Valeur = 0 End If End Sub
Hervé.
"jpp" a écrit dans le message de news: cebj3m$kr2$
Bonjour tout le monde,
mon soucis ....... j'ai une feuille execl que je change et renomme tous les
jours en partant d'une feuille de base comportant 3 colonnes ... ref, désignation, qté. .... .... qté vierge ......... bon , ça, c'est ok !
j'aimerais en cliquant dans n'importe quelle cellule "qté", ajouter une nouvelle valeur a cette cellule. quand j'en ressors, si elle était vide, j'ai la quantité inscrite, (normal ! ) mais si elle était déjà remplie, il apparaît le vrai total .... ex:
qté 3 ..... je clique ... la cellule devient vide ... je tape 7 et je vais
voir une autre ref ..... il apparaît ( a la place de 7 ) ....10 ... si j'avais tapé -2 .... sur l'évenemet on excite ... il apparaît 1.
D'abord, j'aimerais savoir si cette pratique est possible ? ...on activate et on excite. on activate, je récupère la vieille valeur ... 3 ou 0 si elle est vierge ..
dans une variable et ça clear la cellule, je tape ma nouvelle valeur, je resors en cliquant ailleurs ( donc sur le onexcite) ... j'obtiens mon addition ou ma soustraction de ma nouvelle valeur. ou faut il passer par une 4 ème colonne ? ............... j'y mets ma valeur ...+7 ou -2 et quand je vais autre part .... je fais l'addition dans la cellule "qté" et je clear celle où j'avais +7 ou -2
laquelle est la bonne solution ? et auriez vous un bout de code pour m'aiguiller ?
merci jpp
Salut Jpp,
Regarde si cela convient !
En sopposant que la colonne qté soit la C :
A mettre dans le module de ta feuille :
Dim Valeur As Double
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [C:C]) Is Nothing Then
On Error Resume Next
Application.EnableEvents = False
Target.Value = Target.Value + Valeur
If Err.Number <> 0 Then Valeur = 0
Application.EnableEvents = True
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, [C:C]) Is Nothing Then
On Error Resume Next
Valeur = Target.Value
If Err.Number <> 0 Then Valeur = 0
End If
End Sub
Hervé.
"jpp" <j-p.p@wanadoo.fr> a écrit dans le message de news:
cebj3m$kr2$1@news-reader1.wanadoo.fr...
Bonjour tout le monde,
mon soucis ....... j'ai une feuille execl que je change et renomme tous
les
jours en partant d'une feuille de base comportant 3 colonnes ... ref,
désignation, qté. .... .... qté vierge ......... bon , ça, c'est ok !
j'aimerais en cliquant dans n'importe quelle cellule "qté", ajouter une
nouvelle valeur a cette cellule. quand j'en ressors, si elle était vide,
j'ai la quantité inscrite, (normal ! ) mais si elle était déjà remplie, il
apparaît le vrai total .... ex:
qté 3 ..... je clique ... la cellule devient vide ... je tape 7 et je
vais
voir une autre ref ..... il apparaît ( a la place de 7 ) ....10 ... si
j'avais tapé -2 .... sur l'évenemet on excite ... il apparaît 1.
D'abord, j'aimerais savoir si cette pratique est possible ? ...on activate
et on excite.
on activate, je récupère la vieille valeur ... 3 ou 0 si elle est vierge
..
dans une variable et ça clear la cellule,
je tape ma nouvelle valeur, je resors en cliquant ailleurs ( donc sur le
onexcite) ... j'obtiens mon addition ou ma soustraction de ma nouvelle
valeur.
ou faut il passer par une 4 ème colonne ? ............... j'y mets ma
valeur ...+7 ou -2 et quand je vais autre part .... je fais
l'addition dans la cellule "qté" et je clear celle où j'avais +7 ou -2
laquelle est la bonne solution ? et auriez vous un bout de code pour
m'aiguiller ?
Salut Jpp, Regarde si cela convient ! En sopposant que la colonne qté soit la C : A mettre dans le module de ta feuille :
Dim Valeur As Double
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, [C:C]) Is Nothing Then On Error Resume Next Application.EnableEvents = False Target.Value = Target.Value + Valeur If Err.Number <> 0 Then Valeur = 0 Application.EnableEvents = True End If End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Target, [C:C]) Is Nothing Then On Error Resume Next Valeur = Target.Value If Err.Number <> 0 Then Valeur = 0 End If End Sub
Hervé.
"jpp" a écrit dans le message de news: cebj3m$kr2$
Bonjour tout le monde,
mon soucis ....... j'ai une feuille execl que je change et renomme tous les
jours en partant d'une feuille de base comportant 3 colonnes ... ref, désignation, qté. .... .... qté vierge ......... bon , ça, c'est ok !
j'aimerais en cliquant dans n'importe quelle cellule "qté", ajouter une nouvelle valeur a cette cellule. quand j'en ressors, si elle était vide, j'ai la quantité inscrite, (normal ! ) mais si elle était déjà remplie, il apparaît le vrai total .... ex:
qté 3 ..... je clique ... la cellule devient vide ... je tape 7 et je vais
voir une autre ref ..... il apparaît ( a la place de 7 ) ....10 ... si j'avais tapé -2 .... sur l'évenemet on excite ... il apparaît 1.
D'abord, j'aimerais savoir si cette pratique est possible ? ...on activate et on excite. on activate, je récupère la vieille valeur ... 3 ou 0 si elle est vierge ..
dans une variable et ça clear la cellule, je tape ma nouvelle valeur, je resors en cliquant ailleurs ( donc sur le onexcite) ... j'obtiens mon addition ou ma soustraction de ma nouvelle valeur. ou faut il passer par une 4 ème colonne ? ............... j'y mets ma valeur ...+7 ou -2 et quand je vais autre part .... je fais l'addition dans la cellule "qté" et je clear celle où j'avais +7 ou -2
laquelle est la bonne solution ? et auriez vous un bout de code pour m'aiguiller ?
merci jpp
ephilibert
Bonjour Jpp, les lignes suivantes placées au niveau de ta feuille devrait fonctionner:
Option Explicit Dim Cel As Range Dim Valeur
Private Sub Worksheet_Change(ByVal Target As Range)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set Cel = ActiveCell Valeur = ActiveCell.Value
End Sub
jpp
Hervé a écrit dernièrement :
:: Salut Jpp, :: Regarde si cela convient ! :: En sopposant que la colonne qté soit la C :
c'est bien la "C"
:: A mettre dans le module de ta feuille : :: :: Dim Valeur As Double :: :: Private Sub Worksheet_Change(ByVal Target As Range) :: If Not Intersect(Target, [C:C]) Is Nothing Then :: On Error Resume Next :: Application.EnableEvents = False :: Target.Value = Target.Value + Valeur :: If Err.Number <> 0 Then Valeur = 0 :: Application.EnableEvents = True :: End If :: End Sub :: :: Private Sub Worksheet_SelectionChange(ByVal Target As Range) :: If Not Intersect(Target, [C:C]) Is Nothing Then :: On Error Resume Next :: Valeur = Target.Value :: If Err.Number <> 0 Then Valeur = 0 :: End If :: End Sub :: :: Hervé. ::
Merci Hervé ... a lire comme ça, je n'y comprend pas grand chose... pas grave .. ça viendra ! Bon je vais tester....le souci, c'est que j'ai execl au travail et que je poste ici que de chez moi ..... donc le test se fera que lundi
Encore merci pour ta réponse et le temps passé.
Hervé <hmsilve-sanspub@wanadoo.fr> a écrit dernièrement :
:: Salut Jpp,
:: Regarde si cela convient !
:: En sopposant que la colonne qté soit la C :
c'est bien la "C"
:: A mettre dans le module de ta feuille :
::
:: Dim Valeur As Double
::
:: Private Sub Worksheet_Change(ByVal Target As Range)
:: If Not Intersect(Target, [C:C]) Is Nothing Then
:: On Error Resume Next
:: Application.EnableEvents = False
:: Target.Value = Target.Value + Valeur
:: If Err.Number <> 0 Then Valeur = 0
:: Application.EnableEvents = True
:: End If
:: End Sub
::
:: Private Sub Worksheet_SelectionChange(ByVal Target As Range)
:: If Not Intersect(Target, [C:C]) Is Nothing Then
:: On Error Resume Next
:: Valeur = Target.Value
:: If Err.Number <> 0 Then Valeur = 0
:: End If
:: End Sub
::
:: Hervé.
::
Merci Hervé ... a lire comme ça, je n'y comprend pas grand chose... pas
grave .. ça viendra ! Bon je vais tester....le souci, c'est que j'ai execl
au travail et que je poste ici que de chez moi ..... donc le test se fera
que lundi
:: Salut Jpp, :: Regarde si cela convient ! :: En sopposant que la colonne qté soit la C :
c'est bien la "C"
:: A mettre dans le module de ta feuille : :: :: Dim Valeur As Double :: :: Private Sub Worksheet_Change(ByVal Target As Range) :: If Not Intersect(Target, [C:C]) Is Nothing Then :: On Error Resume Next :: Application.EnableEvents = False :: Target.Value = Target.Value + Valeur :: If Err.Number <> 0 Then Valeur = 0 :: Application.EnableEvents = True :: End If :: End Sub :: :: Private Sub Worksheet_SelectionChange(ByVal Target As Range) :: If Not Intersect(Target, [C:C]) Is Nothing Then :: On Error Resume Next :: Valeur = Target.Value :: If Err.Number <> 0 Then Valeur = 0 :: End If :: End Sub :: :: Hervé. ::
Merci Hervé ... a lire comme ça, je n'y comprend pas grand chose... pas grave .. ça viendra ! Bon je vais tester....le souci, c'est que j'ai execl au travail et que je poste ici que de chez moi ..... donc le test se fera que lundi
Encore merci pour ta réponse et le temps passé.
jpp
manu a écrit dernièrement :
:: Bonjour Jpp, les lignes suivantes placées au niveau de ta feuille :: devrait fonctionner: :: :: Option Explicit :: Dim Cel As Range :: Dim Valeur :: :: Private Sub Worksheet_Change(ByVal Target As Range) :: :: Application.EnableEvents = False :: Cel.Value = Valeur + Cel.Value :: Application.EnableEvents = True :: :: End Sub :: :: Private Sub Worksheet_SelectionChange(ByVal Target As Range) :: :: Set Cel = ActiveCell :: Valeur = ActiveCell.Value :: :: End Sub
Ok ..... merci bien je vais tester lundi au boulot
manu <ephilibert@theramex.mc> a écrit dernièrement :
:: Bonjour Jpp, les lignes suivantes placées au niveau de ta feuille
:: devrait fonctionner:
::
:: Option Explicit
:: Dim Cel As Range
:: Dim Valeur
::
:: Private Sub Worksheet_Change(ByVal Target As Range)
::
:: Application.EnableEvents = False
:: Cel.Value = Valeur + Cel.Value
:: Application.EnableEvents = True
::
:: End Sub
::
:: Private Sub Worksheet_SelectionChange(ByVal Target As Range)
::
:: Set Cel = ActiveCell
:: Valeur = ActiveCell.Value
::
:: End Sub
Ok ..... merci bien
je vais tester lundi au boulot
:: Bonjour Jpp, les lignes suivantes placées au niveau de ta feuille :: devrait fonctionner: :: :: Option Explicit :: Dim Cel As Range :: Dim Valeur :: :: Private Sub Worksheet_Change(ByVal Target As Range) :: :: Application.EnableEvents = False :: Cel.Value = Valeur + Cel.Value :: Application.EnableEvents = True :: :: End Sub :: :: Private Sub Worksheet_SelectionChange(ByVal Target As Range) :: :: Set Cel = ActiveCell :: Valeur = ActiveCell.Value :: :: End Sub
Ok ..... merci bien je vais tester lundi au boulot