Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Extraction de données vers plusieurs nouveaux classeurs Excel

TCMM

XLDnaute Nouveau
Bonjour.
Je bosse présentement sur un fichier qui a cette apparence. À chaque ID correspond une adresse mail.

ID Nom Prénom Montant
1. X. Y. T
2. T. U. O
1. X. Y. J

Serait-ce possible, d'extraire grâce à une macro les informations de chaque ID vers un nouveau classeur, qui sera par la suite nommé avec l'adresse mail correspondant à l'ID. Ex du nom du classeur: XXX@hotmail.com avec toutes ses informations.
 
Solution
Bonjour TCMM, xUpsilon,

Dans le fichier joint cette macro utilise le filtre automatique :
VB:
Sub CreerFichiers()
Dim chemin$, F As Worksheet, tablo, i&, wb As Workbook
chemin = ThisWorkbook.Path & "\Mes fichiers\" 'à adapter
If Dir(chemin, vbDirectory) = "" Then MkDir chemin 'crée le sous-dossier
Set F = Sheets("Inventaire") 'à adapter
tablo = Sheets("Adresse").[A1].CurrentRegion.Resize(, 2)
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'si un fichier est déjà créé
For i = 2 To UBound(tablo)
    Set wb = Workbooks.Add(xlWBATWorksheet) 'nouveau document
    With F.Cells(1).CurrentRegion
        .AutoFilter 1, tablo(i, 1) 'filtre automatique
        .Copy wb.Sheets(1).Cells(1)
        .AutoFilter
    End With...

job75

XLDnaute Barbatruc
Bonjour TCMM, xUpsilon,

Dans le fichier joint cette macro utilise le filtre automatique :
VB:
Sub CreerFichiers()
Dim chemin$, F As Worksheet, tablo, i&, wb As Workbook
chemin = ThisWorkbook.Path & "\Mes fichiers\" 'à adapter
If Dir(chemin, vbDirectory) = "" Then MkDir chemin 'crée le sous-dossier
Set F = Sheets("Inventaire") 'à adapter
tablo = Sheets("Adresse").[A1].CurrentRegion.Resize(, 2)
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'si un fichier est déjà créé
For i = 2 To UBound(tablo)
    Set wb = Workbooks.Add(xlWBATWorksheet) 'nouveau document
    With F.Cells(1).CurrentRegion
        .AutoFilter 1, tablo(i, 1) 'filtre automatique
        .Copy wb.Sheets(1).Cells(1)
        .AutoFilter
    End With
    wb.Sheets(1).Columns.AutoFit 'ajustement largeurs
    wb.SaveAs chemin & tablo(i, 2) & ".xlsx", 51
    wb.Close
Next
End Sub
A+
 

Pièces jointes

  • Créer Fichiers(1).xlsm
    22.3 KB · Affichages: 7

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…