Macros pour transférer des données filtrées, Excel VBA

Vous avez la possibilité d’écrire les résultats d’un filtrage, c’est-à-dire les lignes filtrées, dans une autre feuille de calcul ou dans un fichier texte. Cela présente l’avantage de pouvoir modifier davantage le résultat du filtre sans avoir à accéder à l’inventaire d’origine.

-Transférer les lignes filtrées vers une autre feuille de calcul

Si vous souhaitez utiliser une macro pour transférer les lignes filtrées vers une autre feuille de calcul, démarrez la macro.

Sub CopieDonneesFiltrees ()

  Sheets ("Feuil4"). Activate

  ActiveCell.CurrentRegion.SpecialCells (xlVisible) .Copy

  Sheets ("Feuil6"). Activate

  Range ("A1"). Select

  ActiveSheet.Paste

End Sub

 

À l’aide de la méthode SpecialCells et de la propriété CurrentRegion, vous pouvez déterminer toutes les cellules visibles dans la zone environnante. Copiez-le à l’aide de la méthode Copy, basculez vers l’autre feuille de calcul, placez le pointeur de la souris sur la cellule A1 et collez le contenu du presse-papiers à l’aide de la méthode Paste.

-Transférer les lignes filtrées dans un fichier texte

Si vous souhaitez fournir des données à un utilisateur qui n’utilise pas Excel, vous pouvez également enregistrer les données filtrées dans un fichier texte. Pour ce faire, transférez d’abord les données filtrées dans une feuille de calcul distincte, puis effectuez le transfert.

Sub TableaufiltredansfichiertexteEnregistrer ()

Dim cell As Object

Dim i As Integer

Dim iZ As Integer

Sheets ("Feuil4"). Activate

ActiveSheet.UsedRange.Copy

Sheets ("Feuil6"). Activate

Range ("A1"). Select

ActiveSheet.Paste

iZ = Range ("A65536"). End (xlUp) .Row

Open "c: \ My Files \ Output.txt" For Output As # 1

  For i = 1 To iZ

     Print # 1, ActiveCell.Value; ";"; _

     ActiveCell.Offset (0, 1) .Value; ";"; _

     ActiveCell.Offset (0, 2) .Value

     ActiveCell.Offset (1, 0) .Select

  Next

Close # 1

MsgBox " Transfert de données terminé!"

End Sub

 

Avec la méthode Copy et la propriété UsedRange, vous pouvez copier la zone utilisée et la coller dans la feuille de calcul TABLE6. Vous pouvez y déterminer la dernière cellule occupée de la colonne A. Vous pouvez le faire à l’aide de la propriété End, qui représente la cellule à la fin de la région qui contient la zone source. Dans l’exemple, la zone source est le numéro 65536, qui représente le nombre maximal de lignes dans un tableau Excel. Vous passez la constante de direction xlUp à cette propriété. En plus de xLUp, vous pouvez également utiliser xlToLeft, xlToRight ou xlDown, selon la cellule que vous souhaitez déterminer. Utilisez ensuite l’instruction Ouvrir pour ouvrir un fichier texte que vous n’avez pas besoin de créer au préalable. Maintenant, vous configurez une boucle For Next qui transférera vos lignes filtrées cellule par cellule vers le fichier texte A   USGABE.TXT écrit. Pour ce faire, utilisez l’instruction Print et assurez-vous que le point-virgule est inséré comme séparateur entre les champs individuels. Après avoir transféré les données, fermez le fichier texte à l’aide de l’instruction Fermer et affichez un message d’information à l’écran, vous informant que le transfert est terminé.

Tableau: Le fichier texte avec le point-virgule comme séparateur

 

S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x