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