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

Microsoft 365 Decoupage BDD en plusieurs fichiers distincts

Photosol

XLDnaute Junior
Bonjour à vous,

Tout d'abord, je suis désolé de rouvrir ce sujet, j'ai trouvé plein de différentes variantes de ma problématique, mais je n'arrive pas à les compiler pour obtenir le résultat souhaité, alors que cela m'a l'air assez simple sur le principe. J'ai un fichier Excel, que je souhaites découper en plusieurs fichiers Excel, à chaque fois que la référence change dans une colonne souhaitée. Rien d'extraordinaire, cependant je n'arrive pas à parvenir à mes fins.

Voici en PJ mon fichier Base de donnée, que je souhaiterais découper en plusieurs fichiers excel :

- A chaque changement de nom de la colonne I, créer un petit fichier contenant les informations liées à cette référence (environ 70 ref pour 11000 lignes, donc env 70 fichiers à la fin)
- en renommant le fichier avec le contenu suivant : "Listing + "nom contenu dans la colonne I"
- le tout dans le dossier contenant la BDD d'origine.

Est ce que vous avez une solution simple pour intégrer un bouton et mettre une macro dessus qui ferait cela simplement?

Je vous souhaites une excellente journée, et vous remercie d'avance pour votre aide

Yohann
 

Pièces jointes

  • base de donnee generale - 27022020 - Version Excel download.xlsx
    496.3 KB · Affichages: 5

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Bonjour,

VB:
Sub CreeClasseurs()
  Set f = Sheets("export_ventes de bouteilles par")
  Application.DisplayAlerts = False
  [M1] = [I1]
  f.[A1:I10000].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[M1], Unique:=True
  For Each c In Range("M2", Range("M65000").End(xlUp))
     Range("M2") = c
     Sheets.Add
     f.[A1:I20000].AdvancedFilter Action:=xlFilterCopy, _
         CriteriaRange:=f.[M1:M2], CopyToRange:=[A1], Unique:=False
       ActiveSheet.Copy
       tmp = Left(Replace(c, " ", "_"), 31)
       ActiveSheet.Name = tmp
       ActiveWorkbook.SaveAs Filename:=tmp
       ActiveWorkbook.Close
       ActiveSheet.Delete
      f.Select
    Next c
End Sub


Boisgontier
 

Pièces jointes

  • Copie de base de donnee generale.xlsm
    503.9 KB · Affichages: 9
Dernière édition:

GALOUGALOU

XLDnaute Accro
bonjour photosol bonjour boisgontier bonjour le forum
pour répondre à la demande de photosol le nom prédédé de listing et enregistrement dans le dossier source j'ai repris la macro de boisgontier (j'adore trop bien) pour lui rajouter le chemin


Enrichi (BBcode):
Sub CreeClasseurs()
chemin = ThisWorkbook.Path & "\"
  Set f = Sheets("export_ventes de bouteilles par")
  Application.DisplayAlerts = False
  f.[A1:I10000].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[M1], Unique:=True
  For Each c In Range("M2", Range("M65000").End(xlUp))
     Range("M2") = c
     Sheets.Add
     f.[A1:I20000].AdvancedFilter Action:=xlFilterCopy, _
         CriteriaRange:=f.[M1:M2], CopyToRange:=[A1], Unique:=False
       ActiveSheet.Copy
       tmp = Left(Replace(c, " ", "_"), 31)
       ActiveSheet.Name = tmp
       ActiveWorkbook.SaveAs Filename:=chemin & "Listing" & "_" & tmp
       ActiveWorkbook.Close
       ActiveSheet.Delete
      f.Select
    Next c
End Sub

cordialement
galougalou
 

Discussions similaires

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