[VBA] Copier valeur sur nouveau classeur

Salut à tous,

Je viens vers vous car j'ai un souci (sans blague) de sauvegarde de fichier.

Mon souci : J'ai un classeur avec un tableau reprenant beaucoup de formules. Ma première étape est de, via une macro, de le copier et coller en valeur uniquement pour travailler ensuite dessus avec ma seconde partie de macro (jusque là, pas de souci).

Range("A1", "XFD1048576").Select
    Selection.Copy
    Sheets.Add After:=Sheets(Sheets.Count)
    Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
        , SkipBlanks:=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ActiveSheet.Name = "Evolution(Valeur)"

Le problème qui se pose est le suivant : Je dois enregistrer mes données de ce tableauValeur en fonction de certains filtres. C'est le code que je fais juste ici :

Dim CompteurCell As Variant
    CompteurCell = 1
    While Worksheets("DTC").Cells(CompteurCell, 1).Value <> ""

    Application.CutCopyMode = False
    Selection.AutoFilter
    ActiveSheet.Range("$A$6:$Z$75005").AutoFilter Field:=5, Criteria1:=Worksheets("DTC").Cells(CompteurCell, 1).Value
    ==> il me manque ce que j'explique juste après ici
    CompteurCell = CompteurCell + 1

    Wend

Donc pour une certaine colonne, je filtre en fonction d'un critère précis et j'enregistre chaque changement (J'ai 40 options dans mon filtre, j'aurai donc 40 enregistrements). Le code ici me permet de faire ça sans aucun problème, mais ce que je dois avoir, c'est juste la feuille avec les valeurs du filtre. Je ne veux pas être capable de voir le reste des données dans les nouveaux fichiers enregistrés (Si je filtre sur Etienne, je ne veux voir que les données concernant le filtre Etienne, et ne pas pouvoir regarder les autres). C'est relativement simple à faire si je devais l'enregistrer en PDF, mais je dois l'avoir en excel, premier souci. (Si j'enregistre, il m'enregistre toutes mes feuilles, hors je ne veux que la feuille qui a été changée par le filtre du tableauValeur). J'imaginai donc établir un code qui me permettrait de copier coller ceci dans un tout nouveau classeur excel, l'enregistrerait selon le nom du filtre actuel, pis quitterait ce classeur pour passer au suivant, et ainsi avoir mes 40 fichiers en excel.

D'où le fait qu'il me manque des lignes de code entre celle du filtre, et celle du compteur+1. Et c'est là que j'espérerai vous voir intervenir

C'est peut être pas très clair, j'en suis fort navré

Pierre

bonjour,

une possibilité serait d'ajouter un onglet, au classeur, nommé "temp", de mettre le résultat du filtre sur cette feuille, puis de copier cette feuille dans un nouveau classeur

With ActiveSheet
 .Range("$A$6:$Z$75005").AutoFilter Field:=5, Criteria1:=Worksheets("DTC").Cells(CompteurCell, 1).Value
 .Range("_FilterDatabase").SpecialCells(xlCellTypeVisible).Copy Sheets("temp").Range("A2")
End With
'la ligne suivante fait une copie de l'onglet "temp" dans un nouveau classeur
Sheets("temp").Copy
With ActiveWorkbook  '> le nouveau classeur
.SaveAs "C:\MonFichier.xls" 'adapter
.Close
End With
'ici on est de retour sur le classeur d'origine
'on vide l'onglet "temp"
Sheets("temp").cells.clearcontents
Rechercher des sujets similaires à "vba copier valeur nouveau classeur"