Copie de ligne selon critère (Macro)

Arnaud dit Citro

XLDnaute Junior
Bonjour à tous,

Dans mon fichier qui avance bien, grâce à tous vos conseils et infos piochés dans ce forum, je souhaiterais faire une sorte de tri.
C'est à dire que j'ai une feuille "Base_Devis" dans laquelle il y a l'ensemble des devis, dans la colonne A il y a une formule qui dit si les devis sont en cours ou pas. Le but est que si les devis sont en cours, ça copie la ligne complète et ça la colle dans une autre feuille appelée "Relance_Devis". J'ai donc fait un petit code :

Code:
Sub Tri_Relance()
 
    Dim cel As Range
    Dim Bdevis As Range
    Dim Rdevis As Range
    
    With Sheets("Relance_Devis")
    .Range("A8:Q1000").Clear
    End With
  
    Set Rdevis = Worksheets("Relance_Devis").Range("A8")
    
    With Sheets("Base_Devis")
        For Each cel In .Range("A8:A1000")
 
            If cel = "En Cours" Then
                If Bdevis Is Nothing Then
                    Set Bdevis = cel.EntireRow
                Else
                    Set Bdevis = Union(Bdevis, cel.EntireRow)
                End If
 
            End If
 
         Next
 
    End With
    Bdevis.Copy Rdevis
    
End Sub

Ce code fonctionne pas mal, mais il copie même ceux qui ne sont pas en cours et il ne copie pas tout : je ne sais pas pourquoi il en laisse 2 sur le carreau (qui je pense est lié aux 2 qui ne sont pas en cours mais copié quand même).

Comment dois-je améliorer mon code pour que cela fonctionne correctement?

Bonne journée à tous

Arnaud
 

Pièces jointes

  • Test b.xlsm
    634.5 KB · Affichages: 8

sousou

XLDnaute Barbatruc
Bonjour
En fait, ta méthode copie strictement tes lignes de base-devis, donc copie les formules (regarde le contenu des cellule dans relance), et ce n'est pas ce que tu veux
Il faudrait copier les valeurs
Modifie les dernières lignes ainsi
Bdevis.Copy
Rdevis.PasteSpecial (3)
 

Arnaud dit Citro

XLDnaute Junior
Bonjour Sousou,

Impec tout bien, cela fonctionne parfaitement, je te remercie beaucoup.

J'ai juste 2 petites questions pour éclairer ma lanterne :
A quoi correspond le (3) après PasteSpecial ?​
Est il possible de vider le presse-papier après avoir coller les lignes? car du coup (et c'est logique) à la fermeture du fichier, j'ai un message comme quoi il y a un grand nombre de document dans le presse-papier.​
Merci encore

Arnaud
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 886
Membres
101 830
dernier inscrit
sonia poulaert