Macro qui ne s'arrête plus (le programmme tourne en rond) [Résolu]

Messages postés
37
Date d'inscription
lundi 12 janvier 2009
Dernière intervention
10 avril 2012
- - Dernière réponse : argaz01
Messages postés
37
Date d'inscription
lundi 12 janvier 2009
Dernière intervention
10 avril 2012
- 3 juin 2010 à 16:04
Bonjour,

Je viens d'élaborer une macro pour trier un tableau de 2 colonnes (SGP) et (+/-value) et faire la somme des doublons: le problème c'est que ma macro tourne sans fin (elle ne s'arrête pas tout simplement) et quand je fait echappe pour l'arrêter elle ne garde plus que les 2 premières lignes de mon tableau. Voici la macro en question:
Sub RecupColonnesVersNlleFeuille()
Dim ligne As Integer
ligne = 20
Do

If Cells(ligne, 19) Cells(ligne + 1, 19) And Cells(ligne, 20) Cells(ligne + 1, 20) Then
Cells(ligne, 21) = Cells(ligne, 21) + Cells(ligne + 1, 21)
Cells(ligne + 1, 21).EntireRow.Delete Shift:=xlUp
Else
ligne = ligne + 19
End If
Loop While Cells(ligne, 1) <> ""

End Sub


PS: le tableau commence à la ligne 18 (les titres des 2 colonnes)
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
37
Date d'inscription
lundi 12 janvier 2009
Dernière intervention
10 avril 2012
3
Merci
Merci c'est résolu.

Cordialement

Merci argaz01 3

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

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de argaz01
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
0
Merci
Salut,

Il te manque un incrément dans ton premier if : s'il passe dans ton if, il y rentrera à chaque tour de boucle suivant, donc :
Sub RecupColonnesVersNlleFeuille()
Dim ligne As Integer
ligne = 20
Do

If Cells(ligne, 19) Cells(ligne + 1, 19) And Cells(ligne, 20) Cells(ligne + 1, 20) Then
Cells(ligne, 21) = Cells(ligne, 21) + Cells(ligne + 1, 21)
Cells(ligne + 1, 21).EntireRow.Delete Shift:=xlUp
ligne = lign + 1
Else
ligne = ligne + 19
End If
Loop While Cells(ligne, 1) <> ""

End Sub
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Commenter la réponse de cs_DARKSIDIOUS

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.