suppression ou cacher ligne sur bouble infini[résolu]

suppression ou cacher ligne sur bouble infini[résolu] - VB/VBA/VBS - Programmation

Marsh Posté le 15-09-2006 à 15:11:37    

Bonjour à tous, voila mon problème :
 
Dim cpt As Integer
 
With Worksheets("enr_incidents" )
 
Do
    cpt = cpt + 1
Loop Until IsEmpty(.Range("A" & cpt))
 
Do
    If .Range("AJ" & cpt) = "Invalide" Then
        .Range("A" & cpt).EntireRow.Hidden = True
    End If
Loop Until (cpt = 2)
 
End With
 
Qd je lance ce code, excel commence a calculer et plante ou als la boucle ne se finit jamais, j'ai essayé de remplacer la ligne qui cache les lignes par une qui supprime ( .EntireRow.Delete) mais même résultat.
 
Pourquoi mon programme ne s'arrete il pas ?


Message édité par GillooZ le 18-09-2006 à 08:48:17
Reply

Marsh Posté le 15-09-2006 à 15:11:37   

Reply

Marsh Posté le 15-09-2006 à 15:17:02    

c'est quoi ce until (cpt=2) ?
vu que tu ne changes jamais la valeur de cpt, je ne vois pas en effet comment ça peut ne pas partir en live...

Reply

Marsh Posté le 15-09-2006 à 15:23:13    

ouui pardon il manque un cpt = cpt - 1 avant la fin de la boucle
 
la mon code marche avec EntireRow.Hidden = True
mais si je veux supprimer les lignes avec EntireRow.Delete
 
Le programme commence a supprimer les lignes et plante au bou de qq secondes  
 
pk ?

Reply

Marsh Posté le 15-09-2006 à 15:30:21    

quand tu fais un DELETE, n'incrémente pas ton CPT

Reply

Marsh Posté le 15-09-2006 à 16:40:50    

Bonjour,
tu ne mets toujours pas au début cpt=0?
as-tu essayé un "pas à pas" pour voir?
Cordialement
 

Reply

Marsh Posté le 15-09-2006 à 18:50:18    

bonjour,
Tu nous en a déjà fait toute une page sur ce thème...
Rows(i).Delete fonctionne très bien après c'est à toi d'ajuster tes conditions.
 
Si tu testes cette macro elle supprime toutes les lignes ou la colonne 1 est vide

Code :
  1. Sub test()
  2. 'Détermination de la dernière ligne
  3. i = Cells(65536, 1).End(xlUp).Row
  4. 'Pour chaque ligne de la dernière à la ligne 2
  5. For k = i To 2 Step -1
  6. 'Effacer la ligne si la colonne A est vide
  7. If Cells(k, 1) = "" Then Rows(k).Delete
  8. Next
  9. End Sub

Après tu ajustes avec tes conditions...
 
A+


Message édité par galopin01 le 15-09-2006 à 18:51:46
Reply

Marsh Posté le 18-09-2006 à 08:48:03    

c'est bon merci j'ai résolu le problème merci !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed