Urgent travail :'( Vba probleme

Résolu/Fermé
Glady994 Messages postés 447 Date d'inscription jeudi 24 décembre 2009 Statut Membre Dernière intervention 31 mars 2017 - Modifié par Glady994 le 15/12/2011 à 22:09
Glady994 Messages postés 447 Date d'inscription jeudi 24 décembre 2009 Statut Membre Dernière intervention 31 mars 2017 - 20 déc. 2011 à 17:31
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 !

2 réponses

lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
15 déc. 2011 à 23:19
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 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
16 déc. 2011 à 14:41
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 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
17 déc. 2011 à 19:57
Urgent travail :'( Vba probleme
Vraiment ???
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
17 déc. 2011 à 21:50
Bonjour Patrice,
Voir ce topic
Je met celui-ci en résolu.
A+
0
Glady994 Messages postés 447 Date d'inscription jeudi 24 décembre 2009 Statut Membre Dernière intervention 31 mars 2017 145
20 déc. 2011 à 17:31
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