VBA excel : erreur de compilation. [Résolu/Fermé]

Signaler
-
 Juliette -
Bonjour, je souhaiterai faire appel de nouveau à vos compétences poour me sortir d'une énième impasse.

Je compile un code qui me permet d'aditionner les cellules d'un tableau supérieures à 0 à celle du même tableau posée en feuille2 et vba me pond une nouvelle erreur dont je n'avais jamais entendu parler...

Son intitulé : Erreur de compilation ; Référence de variable de contrôle incorrecte dans Next.

Mon code :

Private Sub CommandButton1_Click()
Dim lig As Long
Dim col As Long

For lig = 3 To 40
For col = 3 To 60
If Cells(lig, col) > 0 Then
Sheets("Feuil2").Range(lig, col) = Sheets("Feuil1").Range(lig, col).Value + Sheets("Feuil2").Range(lig, col).Value
End If
Next lig
Next col

End Sub

4 réponses

Messages postés
6197
Date d'inscription
jeudi 9 juillet 2009
Statut
Contributeur
Dernière intervention
20 mars 2017
1 430
En fait le vrai problème est que tu as inversé les deux next à la fin, tu dois fermer les boucles dans l'ordre donc au lieu de:

Next lig
Next col

Tu dois mettre:

Next col
Next lig
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 90675 internautes nous ont dit merci ce mois-ci

Merci beaucoup, ce problème là est réglé mais j'ai une autre erreur apparament :


If Sheets("Feuil1").Range(lig, col) > 0 Then

Erreur définie par l'application ou par l'objet.
Messages postés
6197
Date d'inscription
jeudi 9 juillet 2009
Statut
Contributeur
Dernière intervention
20 mars 2017
1 430
A mon avis, c'est range qu'il aime pas trop...
si tu traite cellule par cellule, vaudrait mieux utiliser Cells que Range non ?
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 90675 internautes nous ont dit merci ce mois-ci

Tout à fait ! Merci beaucoup, tout marche comme sur des roulettes maintenant !
Messages postés
6197
Date d'inscription
jeudi 9 juillet 2009
Statut
Contributeur
Dernière intervention
20 mars 2017
1 430
Bonjour,

Cela fait bien longtemps que je n'ai pas fait de VBA mais ici...

Sheets("Feuil2").Range(lig, col) = Sheets("Feuil1").Range(lig, col).Value + Sheets("Feuil2").Range(lig, col).Value

Si tu remplace par:

Sheets("Feuil2").Range(lig, col).Value = Sheets("Feuil1").Range(lig, col).Value + Sheets("Feuil2").Range(lig, col).Value

ça fonctionne ?
Malheureusement non. J'ai toujours le même message d'erreur. Merci tout de même de m'avoir consacré un peu de ton temps.
j'ai un peu modifié le code mais il bloque toujours sur la ligne que j'ai modifié deux trois fois pour essayer mais sans aucune réussite.

Feuil2.Range(lig, col) = Feuil1.Range(lig, col).Value + Feuil2.Range(lig, col).Value

Dim lig As Integer
Dim col As Integer

For Each cell In Range("C3:F4")
If cell.Value > 0 Then
lig = cell.Row
col = cell.Column
Feuil2.Range(lig, col) = (Feuil1.Range(lig, col).Value + Feuil2.Range(lig, col).Value)
End If
Next cell

Quelqu'un aurait-il une idée ?