Urgent travail :'( Vba probleme

Résolu
Glady994 Messages postés 447 Date d'inscription   Statut Membre Dernière intervention   -  
Glady994 Messages postés 447 Date d'inscription   Statut Membre Dernière intervention   -
Bonjourà tous,
J'essaie actuellement de créer une fonction qui additionne le résultat de deux colonnes ("Valeur total actuelle" et "valeur précédente" ) pour y inscrire ce résultat dans une troisième colonne ("Gain").
Pour le moment j'ai créer ceci :
Sub worksheet_change(ByVal Target As Range)
	
	Dim Valtot As Integer
	Dim Valpre As Integer
		
		Valtot = Cells(Target.Row, 2)
		Valpre = Cells(Target.Row, 6)
	
	Cells(Target.Row, 7) = Valtot - Valpre
	
	If Target.Column = 7 And Target.Value <> "" Then
		
		If Target.Value < 0 Then
			Cells(Target.Row, 7).Interior.ColorIndex = 3
		ElseIf Target.Value > 0 Then
			Cells(Target.Row, 7).Interior.ColorIndex = 4
		End If

	End If
	
	Dim com As Double
	Dim gai As Double

		com = Cells(Target.Row, 3)
		gai = Cells(Target.Row, 7)

	Cells(Target.Row, 8) = com * gai

End Sub




Il y a un problème, le logiciel plante à chaque fois, quelqu'un sait-il pourquoi?
Merci d'avance !

A voir également:

2 réponses

lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Bonjour,
Huumm.. J'essaie actuellement de créer une fonction qui additionne le résultat de deux colonnes
deux colonnes ou deux cellules ??, ton code ne s'applique qu'a une seule ligne et en plus c'est une ligne aléatoire ??
Tu n'a pas besoin de VBA pour faire ce que tu montre, des formules dans la feuille feront l'affaire.
A+
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Bonjour,

Je rejoins l'avis de lermite222 (bonjour à lui) : Pas besoin de VBA, 2 formules et une mise en forme conditionnelle suffisent.

Pour répondre à ta question :
Il y a un problème, le logiciel plante à chaque fois, quelqu'un sait-il pourquoi?
Le logiciel ne plante pas : il fait exactement ce que tu lui demande !!!

Tu as créé un appel récursif sans porte de sortie.
Lorsqu'on appuis sur Echap, le programme s'arrête, c'est donc qu'il n'est pas planté, mais qu'il boucle indéfiniment !!!

Lorsqu'on pratique la programmation événementielle, il faut être particulièrement vigilant à ne pas générer de boucle récursive sur l'évènement, c'est-à-dire qu'il faut veiller à ce que le code qui traite l'évènement ne génère pas lui-même cet évènement.

C'est ce qui se passe dans ton code :
Lorsque le code modifie le contenu d'une cellule, cela provoque l'évènement Change !

Tu devrais regarder comment on utilise la propriété EnableEvents de l'objet Application, cela devrait tu permettre de résoudre ton problème
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Urgent travail :'( Vba probleme
Vraiment ???
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Bonjour Patrice,
Voir ce topic
Je met celui-ci en résolu.
A+
0
Glady994 Messages postés 447 Date d'inscription   Statut Membre Dernière intervention   145
 
Oui Patrice, seulement j'ai décidé de faire autrement justement par manque de temps et n'ai donc pas pu revenir sur ce topic jusqu'à maintenant...
Merci quand même à vous au moins j'ai compris mon erreur ce qui devrait m'aider pour la suite!
0