Scinder un fichier Excel

Je suis pas tres fort en macros VBA

SVP votre aide pour découper un fichier et créer autant de classeurs ou de fichiers que de point de vente (AGC)

Merci

CI-JOINT FICHIER

29equip.xlsx (283.15 Ko)

Salut,

essaye le code suivant

Sub Creation_Classeur()

'Initialisation des variables
Dim nom_File As String
index1 = 2
Dim ExistenceFichier As Boolean

    While Cells(index1, 1) <> "" 'tant que la ligne contient des données dans la colonne A

        nom_File = "C:\" & (Cells(index1, 1)) & ".xls" 'on crée le nom du fichier, ici directement sur C:\
        ExistenceFichier = Dir(nom_File) <> "" 'on teste si le fichier existe déja

        If Not ExistenceFichier Then 'si il n'existe pas
            Dim objExcel As New Excel.Application 'on le crée
            Dim objWorkbook As Excel.Workbook
            Set objWorkbook = objExcel.Workbooks.Add

                    'Ajouter ici les opérations que tu souhaites faire sur ton fichier

            objWorkbook.SaveAs Filename:=nom_File 'on l'enregistre avec le nom créé plus haut
            objWorkbook.Close ' et on le ferme
        End If

        index1 = index1 + 1
    Wend
End Sub

Cordialement

Merci pour vos efforts,

lorsque je fais tourner votre script, je trouve bien les fichiers mais lors de l’exécution voici le message d'erreur:

le format du fichier que vous tentez d'ouvrir, "15.XLS", est différent de celui spécifié par l'extension de fichier. assurez-vous que le fichier n'est pas endommagé et qu'il provient d'une source fiable avant de l'ouvrir. souhaitez-vous l'ouvrir ?

lorsque j'ouvre le fichier, je ne trouve rien, juste un fichier vide.

que dois je faire SVP

Bonjour,

il y a effectivement une petite erreur dans le code. Lors de la création du fichier, ils faut définir l'extension ".xlsx" et non ".xls" comme mentionné.

Les fichiers sont vierges et c'est normal car le code que je t'ai donné ne concerne que la création des fichiers et non leur remplissage.

A toi de voir ce que tu veux faire de ces fichiers.

Cordialement.

Merci

Comment faire pour avoir les données concernant chaque point de ventes (AGC) dans les classeurs.

il faut ajouter le copier/coller mais je sais pas le faire.

Pouvez vous de donner un coup de main

Merci d'anavce

Cela devrait fonctionner,

je ne me suis occupé que des datas. A toi de faire (selon le meme principe) la suite pour la mise en forme.

Le code peut être amélioré pour

  • gérer le cas où l'on veut remplir un classeur qui n'existe pas.
  • Copier des données alors que les agences ne sont pas triées
  • .....
A toi de voir
Sub Remplissage_Classeurs()

Dim nom_File As String
index1 = 2
index2 = index1

While Cells(index1, 1) <> ""
    While Cells(index2, 1).Value = Cells(index1, 1).Value
        index1 = index1 + 1        
    Wend

    Range(Cells(index2, 1), Cells(index1, 28)).Copy
    nom_File = (Cells(index2, 1)) & ".xlsx"

    Workbooks.Open Filename:="C:\" & nom_File
    Workbooks(nom_File).Worksheets("sheet1").Range("A2").Select
    Workbooks(nom_File).ActiveSheet.Paste
    Workbooks(nom_File).Save
    Workbooks(nom_File).Close
    index2 = index1
    index1 = index1 + 1
Wend

End Sub

Cordialement.

j'ai lancé le 1er script qui est passé sans problème, mais les deuxième scripte ne passe pas voici le message d'erreur:

erreur d'exécution '9':

l'indice n'appartient pas à la sélection.

Votre aide SVP

Rechercher des sujets similaires à "scinder fichier"