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)
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 …
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
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.
'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