Boucle VBA for next limité ?
Résolu
eljojo_e
Messages postés
1255
Statut
Membre
-
eljojo_e Messages postés 1255 Statut Membre -
eljojo_e Messages postés 1255 Statut Membre -
Bonjour,
J'ai une boucle qui me permet d'effacer des lignes qui n'appartiennent pas à une liste.
Cette boucle marche très bien pour 400 lignes, mais j'en est besoin pour traité 58723 lignes, et là le code tourne mais ne fonctionne pas.
Lorsque je met un "arrêt" sur le 1er next de mon code, je m'aperçois que excel ne traite pas se qu'il vient après, a savoir "If b > 0 Then".
Si quelqu'un à une idée,
Cordialement,
Le geek ne descend pas du métro, il libère la rame.
J'ai une boucle qui me permet d'effacer des lignes qui n'appartiennent pas à une liste.
Cette boucle marche très bien pour 400 lignes, mais j'en est besoin pour traité 58723 lignes, et là le code tourne mais ne fonctionne pas.
Lorsque je met un "arrêt" sur le 1er next de mon code, je m'aperçois que excel ne traite pas se qu'il vient après, a savoir "If b > 0 Then".
Si quelqu'un à une idée,
Cordialement,
Sub ttt()
b = 0
For a = 58723 To 2 Step -1
For aa = 90 To 2 Step -1
If Range("d" & a).Value = Sheets("Feuil1").Range("a" & aa).Value Then b = b + 1
Next '1er next
If b > 0 Then
Rows(a & ":" & a).Select
Selection.Delete Shift:=xlUp
b = 0
End If
Next
End Sub
Le geek ne descend pas du métro, il libère la rame.
A voir également:
- Boucle VBA for next limité ?
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Idm for mac - Télécharger - Téléchargement & Transfert
- Instagram for pc - Télécharger - Divers Communication
- Comment enlever la limite d'ajout sur snapchat - Forum Snapchat
- Microsoft store download for pc - Guide
4 réponses
Bonjour
RQ1. le type long devrait suffire pour a
RQ2. Si j'ai compris, pour la boucle aa, dès que
Range("d" & a).Value = Sheets("Feuil1").Range("a" & aa).Value,
on incrémente b et à la sortie si b>0, on supprime la ligne a
il me semble donc inutile d'aller au bout de la boucle aa, ce qui devrait accélérer l'exécution
bonne journée
RQ1. le type long devrait suffire pour a
RQ2. Si j'ai compris, pour la boucle aa, dès que
Range("d" & a).Value = Sheets("Feuil1").Range("a" & aa).Value,
on incrémente b et à la sortie si b>0, on supprime la ligne a
il me semble donc inutile d'aller au bout de la boucle aa, ce qui devrait accélérer l'exécution
Sub ttt()
dim a as long, aa as long, b as long
b = 0
For a = 58723 To 2 Step -1
For aa = 90 To 2 Step -1
If Range("d" & a).Value = Sheets("Feuil1").Range("a" & aa).Value Then
b = 1
exit for
end if
Next aa
If b > 0 Then
Rows(a).Entirerow.Delete
b = 0
End If
Next a
End Sub
bonne journée
Bonjour
Avec 1 seule boucle
Avec 1 seule boucle
Sub supprimer_ligne_si_égalite()
Dim Lig As Long, Egal As Byte
Application.ScreenUpdating = False
For Lig = 58723 To 2 Step -1
Egal = Rows(Lig).Find(what:=Cells(Lig, "D"), after:=Cells(Lig, "D")).Column
If Egal > 4 Then Rows(Lig).Delete
Next
End Sub
Merci, jai un peu modifié car ca ne fonctionné pas.
Sub ttt()
dim a as long, aa as long, b as long
b = 0
For a = 58723 To 2 Step -1
For aa = 90 To 2 Step -1
If Range("d" & a).Value = Sheets("Feuil1").Range("a" & aa).Value Then
b = 1
exit for
else: b=0
end if
Next aa
If b = 0 Then
Rows(a).Entirerow.Delete
b = 0
End If
Next a
End Sub
Le geek ne descend pas du métro, il libère la rame.
Sub ttt()
dim a as long, aa as long, b as long
b = 0
For a = 58723 To 2 Step -1
For aa = 90 To 2 Step -1
If Range("d" & a).Value = Sheets("Feuil1").Range("a" & aa).Value Then
b = 1
exit for
else: b=0
end if
Next aa
If b = 0 Then
Rows(a).Entirerow.Delete
b = 0
End If
Next a
End Sub
Le geek ne descend pas du métro, il libère la rame.