Probleme d'excution d'une macro

nsqualli

XLDnaute Junior
Bonjour,

j'ai fais une macro qui fais la chose suivante:
elle fait un parcoure total de la feuille "suivi des demandes", si la valeur de la colonne "T" est "TER" ou "ANU", elle copie la ligne de la colonne "A" à la colonne "AO" dans une autre feuille qui s'appelle "Demandes closes".

le problème c'est qu'elle ne me retourne pas toutes les lignes qu'il faut, il faut que je clique sur le bouton qui déclenche la macro une deuxième fois, pour qu'elle me retourne une autre partie des lignes, et ainsi de suite.

sachant que c'est pas un problème d'espace, car j'ai vérifié.

voila le code:

Code:
Sub ExtractionListeCloturée()

Application.DisplayAlerts = False

  Dim DerLig As Long, Lig As Long
  Dim FeuilDst As Worksheet, DerLD As Long
 
  ' Définir la valeur de l'Objet FeuilDst
  ' Nom de la feuille de Destination
    Set FeuilDst = Sheets("Demandes closes")
 
 
  ' Avec la Feuille "suivi des demandes"
  With Sheets("Suivi des demandes")
   
    ' Trouver la dernière ligne
    DerLig = .Range("A" & Rows.Count).End(xlUp).Row
   
    ' Pour chaque ligne
    For Lig = 3 To DerLig
   
   
    Select Case .Range("T" & Lig).Value
               
        'Si l'on a l'une des valeurs suivantes : "TER", "ANU"
        Case "TER", "ANU"
     
        'Colorer le numéro en bleu
        .Range("B" & Lig).Font.Color = vbBlue
       
        'Récupérer la dernière ligne de la feuille de destination
         DerLD = FeuilDst.Range("A" & Rows.Count).End(xlUp).Row
       
        'Inscrire les valeurs
        .Range("A" & Lig & ":AO" & Lig).Copy
        FeuilDst.Range("A" & DerLD + 1 & ":AO" & DerLD + 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        .Range("A" & Lig).EntireRow.Delete
       
        Case Else
       
    End Select
     
    Next Lig
   
  End With
 
Application.DisplayAlerts = True
End Sub


svp si vous avez une idée de la cause, aidez moi.

MERCI
 

Cousinhub

XLDnaute Barbatruc
Re : Probleme d'excution d'une macro

Bonjour,

le problème est que tu supprimes les lignes, après copie, et lorsqu'on supprime des lignes, il faut toujours partir du bas vers le haut, car le compteur s'incrémente toujours...

Si tu supprimes la ligne 5, par exemple, la 6 devient 5, mais le compteur passe à 6, donc cette ligne remontée ne sera pas calculée...

Essaie en modifiant cette ligne :

Code:
For Lig = 3 To DerLig

par :

Code:
    For Lig = DerLig To 3 Step -1
 

nsqualli

XLDnaute Junior
Re : Probleme d'excution d'une macro

Bonjour,

le problème est que tu supprimes les lignes, après copie, et lorsqu'on supprime des lignes, il faut toujours partir du bas vers le haut, car le compteur s'incrémente toujours...

Si tu supprimes la ligne 5, par exemple, la 6 devient 5, mais le compteur passe à 6, donc cette ligne remontée ne sera pas calculée...

Essaie en modifiant cette ligne :

Code:
For Lig = 3 To DerLig

par :

Code:
    For Lig = DerLig To 3 Step -1

SUEPR Merci bcp pour la solution et l'information que je connaissais pas.
 

Discussions similaires

Réponses
7
Affichages
334

Statistiques des forums

Discussions
312 338
Messages
2 087 397
Membres
103 534
dernier inscrit
Kalamymustapha