VBA/ Macro extraire automatiquement une plage de donnée filtrée
Résolu
med_mugen
Messages postés
80
Date d'inscription
Statut
Membre
Dernière intervention
-
med_mugen Messages postés 80 Date d'inscription Statut Membre Dernière intervention -
med_mugen Messages postés 80 Date d'inscription Statut Membre Dernière intervention -
Bonjour, je bloque depuis quelque temps sur un moyen d'extraire automatiquement à partir d'une base de donnée située dans une feuille 1 les éléments d'une seule colonne de cette même base filtrée à partir d'un critère située en feuille 2 où se situe un tableau dans lequel je collerai dans la première colonne du tableau la plage copiée.
Je suis tombé sur un fichier excel qui contenait une macro qui correspondait à peu près à ma demande (voir fichier joint). La différence de cette macro est qu'elle extrait toutes les colonnes du tableau filtré ORDER vers SCHEDULE) et qu'elle ajoute 2 critères supplémentaires qui ne m'intéresse pas. J'ai tenté de retravaillé cette macro pour l'adapter à mon fichier mais ca ne fonctionne pas ( je découvre avec beaucoup de curiosité le codage VBA /Macro).
voici la macro que j'ai fait (dans la feuille destination) pour mon fichier à partir de la macro exemple :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$U$319" Then
Range("A363", Range("A65536").End(xlUp)).ClearContents
With Sheets("base de données France")
.Range("A4").AutoFilter Field:=6, Criteria1:=Range("U319")
.Range("E5" & .Range("E65536").End(xlUp).Row).Cells.SpecialCells(xlCellTypeVisible).Copy Destination:=Range("A363")
End With
End If
End sub
Pouvez vous m'aider à partir d'une réadaptation du fichier joint à obtenir le résultat voulu, exemple extraire uniquement les valeurs filtrées de la colonne commande pour le gestionnaire affiché en B1 (feuille schedule).
Merci d'avance
PS comment faites vous pour inserer un fichier excel dans la discussion ?
Je suis tombé sur un fichier excel qui contenait une macro qui correspondait à peu près à ma demande (voir fichier joint). La différence de cette macro est qu'elle extrait toutes les colonnes du tableau filtré ORDER vers SCHEDULE) et qu'elle ajoute 2 critères supplémentaires qui ne m'intéresse pas. J'ai tenté de retravaillé cette macro pour l'adapter à mon fichier mais ca ne fonctionne pas ( je découvre avec beaucoup de curiosité le codage VBA /Macro).
voici la macro que j'ai fait (dans la feuille destination) pour mon fichier à partir de la macro exemple :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$U$319" Then
Range("A363", Range("A65536").End(xlUp)).ClearContents
With Sheets("base de données France")
.Range("A4").AutoFilter Field:=6, Criteria1:=Range("U319")
.Range("E5" & .Range("E65536").End(xlUp).Row).Cells.SpecialCells(xlCellTypeVisible).Copy Destination:=Range("A363")
End With
End If
End sub
Pouvez vous m'aider à partir d'une réadaptation du fichier joint à obtenir le résultat voulu, exemple extraire uniquement les valeurs filtrées de la colonne commande pour le gestionnaire affiché en B1 (feuille schedule).
Merci d'avance
PS comment faites vous pour inserer un fichier excel dans la discussion ?
A voir également:
- Macro extraire des données d'un tableau excel vers un autre tableau
- Tableau word - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Imprimer un tableau excel - Guide
- Tableau croisé dynamique excel exemple - Guide
4 réponses
Bonjour,
Pour insérer un fichier :
https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers#q=cjoint&cur=2&url=%2F
En attendant, tu peux essayer :
A+
Pour insérer un fichier :
https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers#q=cjoint&cur=2&url=%2F
En attendant, tu peux essayer :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$U$319" Then
Range("A363", Range("A65536").End(xlUp)).ClearContents
With Sheets("base de données France")
.Range("A4").AutoFilter Field:=1, Criteria1:=Range("U319")
.Range("E5:E" & .Range("E65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible).Copy Destination:=Range("A363")
End With
End If
End Sub
A+
https://www.cjoint.com/c/EFpqYpfVuQu