VBA : Comment copier des lignes visibles sur une autre feuille



Vous pouvez utiliser la syntaxe suivante dans VBA pour copier uniquement les lignes visibles d’une feuille à une autre :

Sub CopyVisibleRows()

    Dim sourceWS As Worksheet
    Dim destinationWS As Worksheet
    
    Set sourceWS = ThisWorkbook.Sheets("Sheet1")
    Set destinationWS = ThisWorkbook.Sheets("Sheet2")

    sourceWS.Range("A1:D999").SpecialCells(xlCellTypeVisible).Copy
    destinationWS.Cells(1, 1).PasteSpecial
    Application.CutCopyMode = False
   
End Sub

Cette macro particulière copiera chaque ligne visible dans la plage A1:D999 de Sheet1 et les collera en commençant dans la cellule A1 de Sheet2 .

Remarque : La ligne Application.CutCopyMode = False précise que le mode couper et copier doit être désactivé après l’exécution de la macro.

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : copier les lignes visibles vers une autre feuille à l’aide de VBA

Supposons que nous ayons l’ensemble de données suivant dans la feuille 1 qui contient des informations sur divers joueurs de basket-ball :

Supposons maintenant que nous appliquions un filtre à l’ensemble de données pour afficher uniquement les lignes où le nom de l’équipe est égal à Mavs ou Spurs :

Supposons maintenant que nous souhaitions utiliser VBA pour copier uniquement les cellules visibles de Sheet1 vers Sheet2.

Nous pouvons créer la macro suivante pour ce faire :

Sub CopyVisibleRows()

    Dim sourceWS As Worksheet
    Dim destinationWS As Worksheet
    
    Set sourceWS = ThisWorkbook.Sheets("Sheet1")
    Set destinationWS = ThisWorkbook.Sheets("Sheet2")

    sourceWS.Range("A1:D999").SpecialCells(xlCellTypeVisible).Copy
    destinationWS.Cells(1, 1).PasteSpecial
    Application.CutCopyMode = False
   
End Sub

Lorsque nous exécutons cette macro, nous recevons le résultat suivant dans Sheet2 :

Notez que chaque ligne visible dans Sheet1 a été copiée et collée dans Sheet2 .

Note n°1 : Nous avons utilisé xlCellTypeVisible dans la macro pour spécifier que nous voulions uniquement copier les cellules visibles.

Remarque n°2 : Vous pouvez trouver la documentation complète de la méthode VBA Copy ici .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans VBA :

VBA : Comment trouver la dernière ligne utilisée
VBA : copier des lignes dans une autre feuille en fonction de critères
VBA : Comment coller des valeurs uniquement sans formatage

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *