Boucle While avec incrémentation : vba excel
Résolu/Fermé
Nours85
-
17 juil. 2008 à 08:58
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 17 juil. 2008 à 17:35
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 17 juil. 2008 à 17:35
A voir également:
- Boucle While avec incrémentation : vba excel
- Freebox redémarre en boucle ✓ - Forum Freebox
- Boucle excel sans macro - Forum Excel
- Boucle cmd - Forum Programmation
- Le fichier contient un programme écrit en python. le programme construit un mot secret mais il ne l'affiche pas. modifiez ce programme afin que à chaque itération de la boucle : la variable a augmente de 2 la variable b diminue de 1 ajoutez une instruction pour faire afficher le mot secret construit. quel est ce mot secret ? ✓ - Forum Python
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
3 réponses
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 681
17 juil. 2008 à 09:31
17 juil. 2008 à 09:31
bonjour
Avec une petite modification cela devrait te donner satisfaction :
Avec une petite modification cela devrait te donner satisfaction :
Sub NA() Dim j As Long j = 4 Do While Cells(j, 1).Value <> "" And Cells(j, 6).Value <> "" If Cells(j, 1).Value <> Cells(j, 6).Value Then Cells(j, 6).Resize(1, 3).Delete Else j = j + 1 End If Loop End Sub
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 681
17 juil. 2008 à 17:35
17 juil. 2008 à 17:35
bonjour
Cette instruction équivaut à toute ta série de delete mais si tu aime écrire et utiliser ta machine ... c'est toi qui voit.
Quand tu définis ainsi, tu ne peux dépasser 32000 et il y a la possibilité d"en avoir plus du double.
Tu n'as pas compris le principe du else que j'avais mis et qui évite de faire moins et plus comme tu fais.
Cette instruction équivaut à toute ta série de delete mais si tu aime écrire et utiliser ta machine ... c'est toi qui voit.
Cells(j, 12).Resize(1,12).Delete
Quand tu définis ainsi, tu ne peux dépasser 32000 et il y a la possibilité d"en avoir plus du double.
Dim j As Integer
Tu n'as pas compris le principe du else que j'avais mis et qui évite de faire moins et plus comme tu fais.
Merci pour le conseil.
Le problème est enfin résolu, voici ce que j'ai utilisé :
Sub ComparerSupprimer()
Dim j As Integer
j = Cells(1, 1).Value
While j < Cells(2, 1).Value
If Cells(j, 1).Value <> Cells(j, 12).Value And Cells(j, 12).Value <> "" Then
Cells(j, 12).Delete
Cells(j, 13).Delete
Cells(j, 14).Delete
Cells(j, 15).Delete
Cells(j, 16).Delete
Cells(j, 17).Delete
Cells(j, 18).Delete
Cells(j, 19).Delete
Cells(j, 20).Delete
Cells(j, 21).Delete
Cells(j, 22).Delete
j = j - 1
limit = limit - 1
End If
j = j + 1
Wend
End Sub
Merci
Le problème est enfin résolu, voici ce que j'ai utilisé :
Sub ComparerSupprimer()
Dim j As Integer
j = Cells(1, 1).Value
While j < Cells(2, 1).Value
If Cells(j, 1).Value <> Cells(j, 12).Value And Cells(j, 12).Value <> "" Then
Cells(j, 12).Delete
Cells(j, 13).Delete
Cells(j, 14).Delete
Cells(j, 15).Delete
Cells(j, 16).Delete
Cells(j, 17).Delete
Cells(j, 18).Delete
Cells(j, 19).Delete
Cells(j, 20).Delete
Cells(j, 21).Delete
Cells(j, 22).Delete
j = j - 1
limit = limit - 1
End If
j = j + 1
Wend
End Sub
Merci