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 :

Ouverture de plusieurs classeurs [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de yoyo3d
    Homme Profil pro
    Administratif
    Inscrit en
    Avril 2002
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Administratif
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2002
    Messages : 422
    Par défaut Ouverture de plusieurs classeurs
    Salut à tous, je souhaite ouvrir, un par un, tous les classeurs excel contenus dans un fichier.
    (j'ai trouvé quelqu'un sur ce forum qui avait le même problème que moi, par contre il n'a pas indiqué si il avait trouvé une solution…)
    Voici son post:http://www.developpez.net/forums/d11...-excel/limite-

    ceci est le code que j'ai commencé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim classeurs As Variant 'j'ai essayé avec object sans plus de résultat
    For Each classeurs In Workbooks 
    Workbooks.Open filename:=classeurs
        …. 'ici, le traitement à réaliser sur chaque onglet puis,...
        ActiveWorkbook.Save
        Workbooks.Close
    Next classeurs
    À l'éxécution, j'ai le méssage d'erreur suivant:
    Erreur 438: propriété ou méthode non générée par cet objet
    .

    Le problème se situe au niveau de: Workbooks.open filename.
    Filename attent un nom de classeur, hors moi , je ne souhaite pas indiquer de nom de classeur, je souhaite tous les ouvrir, quelque soit leur nom.

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Il faudrait revoir ta question .. un fichier Excel ne contient qu'un seul classeur !

  3. #3
    Membre éclairé
    Avatar de yoyo3d
    Homme Profil pro
    Administratif
    Inscrit en
    Avril 2002
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Administratif
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2002
    Messages : 422
    Par défaut
    oups autant pour moi....
    je souhaite ouvrir tous les classeurs excel contenus dans un "fichier" sous entendu un "dossier"...

    Salut,
    bon j'ai bricolé un p'tit peu en essayant plusieurs exemples trouvés sur ce forum

    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
    Sub Ouvrir_Fichier()
    ' Touche de raccourci du clavier: Ctrl+m
    Dim Dossier As Object
    Dim Repertoire As Object
    Dim Chemin As String
     
    Chemin = ThisWorkbook.Path & "\MaJ"
    Set Repertoire = CreateObject("Scripting.FileSystemObject").GetFolder(Chemin)
     
    For Each Dossier In Repertoire.Files
        Workbooks.Open Filename:=Dossier
        ActiveWorkbook.Activate
     
    '...
    'selection des 12 onglets
    'selection des différentes zones
    'effacement des contenus de céllules
    '...
     
    ActiveWorkbook.Save
     
    Workbooks.Close
    Next Dossier
     
    End Sub
    j'ouvre bien le premier classeur contenu dans mon dossier, mais...

    1) l'application ferme aprés le traitement du 1er classeur....(il y en a encore 200...)
    pourtant avec ma boucle fo each / next, chaque classeur contenu dans mon dossier devrait etre ouvert 1 par 1...je ne vois pas ou est mon erreur.

    2) je n'ai pas trouvé comment eviter le message "voulez vous enregistrer les modifications apportées"...

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    La proposition précédente peut être subdivisée en 2, la première pour boucler sur tous les fichiers excel et les ouvrir et la deuxième traite le classeur ouvert (la 2 est appelée par le 1)
    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
    ' Touche de raccourci du clavier: Ctrl+m
    Sub Ouvrir_Fichier()
    Dim Dossier As Object, Rep As Object
    Dim Wbk As Workbook
    Dim Chemin As String
    Dim i As Integer
     
    Application.ScreenUpdating = False
    Chemin = ThisWorkbook.Path & "\MaJ"
    Set Rep = CreateObject("Scripting.FileSystemObject").GetFolder(Chemin)
     
    For Each Dossier In Rep.Files
        'on ouvre seulement les fichiers xls* et csv
        If InStr("xlsm|xlsx|csv", Mid(Dossier, InStrRev(Dossier, ".") + 1)) > 0 Then
            Set Wbk = Workbooks.Open(Dossier)
            Call Traitement(Wbk)
            Set Wbk = Nothing
            i = i + 1
        End If
    Next Dossier
    Set Rep = Nothing
    MsgBox "Tritement terminé pour " & i & "fichiers"
    End Sub
     
    'Procédure de triatement qui a comme paramètre lle Classeur Wb
    'Exemple pour chaque feuille dans chaque fichier ouvert, on efface la plage A2:X200
    Private Sub Traitement(Wb As Workbook)
    Dim Ws As Worksheet
     
    With Wb
        For Each Ws In .Worksheets
            Ws.Range("A2:X200").ClearContents
        Next Ws
        .Save
        .Close False
    End With
     
    End Sub

  5. #5
    Membre éclairé
    Avatar de yoyo3d
    Homme Profil pro
    Administratif
    Inscrit en
    Avril 2002
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Administratif
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2002
    Messages : 422
    Par défaut
    Bon ça marche,
    par contre , je ne comprend pas cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If InStr("xlsm|xlsx|csv", Mid(Dossier, InStrRev(Dossier, ".") + 1)) > 0 Then
    ouvrir les fichiers XL, bon ok, mais faire un test sur le contenu du nom des classeurs??? j'ai pas tout compris...

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    il y avait une ligne de commentaire
    'on ouvre seulement les fichiers xls* et csv
    C'était pour ouvrir seulement les fichiers (EXCEL) d'extension, xls, xlsm, xlsx ou csv

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

Discussions similaires

  1. [E-03] ouverture de plusieurs classeurs
    Par akramus dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/01/2009, 16h46
  2. [VBA-E] ouverture d'un classeur
    Par sophie447 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/06/2006, 22h18
  3. Eclipse : ouverture de plusieurs fichiers
    Par menuge dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 15/05/2006, 10h54
  4. travail sur plusieur classeur
    Par calimero91 dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 12/01/2006, 16h37
  5. [Plugin]plug in d'ouverture de plusieurs projets
    Par cymp dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 03/11/2005, 17h09

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