Code VBA pour soustraire d'une cellule active.

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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.
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

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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Autres Planning
Réponses
8
Affichages
90
Réponses
17
Affichages
321
Réponses
8
Affichages
679
Réponses
2
Affichages
247
Réponses
5
Affichages
325
Retour