Problème de boucle
roupille008
Messages postés
34
Statut
Membre
-
roupille008 Messages postés 34 Statut Membre -
roupille008 Messages postés 34 Statut Membre -
Salut tout le monde!
Alors voilà, il ne me reste plus qu'une petite maccro pour finir de traiter les données que j'ai. Bien entendu cette macro me prend pas mal la tête depuis maintenant une journée.
J'envoie d'abords le code et après je l'explique:
Le but de ce truc c'est que si deux cellules sont égales, alors une cellule prend pour valeur la moitié d'une cellule en plus de sa valeur initiale.
Ce qui m'embête c'est que ce machin tourne mais ça ne fait strictement rien. C'est pour ça que je pense que c'est une erreur à la *** du style ma boucle sur p n'est pa bien faite ou autre. (en fait c'est plus chiant quand on cherche le problème que quand on cherche la solution)
Voilà j'vous remercie d'avance.
Alors voilà, il ne me reste plus qu'une petite maccro pour finir de traiter les données que j'ai. Bien entendu cette macro me prend pas mal la tête depuis maintenant une journée.
J'envoie d'abords le code et après je l'explique:
Sub répartir_les_consos()
Dim p As Integer
Dim q As Integer
Application.ScreenUpdating = False
For p = 21591 To 2 Step -1
q = p - 8
'si les deux cellules sont égales, alors
If Application.WorksheetFunction.And(Cells(p, 2) = Cells(q, 2), Cells(p, 4) = Cells(q, 4)) Then
Cells(p, 6) = Cells(p, 6) + Cells(q, 5) * 0.5
Range("q:q").Delete
End If
Next p
End Sub
Le but de ce truc c'est que si deux cellules sont égales, alors une cellule prend pour valeur la moitié d'une cellule en plus de sa valeur initiale.
Ce qui m'embête c'est que ce machin tourne mais ça ne fait strictement rien. C'est pour ça que je pense que c'est une erreur à la *** du style ma boucle sur p n'est pa bien faite ou autre. (en fait c'est plus chiant quand on cherche le problème que quand on cherche la solution)
Voilà j'vous remercie d'avance.
A voir également:
- Problème de boucle
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Vlc lecture en boucle ✓ - Forum Lecteurs et supports vidéo
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
- Huawei s'allume et s'éteint en boucle - Forum Huawei
- Boucle excel sans macro - Forum Excel
1 réponse
Bonjour,
1) si tu mets Application.ScreenUpdating = False au debut de la macro, tu dois mettre Application.ScreenUpdating = True à la sortie
2) tu peux ecrire tout simplement
If (Cells(p, 2) = Cells(q, 2)) And (Cells(p, 4) = Cells(q, 4)) Then
3) tu ecrits q = p - 8
si p<=8 alors q<=0 et tu auras une erreur.
4) Pourquoi supprimer la colonne "Q" à chaque tour de boucle?
A+
1) si tu mets Application.ScreenUpdating = False au debut de la macro, tu dois mettre Application.ScreenUpdating = True à la sortie
2) tu peux ecrire tout simplement
If (Cells(p, 2) = Cells(q, 2)) And (Cells(p, 4) = Cells(q, 4)) Then
3) tu ecrits q = p - 8
si p<=8 alors q<=0 et tu auras une erreur.
4) Pourquoi supprimer la colonne "Q" à chaque tour de boucle?
A+
primo, écrire:
Range("q:q")Ca correspond pas à la ligne? Je voudrais supprimer la ligne moi...
Deuxio,merci pour le screen update j'avais zappé.
tertio, pour l'instant ça marche mais en effet ça me supprime pas les lignes. (je veux supprimer celles dont la cellule qui m'intéresse s'ajoute à une autre cellule.)
Ca fait pas mal de boulette par ligne de code tout ça,^^
Merci, ça m'aide bien ta réponse.
Sub répartir_les_consos() Dim p As Integer Dim q As Integer Application.ScreenUpdating = False For p = 21599 To 9 Step -1 q = p - 8 'si les deux cellules sont égales, alors Cells(p, 6) = Cells(p, 5) / 2 If Cells(p, 2) = Cells(q, 2) And Cells(p, 4) = Cells(q, 4) Then Cells(p, 6) = Cells(p, 6) + Cells(q, 5) * 0.5 Cells(q, 6).EntireRow.Delete Shift:=xlUp End If Next p Application.ScreenUpdating = True End SubVoilà, j'sais pas trop pourquoi il me supprime pas tout ce que je veux.
J'crois que c'est en supprimant la ligne, du coup ça me décale mes lignes et il me teste pas tout.
Je cherche de ce côté la.