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 et modification de fichier excel [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2013
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2013
    Messages : 86
    Par défaut Création et modification de fichier excel
    Bonjour,

    je dois faire une macro qui permet de créer d'autres fichiers excel et de les modifier en fonction d'une case que je check grâce à une boucle.
    la modification se fait a partir d'un fichier source ( qui ne change jamais).
    voici mon code :

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    Sub centredecout()
     
    Dim WBSource As Workbook, WBDest As Workbook
    Dim file_exist As String
    Dim path As String, file As String, check_cell As String, new_file As String
    Dim j As Long, i As Long, k As Long, last_row As Long, empty_last_row As Long
     
     
     
    file = ActiveWorkbook.Name 'nom du fichier en cours : testmacro ici
    last_row = Worksheets(1).Range("A65536").End(xlUp).Row 'dernière ligne du fichier en cours
    Set WBSource = Workbooks(file) 'workbook source pour le c/c de ligne
    'path = "C:\Documents and Settings\*****\Desktop\testmacro\" ''chemin du dossier pour créer les fichier
    path = CurDir
     
    Set WBSource = Workbooks(file)
     
     
    For j = 5 To 10 'balayage des centre de coût
        check_cell = WBSource.Sheets("Feuil1").Range("AM" & j).Value 'selection de la cellule colonne AM et ligne j
     
     
            file_exist = Dir(path & check_cell & ".xls")
     
     
     
            If file_exist = "" Then 'si le fichier n'existe pas, on en créé un nouveau
                new_file = path & check_cell
                Dim XLApp As New Excel.Application
                Dim XLBook As Workbook
                Dim XLSheet As Worksheet
                Set XLBook = XLApp.Workbooks.Add
                Set XLSheet = XLBook.Worksheets.Add
     
     
                XLBook.SaveAs new_file
                Set XLBook = XLApp.Workbooks.Open(new_file)
                XLBook.Sheets("Feuil3").Delete
                 XLBook.Sheets("Feuil4").Delete
                XLBook.Save
                SetAttr new_file & ".xls", vbNormal
                Set WBDest = Workbooks.Open(new_file)
     
                'on met en place le fichier de destination
                SetAttr new_file & ".xls", vbNormal
                WBSource.Worksheets(1).Rows(3).Copy _
                     Destination:=WBDest.Worksheets(1).Cells(1, 1) 'c/c de l'entête du tableau
                empty_last_row = WBDest.Worksheets(1).Range("A65536").End(xlUp).Row + 1 'on selectionne la dernière ligne vide
                WBSource.Worksheets(1).Rows(4).Copy _
                     Destination:=WBDest.Worksheets(1).Cells(empty_last_row, 1)
                WBDest.Save
                WBDest.Close 'on le ferme
     
            Else
                 file = path & check_cell & ".xls"
                 SetAttr file, vbNormal
                 Set WBDest = Workbooks.Open(file) 'on met en place le fichier de destination
     
                 empty_last_row = WBDest.Worksheets(1).Range("A65536").End(xlUp).Row + 1 'on selectionne la dernière ligne vide
                 WBSource.Worksheets(1).Rows(j).Copy _
                      Destination:=WBDest.Worksheets(1).Cells(empty_last_row, 1) 'c/c
     
                 ActiveWorkbook.Saved = True
                 WBDest.Close 'on le ferme
        End If
     
     
     
     
    Next j
     
     
    End Sub
    Le problème est le suivant : mes fichiers se créent correctement mais les modifications ne se font pas.
    La macro suit sont cours mais les fichiers obtenus sont vides.
    (la boucle j est délibérement mise à 10 pour mes tests)

    D'avance merci,

    talk

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Est-ce que tu travailles à partir d'Excel ou d'un autre langage comme VB ou autre ?
    Si c'est bien de Excel, tu n'as pas à créer d'Application Excel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                Dim XLApp As New Excel.Application '<<<<<<<< élimine la ligne
                Dim XLBook As Workbook
                Dim XLSheet As Worksheet
                Set XLBook = XLApp.Workbooks.Add  ' <<<<< enlève XLApp
                Set XLSheet = XLBook.Worksheets.Add
    Ceci te crée une nouvelle instance d'Excel et les 2 ne se parlent pas...

    Utilise l'instance en cours et ne te crée que les variables Workbooks et Worksheets pour voir ce que ça donne...

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2013
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2013
    Messages : 86
    Par défaut
    Bonjour,

    et merci d'avoir pris le temps de regarder à mon problème.
    L'aide que tu m'as fournit m'a aidé à résoudre mon problème, je t'en remercie !

    Bonne journée

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 13/02/2012, 19h37
  2. problème de modification du fichier Excel
    Par akharraz dans le forum Général Java
    Réponses: 3
    Dernier message: 02/02/2012, 19h19
  3. [XL-2007] Modification présentation fichier excel
    Par helio500 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/04/2011, 19h36
  4. Création et écrirture dans fichier EXCEL
    Par Rifton007 dans le forum VB.NET
    Réponses: 3
    Dernier message: 18/05/2009, 16h47

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