Extraire des donnée d'un tableau avec VBA

Bonjour,

J’ai créer un tableau avec des élément à remplacer selon une périodicité.
J’aimerai à l’aide un programme VBA extraire les éléments en fonction d’une année sélectionner pour faire une liste récapitulant les informations : Tag, DN, Quantité
Pensez-vous que c’est possible, si oui, pouvez-vous me conseiller ?
Plan de maintenance.xlsx (43,1 Ko)

Bonjour,

Les filtres avancés permettent d’extraire les données souhaitées selon un ou plusieurs critères.
Le filtre peut se faire sur place ou dans un nouveau tableau.
https://support.microsoft.com/fr-fr/office/filtrer-%C3%A0-l-aide-de-crit%C3%A8res-avanc%C3%A9s-4c9222fe-8529-4cd7-a898-3f16abdff32b

Oui c’est exacte je peux utiliser les filtres avancés mais j’aimerai extraire la liste des éléments dans un autre fichier Excel que je puisse ensuite envoyer à mon fournisseur pour qu’il n’est que les éléments de l’année sélectionner.
Je sais pas si c’est clair …:wink:

Bonjour,
Il est tout à fait possible d’exécuter un filtre avancé dans un fichier alors que la base est dans un autre fichier excel.
PS : et je ne confonds pas onglet et fichier

Bonsoir,

Une proposition.
Cordialement.
Plan de maintenance.xlsm (53,4 Ko)
Si tu peux utiliser Power Query (excel 2010 Pro et 2013 en add-on et en natif à partir de 2016) il est possible d’obtenir le même résultat dans un autre classeur.

Bonjour Zebulon,

Merci beaucoup pour ce que tu as fait c’est top.
Avec un peu d’exercice et de recherche j’ai réussi à sorti un programme VBA je te le partage :

Sub Exporter()

'Figer l’écran
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

'Effacer le tableau cible
Cible = WorksheetFunction.CountA(ThisWorkbook.Sheets(« Plan de maintenance »).Range(« A:A »))
ThisWorkbook.Sheets(« Plan de maintenance »).Range(« A3:G » & Cible).ClearContents

'Sélection des données

'Comptage du nombre de lignes
NbLignes = WorksheetFunction.CountA(ThisWorkbook.Sheets(« Calcul IP »).Range(« C:C »))

'Boucle de vérification des lignes du tableau
For i = 3 To NbLignes

'Algo de vérification de l’année
If Year(ThisWorkbook.Sheets(« Calcul »).Range(« J » & i)) = ThisWorkbook.Sheets(« Calcul »).Range(« A2 ») Then

'Copier
    ThisWorkbook.Sheets("Calcul").Range("C" & i & ":E" & i).Copy
'Détermination de la ligne où on doit coller
    Cible = WorksheetFunction.CountA(ThisWorkbook.Sheets("Plan").Range("A:A")) + 1
'Coller
    ThisWorkbook.Sheets("Plan").Range("A" & Cible).PasteSpecial xlPasteValues
'Vide le presse-papier
    Application.CutCopyMode = False

End If

Next i

'Création du fichier d’export
Workbooks.Add
Fichier = ActiveWorkbook.Name
'Recherche le fichier de base
ThisWorkbook.Sheets(« Plan »).Copy Before:=Workbooks(Fichier).Sheets(1)
Application.DisplayAlerts = False
Workbooks(Fichier).Sheets(« Feuil1 »).Delete

Application.Calculation = xlCalculationAutomatic

End Sub

Encore merci pour ton aide.
Cordialement

Bonjour,
Ravi d’avoir pu t’aider. Version avec Power Query si tu y a accès.
Cordialement.

Plan de maintenance.xlsx (43,1 Ko)
Plan de maintenance(PQ).xlsm (25,9 Ko)

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.