IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Création d'un fichier Excel à chaque rupture d'un fichier Excel de référence. [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut Création d'un fichier Excel à chaque rupture d'un fichier Excel de référence.
    Bonjour à tous,

    Je fais appel à une bonne âme de développeur afin de créer un programme qui permettrait de créer autant de fichier Excel que de rupture sur un champ donné d'un fichier Excel de référence.

    Exemple :
    Soit le fichier Excel de référence toto.xls :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                A     B     C     D     E
    Ligne 1    aaa   000   111   222   333
    Ligne 2    aaa   444   555   666   777
    Ligne 3    bbb   888   999   101   111
    Ligne 4    ccc   121   131   141   151
    Création d'un bouton qui génèrerait, dans le même répertoire :
    1 fichier Excel nommé aaa.xls composé de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
               A     B     C     D     E
    Ligne 1    aaa   000   111   222   333
    Ligne 2    aaa   444   555   666   777
    1 fichier Excel nommé bbb.xls composé de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
               A     B     C     D     E
    Ligne 1    bbb   888   999   101   111
    1 fichier Excel nommé ccc.xls composé de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
               A     B     C     D     E
    Ligne 1    ccc   121   131   141   151
    Merci d'avance de votre aide,
    Richard.

  2. #2
    Membre actif Avatar de le_dilem
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Avril 2005
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Avril 2005
    Messages : 313
    Points : 236
    Points
    236
    Par défaut Salut
    Essaye ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Sub Ruptures()
    Dim i, J
    Dim nom
     
    nom = (ThisWorkbook.Name)
    i = 1
    J = 1
     
    While Range("A" & i) <> ""
     
    If Range("A" & i) <> Range("A" & i + 1) Then
     
    Rows(J & ":" & i).Select
      Selection.Copy
      Workbooks.Add
     
        Rows(1 & ":" & 1).Select
        ActiveSheet.Paste
        ActiveWorkbook.SaveAs Filename:="D:\" + Range("A" & 1)
     
     
       Windows(nom).Activate
        Sheets("Feuil1").Select
    J = i + 1
    End If
     
    i = i + 1
     
    Wend
    End Sub

  3. #3
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour le_dilem,

    Parfait !
    C'est, exactement, ce que je souhaitais.

    Merci encore,
    Richard.

  4. #4
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut Add-on
    Bonjour à tous,

    Juste un petit add-on, gentiment développé par le_dilem (merci encore) qui permet de récupérer la ligne d'entête pour tous les fichiers Excel générés à chaque rupture :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Sub RupturesAvecEntete()
    Dim i, J
    Dim nom
    Dim ligne1
     
    nom = (ThisWorkbook.Name)
    i = 2
    J = 2
     
    ligne1 = Rows(1 & ":" & 1)
     
    While Range("A" & i) <> ""
    If Range("A" & i) <> Range("A" & i + 1) Then
     
    Rows(J & ":" & i).Select
      Selection.Copy
      Workbooks.Add
     
      Rows(1 & ":" & 1) = ligne1
        Rows(2 & ":" & 2).Select
        ActiveSheet.Paste
        ActiveWorkbook.SaveAs Filename:="C:\Tests_divers\" + Range("A" & 2)
     
       Windows(nom).Activate
        Sheets("Feuil1").Select
     
    J = i + 1
    End If
     
    i = i + 1
     
    Wend
    End Sub
    A bientôt,
    Richard.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/06/2014, 14h54
  2. [XL-2007] Réouverture d'excel à chaque fichier
    Par bedoch dans le forum Excel
    Réponses: 5
    Dernier message: 09/06/2009, 16h16
  3. [VB.NET][excel][word] comment afficher des fichiers?
    Par leptityugi dans le forum Windows Forms
    Réponses: 8
    Dernier message: 09/11/2005, 09h15
  4. [BATCH] lire chaque ligne d'un fichier texte
    Par bartmarley dans le forum Windows
    Réponses: 13
    Dernier message: 22/04/2005, 21h01
  5. Réponses: 4
    Dernier message: 19/06/2004, 22h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo