erreur avec une macro

tom59

XLDnaute Nouveau
Bonjour,
J'ai un petit probleme avec cette macro. Je pense que ça doit être tout bête mais je ne vois pas ou est l'erreur. Excel me renvois le message suivant :
Code:
Erreur de compilation Next sans For
et il surligne le
Code:
Next m
Si quelqu'un pouvait m'apporter ses lumiéres j'en serais ravi.

Voici le code :

Code:
Sub accord()
Dim b As Integer
Dim c As Integer
Dim d As Integer
Dim l As Integer
Dim m As Integer
Dim j As Integer
Dim k As Integer

' modifier l'étendue de l en fonction du nombre de sujets
For l = 5 To 57
b = 0
c = 0
d = 0
For m = 3 To 29
If Sheets("Valence").Cells(1, m).Value = "positive" Then
If Sheets("Valence").Cells(l, m).Value = Sheets("Valence").Cells(1, m).Value Then
d = d + 1
End If
If Sheets("Valence").Cells(1, m).Value = "neutre" Then
If Sheets("Valence").Cells(l, m).Value = Sheets("Valence").Cells(1, m).Value Then
c = c + 1
End If
If Sheets("Valence").Cells(1, m).Value = "négative" Then
If Sheets("Valence").Cells(l, m).Value = Sheets("Valence").Cells(1, m).Value Then
b = b + 1
End If
Next m
Sheets("Valence").Cells(l, 32).Value = ((b + c + d) / 27) * 100
Sheets("Valence").Cells(l, 33).Value = (b / 9) * 100
Sheets("Valence").Cells(l, 34).Value = (c / 9) * 100
Sheets("Valence").Cells(l, 35).Value = (d / 9) * 100
Next l
End Sub

D'avance merci
 

Spitnolan08

XLDnaute Barbatruc
Re : erreur avec une macro

Bonsoir,

C'est dans tes If qu'il y a un souci... Mais je te laisse chercher où car je vais me coucher... Il doit manquer un end if ou plusieurs car tes procédures if ne me semblent pas très catholiques...

Cordialement
 

tom59

XLDnaute Nouveau
Re : erreur avec une macro

Oui je viens de trouver,
le code correct est celui ci :

Code:
Sub accord()
Dim b As Integer
Dim c As Integer
Dim d As Integer
Dim l As Integer
Dim m As Integer
Dim j As Integer
Dim k As Integer

' modifier l'étendue de l en fonction du nombre de sujets
For l = 5 To 57
b = 0
c = 0
d = 0
For m = 3 To 29
If Sheets("Valence").Cells(1, m).Value = "positive" Then
If Sheets("Valence").Cells(l, m).Value = Sheets("Valence").Cells(1, m).Value Then
d = d + 1
End If
End If

If Sheets("Valence").Cells(1, m).Value = "neutre" Then
If Sheets("Valence").Cells(l, m).Value = Sheets("Valence").Cells(1, m).Value Then
c = c + 1
End If
End If

If Sheets("Valence").Cells(1, m).Value = "négative" Then
If Sheets("Valence").Cells(l, m).Value = Sheets("Valence").Cells(1, m).Value Then
b = b + 1
End If
End If

Next m
Sheets("Valence").Cells(l, 32).Value = ((b + c + d) / 27) * 100
Sheets("Valence").Cells(l, 33).Value = (b / 9) * 100
Sheets("Valence").Cells(l, 34).Value = (c / 9) * 100
Sheets("Valence").Cells(l, 35).Value = (d / 9) * 100
Next l
End Sub


tes procédures if ne me semblent pas très catholiques...

Ce n'est pas correct de faire 2 IF quand on a besoin de vérifier 2 paramétres ?
 

JYLL

Nous a quitté
Repose en paix
Re : erreur avec une macro

Bonsoir Tom59 et le Forum,

Salut Spit;)

Comme Spit te le signale, tu as des rrers dans tes IF; En rouge ce qui ne va pas.



Code:
[COLOR=mediumturquoise]If Sheets("Valence").Cells(1, m).Value = "neutre" Then[/COLOR]
[COLOR=mediumturquoise] If Sheets("Valence").Cells(l, m).Value = Sheets("Valence").Cells(1, m).Value Then c = c + 1[/COLOR]
[COLOR=mediumturquoise]End If[/COLOR]

Ou une seule ligne avec "And" et sans End If

Code:
If Sheets("Valence").Cells(1, m).Value = "neutre" and  Sheets("Valence").Cells(l, m).Value = Sheets("Valence").Cells(1, m).Value Then c = c + 1


Bonnes corrections.
 
Dernière édition:

Statistiques des forums

Discussions
312 555
Messages
2 089 547
Membres
104 208
dernier inscrit
laura29180