Code VBA pour soustraire d'une cellule active.

Eric_nov

XLDnaute Nouveau
Bonsoir le forum,

Dans un tableau je cherche à soustraire de la cellule active une certaine valeur.
Ex: quand je rentre en "D2" 80 je souhaite soustraire automatiquement la valeur de C2.
quand je rentre en "D2" 80 je souhaite soustraire automatiquement la valeur de D2. etc...
En faisant des recherches, j'ai trouvé un code qui ne fonctionne que sur une ligne.

Merci pour votre Aide.
 

Pièces jointes

  • Poids.xlsm
    19.6 KB · Affichages: 3

Dranreb

XLDnaute Barbatruc
Bonjour.
Comme vous décrivez le comportement souhaité, ne serait-ce pas plutôt une Worksheet_Change qu'il vous faudrait ?
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.CountLarge <> 1 Then Exit Sub
   If Intersect([Tableau1[[Janvier]:[Décembre]]], Target) Is Nothing Then Exit Sub
   Application.EnableEvents = False
   Target.FormulaR1C1 = "=" & Trim$(Str$(Target.Value)) & "-[@[Poids du fauteuil]]"
   Application.EnableEvents = True
   End Sub
 

Eric_nov

XLDnaute Nouveau
Bonjour.
Comme vous décrivez le comportement souhaité, ne serait-ce pas plutôt une Worksheet_Change qu'il vous faudrait ?
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.CountLarge <> 1 Then Exit Sub
   If Intersect([Tableau1[[Janvier]:[Décembre]]], Target) Is Nothing Then Exit Sub
   Application.EnableEvents = False
   Target.FormulaR1C1 = "=" & Trim$(Str$(Target.Value)) & "-[@[Poids du fauteuil]]"
   Application.EnableEvents = True
   End Sub
Bonjour Dranreb,
J'avais essayé d'enlever le " sélection Change" par "worksheet Change" mais je me suis retrouvé avec un problème de débogage! Et vu mon niveau 0 en vba...
Je ne sais pas pourquoi en rentrant un poids dans une cellule ça à rempli toute la colonne!
J'ai remarqué que si j'efface la valeur d'une cellule un 0 apparaît. Si j'essaie de le supprimer 0 apparaît à nouveau. C'est là que j'ai regarder dans la barre de formule. Et en sélectionnant 2 cellules j'arrive à supprimer la formule et faire disparaître le 0.
Peut-on faire disparaître le 0 en ne sélectionnant qu'une cellule?
Peut-on mettre un msgbox du genre " Confirmez-vous le changement de valeur?" dans une cellule ou le poids est déjà renseigné?
Merci pour ce code.
 

Pièces jointes

  • Poids.xlsm
    21.2 KB · Affichages: 1

Dranreb

XLDnaute Barbatruc
Je ne sais pas bien quoi y faire, si la colonne est vide, pour qu'il ne considère pas que la formule est pour toute la colonne.
Pour le second point, peut être en ajoutant au début :
VB:
   If VarType(Target.Value) <> vbDouble Then Exit Sub
Si on tape et valide un nombre on ne peut plus savoir que la cellule était déjà renseignée. On peut tout au plus encore ajouter :
Code:
   If Target.HasFormula Then Exit Sub
 

Discussions similaires

Réponses
9
Affichages
205

Statistiques des forums

Discussions
312 491
Messages
2 088 888
Membres
103 982
dernier inscrit
krakencolas